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.

Lasă un răspuns

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *