Mă aștept să obțin ceva obișnuit pentru asta, dar nu pot găsi răspunsul oriunde. Se pare că ar trebui să fie atât de evident. Uneori, când tastați o comandă greșită într-un terminal bash, cursorul sare doar pe linia următoare fără nicio eroare sau altceva. Nu pot să spun ce am greșit. „E ca și cum aș fi blocat în program. Recreație:
$ tidy
Eu: „Hopa! Nu asta am vrut să scriu …”
:q
Eu: „Asta nu a funcționat …”
:exit :quit exit quit /exit /quit -exit -quit -wtf???
Știu că m-am înșelat, dar cum mă întorc la prompt fără a închide terminalul?
Comentarii
Răspuns
Puteți încerca întotdeauna lucruri evidente, cum ar fi ^C
, ^D
(eof), Escape etc., dar dacă toate nu reușesc, de obicei ajung să suspend comanda cu ^Z
(Control-Z) care mă pune înapoi în shell.
Apoi fac o comandă ps
și notez PID (id-ul procesului) al comenzii și apoi emit o kill thePID
(kill -9 thePID
dacă prima nu a funcționat) comandă pentru a termina aplicația.
Rețineți că aceasta nu este o ordonată ( niciun joc de cuvinte) modalitate de a termina aplicația / comanda și riscați să nu salvați anumite date etc.
Un exemplu (aș fi folosit tidy
dar nu îl am instalat):
$ 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
Comentarii
- Acel ' este !! ^ Z la salvare. Vă mulțumesc foarte mult.
- ^ \ (ctrl-backslash, SIGQUIT) funcționează în unele utilități încăpățânate care nu ' nu răspunde la ^ C.
- Shh! Nu ' nu spune oamenilor despre ^ \ sau ei ' vom începe
SIG_IGN
' și asta, atunci ce vom face? - @godlygeek Poți spune-mi ce înseamnă %% în Linux sau ce fel de lucru este? Am căutat mult.
- @Noumenon, aruncă o privire la
LESS='+/^JOB CONTROL' man bash
.%%
se referă la " job curent ".
Răspuns
Încercați să apăsați Ctrl – D sau Ctrl – C . Dacă eșuează, eliminați procesul.
Încercarea cu comanda tidy
pe care ați menționat-o, Ctrl – D funcționează.
Comentarii
-
CTRL+C
este bun și pentru Windows CMD.
Răspuns
O altă soluție (care nu este menționată deja) este trimiterea semnalului SIGQUIT
folosind ctrl + \
Este mai puternic decât un ctrl + c
Răspuns
CTRL + D == exit shell command
și
CTRL + C == terminate the current process, Of course may be the given software handle it and
CTRL + D doens"t work
Desigur, produc un kernel signal
dacă doriți să aflați mai multe, citiți:
man 7 signal
Comentarii
- Ctrl + D este sfârșitul fișierului, nu iese direct.
:q
a funcționat de fapt pentru mine; nu este ' o comandă Vim?