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í.
:q
pro mě skutečně pracoval; není ' to příkaz Vim?