Spodziewam się trochę za to, ale nigdzie nie mogę znaleźć odpowiedzi. Wygląda na to, że powinno to być takie oczywiste. Czasami, gdy wpisuję złe polecenie w terminalu bash, kursor po prostu przeskakuje do następnego wiersza bez żadnego błędu lub czegokolwiek. Nie umiem powiedzieć, co zrobiłem źle. To tak, jakbym utknął w programie. Rekonstrukcja:
$ tidy
Ja: „Ups! Nie to chciałem napisać…”
:q
Ja: „To nie działało ...”
:exit
:quit
exit
quit
/exit
/quit
-exit
-quit
-wtf???
Wiem, że spieprzyłem, ale jak wrócić do monitu bez zamykania terminala?
shell
command-line
terminal
kill
David Kennedy
źródło
źródło
:q
faktycznie pracował dla mnie; czy to nie jest polecenie Vima?Odpowiedzi:
Zawsze można spróbować oczywistych rzeczy jak
^C
,^D
(EOF), Ucieczka itp, ale jeśli wszystko zawiedzie I zazwyczaj kończy się zawieszenie polecenie z^Z
(Control-Z), która stawia mnie z powrotem do zbiornika.Następnie wykonuję
ps
polecenie i zapisuję PID (identyfikator procesu) polecenia, a następnie wydaje poleceniekill thePID
(kill -9 thePID
jeśli poprzednie nie działało), aby zakończyć aplikację.Zauważ, że nie jest to schludny (nie zamierzony gra słów) sposób na zakończenie działania aplikacji / polecenia i istnieje ryzyko, że nie zachowasz niektórych danych itp.
Przykład (użyłbym,
tidy
ale nie mam go zainstalowanego):źródło
SIG_IGN
to robić, to co zrobimy?LESS='+/^JOB CONTROL' man bash
.%%
odnosi się do „bieżącej pracy”.Spróbuj nacisnąć Ctrl- Dlub Ctrl- C. Jeśli to się nie powiedzie, zabij proces.
Próbowanie z
tidy
poleceniem, o którym wspomniałeś, Ctrl- Ddziała.źródło
CTRL+C
jest również dobry dla Windows CMD.Innym rozwiązaniem (jeszcze nie wspomnianym) jest wysłanie
SIGQUIT
sygnału za pomocą ctrl+\Jest silniejszy niż ctrl+c
źródło
CTRL+D
== exit shell command
i
CTRL+ C
== terminate the current process, Of course may be the given software handle it and
CTRL+Ddoens't work
Oczywiście produkują one,
kernel signal
jeśli chcesz dowiedzieć się więcej, przeczytaj:źródło