Očekávám, že za to dostanu nějaké chyby, ale odpověď nemohu nikde najít. Zdá se, že by to mělo být tak zřejmé. Někdy, když zadejte špatný příkaz do terminálu bash, kurzor pouze skočí dolů na další řádek bez jakékoli chyby nebo čehokoli jiného. Nevím, co jsem udělal špatně. Je to, jako bych uvízl v programu. Rekonstrukce:

$ tidy 

Já: „Jejda! To není to, co jsem chtěl napsat …“

:q 

Já: „To nefungovalo …“

:exit :quit exit quit /exit /quit -exit -quit -wtf??? 

Vím, že jsem to pokazil, ale jak se dostanu zpět do výzvy bez zavření terminálu?

Komentáře

odpověď

Vždy můžete vyzkoušet zřejmé věci jako ^C, ^D (eof), Escape atd., Ale pokud vše selže, obvykle skončím pozastavením příkaz s ^Z (Control-Z), který mě vrací zpět do shellu.

Poté provedu příkaz ps, poznamenám si PID (id procesu) příkazu a poté vydám kill thePID (kill -9 thePID pokud bývalý nefungoval) příkaz k ukončení aplikace.

Upozorňujeme, že se nejedná o uklizený ( bez slovní hříčky) způsob ukončení aplikace / příkazu a riskujete, že možná nebudete ukládat nějaká data atd.

Příklad (použil jsem tidy ale nemám jej nainstalován):

$ 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 

Komentáře

  • To ' je to !! ^ Z na záchranu. Mockrát vám děkuji.
  • ^ \ (ctrl-backslash, SIGQUIT) funguje v některých tvrdohlavých nástrojích, které don ' neodpovídá na ^ C.
  • Pst! Nerozprávejte lidem id nebo ' ll začnu SIG_IGN ' i tím, co tedy uděláme?
  • @godlygeek Můžeš řekněte mi, co %% znamená v Linuxu nebo o co jde? Hodně jsem hledal.
  • @Noumenon, podívejte se na LESS='+/^JOB CONTROL' man bash. %% odkazuje na " aktuální úlohu ".

Odpověď

Zkuste stisknout Ctrl D nebo Ctrl C . Pokud selže, proces zabijte.

Pokuste se pomocí příkazu tidy, který jste zmínili, Ctrl D funguje.

Komentáře

  • CTRL+C je vhodný i pro Windows CMD.

Odpověď

Dalším řešením (již nebylo zmíněno) je odeslání signálu SIGQUIT pomocí ctrl + \

Je silnější než ctrl + c

Odpověď

CTRL + D == exit shell command

a

CTRL + C == terminate the current process, Of course may be the given software handle it and CTRL + D doens"t work

Samozřejmě vytvářejí kernel signal pokud se chcete dozvědět více, přečtěte si:

man 7 signal 

Komentáře

  • Ctrl + D je konec souboru, nikoli přímo ukončení.

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna. Vyžadované informace jsou označeny *