Come si digita sulla riga successiva nel Terminale?


16

Sto usando Ubuntu 12.10 e voglio eseguire un set di comandi nel terminale, e da quello che vedo nelle istruzioni, questi comandi iniziano ciascuno su una nuova riga. Non so come farlo nel terminal. Non riesco a trovare quale tasto premere per eseguire il ritorno a capo alla riga successiva.


4
Puoi separare i comandi usando il punto e virgola ";", come cd home; test di mkdir; ls -la
LnxSlck il

9
@LnxSlck: Tuttavia, è spesso preferibile separare i comandi &&anziché ;. In questo modo, se uno dei comandi fallisce, i comandi rimanenti non verranno eseguiti. Quindi, usando il tuo esempio, se homenon esiste, non creerai accidentalmente una testdirectory nella directory corrente.
Hammar,

Risposte:


16

I comandi che vedi in ogni riga devono essere eseguiti uno alla volta.

Quindi, dopo aver inserito una riga, premere Invio per eseguire, quindi eseguire il comando successivo.

Esempio:

sudo apt-get update
sudo apt-get upgrade

Questi sono due comandi da eseguire uno per uno.

Eseguire immediatamente sarà come sudo apt-get update && sudo apt-get upgrade(ci sono anche altri metodi), ma queste cose non richiedono in generale. Quindi non preoccuparti. Digita una riga e premi Invio per fare il suo lavoro.


Grazie mille per il tuo consiglio, vorrei averlo saputo prima !!! Tuttavia, viviamo e impariamo :-)
Debbie Poole il

4
@ user113090 Se Web-E ha risposto alla tua domanda, non dimenticare di contrassegnare la sua risposta come risposta accettata.
Decano

12

Poiché Web-E spiega il modo più diretto per fare ciò che vuoi con due diversi comandi, ho pensato di mostrare che ci sono diversi modi per eseguire più comandi o continuare i comandi su un'altra riga senza eseguirli immediatamente.

Comandi lunghi continui:

1) Il modo più comune per costruire un comando lungo è quello di inserire i tuoi comandi, quindi utilizzare una barra rovesciata \, premere Invio , quindi Bash ti fornirà un altro prompt invece di eseguire il comando. Questo prompt secondario si chiama PS2 e attende l'immissione:

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

Puoi continuare ad aggiungere barre rovesciate e premere Invio per tutto il tempo che desideri, purché pensi che il comando generale abbia senso.

È possibile annullare questo prompt secondario con il solito Ctrl+ C.

2) Bash riconosce alcuni comandi come per i loop (per i in ....) e il prompt apparirà immediatamente; proprio come succede se si perde un segno di virgolette su un comando:

apt-cache search 'libgimp*
> 

Comandi multipli :

3) Come osserva Lxnslck , puoi separare i comandi con punto e virgola:

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) Oppure puoi usare la e commerciale &&per unire due comandi:

./configure && make

4

È possibile premere il tasto INVIO dopo ogni riga e se il comando non viene terminato (ad esempio comandi di mutilina come forloop), il terminale attenderà l'inserimento del resto del comando. Se il comando viene terminato, verrà eseguito e dopo si inserirà il comando successivo, nessun problema.

Se stai copiando i comandi da un tutorial, puoi copiare l'intero gruppo di comandi e incollarlo direttamente nel terminale e funzionerà.


1

Quando si tratta di un set di comandi che prevedi di utilizzare più di una volta, dovresti inserirli in un file di script bash . Per esempio,

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

non è niente che ti piacerebbe digitare mai più, ma mi capita di aver bisogno di questa particolare sequenza di comandi molto spesso. Quindi va in un file chiamato 1280x980-2head.sh, puoi crearlo con qualsiasi editor di tua scelta. Per rendere lo script eseguibile , si mette la linea #!/bin/bashdi fronte a tutto ciò (una baracca ), e impostare l'esecuzione-autorizzazione: chmod +x 1280x980-2head.sh. Quindi, basta digitare ./128<tab>(completamento automatico) ed <enter>eseguire tutti i comandi.


0

Puoi mettere tutto tra parentesi; per esempio:

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

I comandi verranno eseguiti uno dopo l'altro in una sotto-shell.

Se non vuoi che vengano eseguiti in una sotto-shell, puoi mettere un punto e virgola tra un comando e l'altro; per esempio:

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

Invece, se si inserisce "&&" tra ciascun comando, il comando che segue "&&" verrà eseguito solo se il comando precedente è terminato senza errori, quindi non è necessario utilizzarlo per concatenare i comandi; usa invece i punti e virgola. Al contrario, se si inserisce "||", il comando seguente verrà eseguito solo se il primo esce con un errore. Esempio: (il comando "which" controlla se esiste un programma e se non si chiude con un errore)

which apt-get && echo "No error" || echo "Error"    # Will print "No error"
which jdhdsd && echo "No error" || echo "Error"  # Will print "Error"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.