Jak pisać w następnym wierszu w terminalu?

16

Korzystam z systemu Ubuntu 12.10 i chcę uruchomić zestaw poleceń w terminalu, a z tego, co widzę w instrukcjach, każde z tych poleceń zaczyna się od nowej linii. Nie wiem jak to zrobić w terminalu. Nie mogę znaleźć klawisza, który należy nacisnąć, aby powrócić do następnego wiersza.

Debbie Poole
źródło
4
Możesz rozdzielić polecenia, używając średnika „;”, np. Cd home; test mkdir; ls -la
LnxSlck
9
@LnxSlck: Chociaż często lepiej jest rozdzielić polecenia za pomocą &&zamiast ;. W ten sposób, jeśli jedno z poleceń nie powiedzie się, pozostałe polecenia nie zostaną uruchomione. Tak więc, korzystając z twojego przykładu, jeśli homenie istnieje, nie utworzysz przypadkowo testkatalogu w bieżącym katalogu.
hammar

Odpowiedzi:

16

Polecenia widoczne w każdym wierszu należy wykonywać jeden po drugim.

Więc po wprowadzeniu linii naciśnij enter, aby wykonać, a następnie wykonaj następne polecenie.

Przykład:

sudo apt-get update
sudo apt-get upgrade

Są to dwa polecenia do wykonania jeden po drugim.

Wykonanie od razu będzie podobne sudo apt-get update && sudo apt-get upgrade(istnieją również inne metody), ale te rzeczy nie wymagają ogólnie. Więc nie martw się. Wpisz jedną linię i naciśnij klawisz Enter, aby wykonać zadanie.

Web-E
źródło
Bardzo dziękuję za radę, chciałbym to wiedzieć wcześniej !!! Nadal żyjemy i uczymy się :-)
Debbie Poole
4
@ user113090 Jeśli Web-E odpowiedział na twoje pytanie, nie zapomnij zaznaczyć swojej odpowiedzi jako zaakceptowanej.
Dziekan
12

Ponieważ Web-E wyjaśnia najbardziej bezpośredni sposób robienia tego, co chcesz za pomocą dwóch różnych poleceń, pomyślałem, że pokażę, że istnieje wiele sposobów wykonywania wielu poleceń lub kontynuowania poleceń w innym wierszu bez ich natychmiastowego wykonywania.

Kontynuowanie długich poleceń:

1) Najczęstszym sposobem skonstruowania jednego długiego polecenia jest wprowadzenie poleceń, następnie użycie odwrotnego ukośnika \, naciśnięcie klawisza Return, a następnie Bash wyświetli kolejny monit zamiast wykonania polecenia. Ten dodatkowy monit nazywa się PS2 i czeka na dane wejściowe:

find /home/mike/Downloads -type f -iname '*.jpg' \
> 

Możesz dodawać ukośniki odwrotne i naciskać klawisz Return tak długo, jak chcesz, o ile uważasz, że ogólne polecenie będzie miało sens.

Możesz anulować ten dodatkowy monit zwykłym Ctrl+ C.

2) Bash rozpoznaje niektóre polecenia, takie jak dla pętli (dla i w ....), a monit pojawi się natychmiast; podobnie jak w przypadku pominięcia cudzysłowu w poleceniu:

apt-cache search 'libgimp*
> 

Wiele poleceń :

3) Jak zauważa Lxnslck , możesz rozdzielić polecenia średnikami:

which vlc; whereis vlc

/usr/bin/vlc
vlc: /usr/bin/vlc /etc/vlc /usr/lib/vlc /usr/bin/X11/vlc /usr/share/vlc /usr/share/man/man1/vlc.1.gz

4) Lub możesz użyć ampersand &&do połączenia dwóch poleceń:

./configure && make
Społeczność
źródło
4

Możesz nacisnąć klawisz ENTER po każdej linii, a jeśli polecenie nie zostanie zakończone (na przykład polecenia mutiline, takie jak forpętle), terminal będzie czekał na wpisanie reszty polecenia. Jeśli polecenie zostanie zakończone, zostanie wykonane, a ty wprowadzisz następne polecenie bez problemu.

Jeśli kopiujesz polecenia z samouczka, możesz skopiować całą grupę poleceń i wkleić je bezpośrednio w terminalu, a to zadziała.

Laurent
źródło
1

Jeśli jest to zestaw poleceń, których spodziewasz się używać więcej niż jeden raz, powinieneś umieścić je w pliku skryptu bash . Na przykład,

xrandr --newmode "1280x960_80.00" 139.25  1280 1368 1504 1728  960 963 967 1008 -hsync +vsync
xrandr --verbose --addmode VGA1 "1280x960_80.00"
xrandr --output HDMI1 --off --output LVDS1 --mode 1366x768 --pos 1280x512 --rotate normal --output DP1 --off --output VGA1 --mode "1280x960_80.00" --pos 0x0 --rotate normal
sleep 3
xfce4-panel -r

to nic, co chciałbyś pisać jeszcze raz, ale bardzo często potrzebuję tej konkretnej sekwencji poleceń. Tak więc wchodzi do pliku o nazwie 1280x980-2head.sh, możesz go utworzyć w dowolnym edytorze do wyboru. Aby dokonać tego skryptu plik wykonywalny , można umieścić linię #!/bin/bashprzed wszystkim (a shebang ) i ustaw wykonanie-gość: chmod +x 1280x980-2head.sh. Następnie wystarczy wpisać ./128<tab>(automatyczne uzupełnianie) i <enter>wykonać wszystkie polecenia.

po lewej stronie
źródło
0

Możesz umieścić wszystko w nawiasach; na przykład:

(sudo add-apt-repository ppa:foo/bar
sudo apt-get update
sudo apt-get install my-package)

Polecenia będą wykonywane jeden po drugim w podpowłoce.

Jeśli nie chcesz, aby były wykonywane w podpowłoce, możesz wstawić średnik między poleceniem a drugim; na przykład:

sudo add-apt-repository ppa:foo/bar; sudo apt-get update; sudo apt-get install my-package

Zamiast tego, jeśli umieścisz „&&” między poszczególnymi poleceniami, polecenie następujące po „&&” zostanie wykonane tylko wtedy, gdy poprzednie polecenie zakończyło się bez błędu, więc nie musisz go używać do łączenia poleceń; zamiast tego używaj średników. I odwrotnie, jeśli wstawisz „||”, następujące polecenie zostanie wykonane tylko wtedy, gdy pierwsze zakończy działanie z błędem. Przykład: (polecenie „which” sprawdza, czy program istnieje i czy nie kończy działania z błędem)

which apt-get && echo "No error" || echo "Error"    # Will print "No error"
which jdhdsd && echo "No error" || echo "Error"  # Will print "Error"
Depau
źródło