Wenn ich verwende tail -f
und zur Shell zurückkehren möchte, verwende ich immer CTRL+C
. Oder wenn ich einen Befehl eingebe und Lust habe, ihn abzubrechen und von vorne zu beginnen, gehe ich einfach CTRL+C
zu einer leeren Eingabeaufforderung zurück. Wird dies als schlechte Praxis angesehen? Ich habe manchmal das Gefühl, dass es einen besseren Weg gibt, sich von etwas zu lösen, aber ich habe wirklich keine Ahnung.
27
Antworten:
Ctrl+ Csendet ein SIGINT an das Programm. Dies teilt dem Programm mit, dass Sie den Prozess unterbrechen (und beenden) möchten. Die meisten Programme fangen dies korrekt auf und beenden es sauber. Ja, das ist eine "richtige" Möglichkeit, die meisten Programme zu beenden.
Es gibt andere Tastenkombinationen zum Senden anderer Signale an Programme, dies ist jedoch die häufigste.
quelle
read()
Systemaufruf. Die nächstenread()
s bleiben davon unberührt. Drittens: Nichts davon gilt für Programme, die die Zeilendisziplin in einen nicht-kanonischen Modus versetzen, wie die meisten Shell-Programme der letzten Jahrzehnte und in der Tat jedes andere Programm, das eine Bibliothek wie GNU verwendetreadline
.Diese Methode ist wirklich in Ordnung.
quelle
Um einen langen Befehl während der Eingabe abzubrechen, springe ich manchmal zum Zeilenanfang und füge ein Kommentarzeichen ein, bevor ich die Eingabetaste drücke:
Home#Enter
Pos1#Return
Dies ist nützlich, wenn ich zum Beispiel einen Kopierbefehl mit einem langen Pfad eingegeben habe und in der Zwischenzeit feststelle, dass ich zuerst das Verzeichnis erstellen muss, aber den Befehl anschließend wiederholen möchte. Dann muss ich es nur noch aus dem Verlauf nehmen, den Hash löschen und ihn eingeben.
In Bash können Sie die Verknüpfung verwenden
Alt+#
um Ihren Befehl zu kommentieren, wie in den Kommentaren erwähnt (Danke, @Zorawar).
quelle
Ctrl-A
ohne die Finger von der Startreihe zu nehmen.Ctrl-E
geht übrigens bis zum Ende.Alt-#
: Der Kommentar wird eingefügt und der Befehl ausgeführt (also in Ihren Verlauf aufgenommen).Im Allgemeinen ist die Verwendung von Ctrl+ Cin Ordnung, wenn das Programm keine interaktive Möglichkeit zum Beenden bietet (entweder beabsichtigt oder häufiger, weil es eingefroren oder unbrauchbar geworden ist). Denken Sie daran, dass im interaktiven Modus die wirklich gewünschte Tastenkombination Ctrl+ sein kann D, die ein
EOF
Signal sendet , das das Ende der Eingabe signalisiert.quelle
Wenn Sie Bash verwenden, können Sie auch Ctrl- Zund eingeben
bg
, um den aktuellen Job in den Hintergrund zu stellen.quelle
Wie @Patrick im Kommentar zur akzeptierten Antwort sagte,
Dies half mir, wenn
Ctrl+C
es nicht funktionierte, die Befehlszeile nach der Verwendung wieder herzustellen>>
quelle