Mi aspetto di avere qualche critica per questo, ma non riesco a trovare la risposta da nessuna parte. Sembra che dovrebbe essere così ovvio. A volte, quando digita un comando sbagliato in un terminale bash, il cursore salta alla riga successiva senza errori o altro. Non posso dire cosa ho sbagliato. È come se fossi bloccato nel programma. Rievocazione storica:
$ tidy
Io: “Oops! Non volevo scrivere …”
:q
Io: “Non” ha funzionato … “
:exit :quit exit quit /exit /quit -exit -quit -wtf???
So di aver sbagliato ma come posso tornare indietro al prompt senza chiudere il terminale?
Commenti
Risposta
Puoi sempre provare cose ovvie come ^C
, ^D
(eof), Escape ecc., Ma se tutto fallisce di solito finisco per sospendere il comando con ^Z
(Control-Z) che mi rimette nella shell.
Quindi eseguo un comando ps
e prendo nota del PID (process id) del comando e poi emetto un kill thePID
(kill -9 thePID
se il primo “t non ha funzionato) per terminare lapplicazione.
Nota che questo non è un ordine ( nessun gioco di parole) modo per terminare lapplicazione / comando e corri il rischio di non salvare forse alcuni dati ecc.
Un esempio (io “avrei usato tidy
ma non lho installato):
$ gnuplot G N U P L O T Version 4.2 patchlevel 6 .... Send bug reports and suggestions to <http://sourceforge.net/projects/gnuplot> Terminal type set to "wxt" gnuplot> gnuplot> ##### typed ^Z here [1]+ Stopped gnuplot $ ps PID TTY TIME CMD 1681 pts/1 00:00:00 tcsh 1690 pts/1 00:00:00 bash 1708 pts/1 00:00:00 gnuplot 1709 pts/1 00:00:00 ps $ kill 1708 ###### didn"t kill the command as ps shows $ ps PID TTY TIME CMD 1681 pts/1 00:00:00 tcsh 1690 pts/1 00:00:00 bash 1708 pts/1 00:00:00 gnuplot 1710 pts/1 00:00:00 ps $ kill -9 1708 ### -9 did the trick $ [1]+ Killed gnuplot $ ps PID TTY TIME CMD 1681 pts/1 00:00:00 tcsh 1690 pts/1 00:00:00 bash 1711 pts/1 00:00:00 ps
Commenti
- That ' è tutto !! ^ Z in soccorso. Grazie mille.
- ^ \ (ctrl-backslash, SIGQUIT) funziona in alcune utility testarde che non ' t rispondere a ^ C.
- Shh! Non ' t dire alle persone del ^ \ o loro ' inizierà
SIG_IGN
' anche questo, quindi cosa faremo? - @godlygeek Puoi dimmi cosa significa %% in Linux o che tipo di cose è? Ho cercato molto.
- @Noumenon, dai unocchiata a
LESS='+/^JOB CONTROL' man bash
.%%
si riferisce al " lavoro corrente ".
Risposta
Prova a premere Ctrl – D o Ctrl – C . Se fallisce, termina il processo.
Provando con il comando tidy
che hai menzionato, Ctrl – D funziona.
Commenti
-
CTRL+C
va bene anche per Windows CMD.
Risposta
Unaltra soluzione (non già menzionata) è inviare il segnale SIGQUIT
usando ctrl + \
È più forte di ctrl + c
Risposta
CTRL + D == exit shell command
e
CTRL + C == terminate the current process, Of course may be the given software handle it and
CTRL + D doens"t work
Ovviamente, producono un kernel signal
se vuoi saperne di più, leggi:
man 7 signal
Commenti
- Ctrl + D è la fine del file, non esce direttamente.
:q
ha funzionato per me; ' non è un comando Vim?