Ich erwarte etwas Flak dafür, aber ich kann die Antwort nirgendwo finden. Es scheint, als sollte es so offensichtlich sein. Manchmal, wenn ich Wenn Sie einen fehlerhaften Befehl in ein Bash-Terminal eingeben, springt der Cursor ohne Fehler oder irgendetwas in die nächste Zeile. Ich kann nicht sagen, was ich falsch gemacht habe. Es ist, als ob ich im Programm stecke. Nachstellung:
$ tidy
Ich: „Ups! Das wollte ich nicht eingeben …“
:q
Ich: „Das hat nicht funktioniert …“
:exit :quit exit quit /exit /quit -exit -quit -wtf???
Ich weiß, dass ich es vermasselt habe, aber wie komme ich zurück? zur Eingabeaufforderung, ohne das Terminal zu schließen?
Kommentare
- Verwandte Themen: Was bewirkt, dass verschiedene Signale auftreten? gesendet werden?
-
:q
hat tatsächlich für mich gearbeitet; Ist ' kein Vim-Befehl?
Antwort
Sie können immer die offensichtlichen Dinge wie ^C
, ^D
(eof), Escape usw. ausprobieren, aber wenn alles fehlschlägt, werde ich normalerweise suspendiert der Befehl mit ^Z
(Control-Z), der mich zurück in die Shell bringt.
Ich führe dann einen ps
-Befehl aus, notiere die PID (Prozess-ID) des Befehls und gebe dann eine kill thePID
(kill -9 thePID
, wenn der erstere nicht funktioniert hat) Befehl zum Beenden der Anwendung.
Beachten Sie, dass dies kein ordentliches ist ( Kein Wortspiel beabsichtigt), um die Anwendung / den Befehl zu beenden, und Sie laufen Gefahr, möglicherweise keine Daten usw. zu speichern.
Ein Beispiel (ich hätte tidy
aber ich habe es nicht installiert):
$ 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
Kommentare
- Diese ' ist es !! ^ Z zur Rettung. Vielen Dank.
- ^ \ (Strg-Backslash, SIGQUIT) funktioniert in einigen hartnäckigen Dienstprogrammen, die keine ' antworte nicht auf ^ C.
- Shh! ' erzähle den Leuten nichts über das ^ \ oder sie ' wird
SIG_IGN
' starten, was werden wir dann tun? - @godlygeek Kannst du? Sag mir, was %% unter Linux bedeutet oder was es ist. Ich habe viel gesucht.
- @Noumenon, schauen Sie sich
LESS='+/^JOB CONTROL' man bash
an.%%
bezieht sich auf den " aktuellen Job ".
Antwort
Drücken Sie Strg – D oder Strg – C . Wenn dies fehlschlägt, beenden Sie den Prozess.
Versuchen Sie es mit dem von Ihnen erwähnten Befehl tidy
, Strg – D funktioniert.
Kommentare
-
CTRL+C
ist auch für Windows CMD geeignet.
Antwort
Eine andere Lösung (noch nicht erwähnt) besteht darin, das Signal SIGQUIT
zu senden Verwenden von Strg + \
Es ist stärker als ein Strg + c
Antwort
STRG + D == exit shell command
und
STRG + C == terminate the current process, Of course may be the given software handle it and
STRG + D doens"t work
Natürlich erzeugen sie eine kernel signal
Wenn Sie mehr wissen möchten, lesen Sie:
man 7 signal
Kommentare
- Strg + D ist das Dateiende und nicht direkt beendet.