Manchmal beende ich versehentlich eine Terminalsitzung (normalerweise, weil ich denke, dass ich mit einem Remote-System verbunden bin, wenn ich es nicht bin), also komme ich zu folgendem Punkt:
Wie kann ich die Sitzung zu diesem Zeitpunkt neu starten? Ich möchte das Fenster oder die Registerkarte nicht schließen, da für meinen normalen Arbeitsablauf eine Reihe von Registerkarten eingerichtet sind. Daher möchte ich nur die Sitzung in der aktuellen Registerkarte wieder in Gang bringen (dh zu einer Bash-Eingabeaufforderung zurückkehren).
Die einzige Lösung, die ich bisher gefunden habe, besteht darin, Terminal vollständig zu beenden und erneut zu öffnen, aber das ist alles andere als ideal, da es offensichtlich alles andere unterbricht, was ich in anderen Terminalfenstern / -registern tue.
^t 8
zum Beispiel) für einen bestimmten Kontext tauschen müssen , anstatt visuell zu zählen, auf welchen Tabulator Sie klicken müssen oder (oder wie viele Strg-Pgups Sie treffen möchten). .cd
für den Quellcode, wenn ich an Code arbeite, damit dies mit Ihrer Verwendung übereinstimmt.ssh
irgendwo. Ich habe mich gerade daran gewöhnt, Bildschirm zu verwenden und ihn sowohl lokal als auch in Remote-Sitzungen zu verwenden. So wie ich es verstehe, sollten Siescreen
tmux lernen , wenn Sie noch kein Muskelgedächtnis haben, weil der Bildschirm alt und schmutzig ist. Ich könnte wahrscheinlich darauftmux
umsteigen und es so konfigurieren, dass es dieselben Tastenkombinationen verwendet, für die ich sie verwendescreen
, aber der Bildschirm funktioniert für mich immer noch einwandfrei .Antworten:
Zu diesem Zeitpunkt gibt es keine Möglichkeit, den Tab zurückzugewinnen. Die Terminalsitzung ist geschlossen und hat kein TTY mehr. Es gibt einfach keine Möglichkeit, auf die Registerkarte zu verweisen, um etwas Cleveres zu tun. Ich würde vorschlagen, diese Funktion zu Ihrem .bashrc oder .profile hinzuzufügen, damit Sie das Problem in Zukunft nicht mehr haben:
oder für diejenigen von uns, die die Z-Shell verwenden (fügen Sie sie Ihrer .zshrc hinzu):
Es ist eine nette kleine Barriere zwischen Ihnen und diesem nervigen Ausstiegsbefehl! Gott weiß, dass ich in der Vergangenheit oft dasselbe getan habe.
quelle
-t 5
Option), schlägt der Lesebefehl fehl, was den darauf folgenden Exit-Befehl auslöst.exit
wenn Sie Bash verwenden. Sie können Ihr Skript einfügen~/.bash_logout
..bash_logout
?logout
und einenIGNOREEOF
Wert größer als 1 festlegen (oder ^ D erneut binden).Das Skript von William T. Froggard hat nicht das getan, was ich brauchte, weil ich in der Regel nur über ^ D ( ctrl+ D) in diese Situation komme und die Neudefinition
exit
nichts für diese Situation getan hat. Dennis Williamsons Einstellungsvorschlag hat mirIGNOREEOF
gereicht. Ich habe gerade hinzugefügt:zu meiner
~/.bashrc
Datei und jetzt (wenn ich in der obersten Ebene Shell bin und das Terminal verlassen würde) erzeugt das erste ^ D die Antwort:Wenn ich ^ D sofort erneut eingebe, wird die Shell beendet. Es ist also immer noch einfach, sie zu beenden, wenn ich möchte. Jetzt gibt ein einzelnes ^ D eine Warnung aus. (Wenn Sie möchten, können Sie
IGNOREEOF
eine höhere Zahl festlegen , um weitere aufeinanderfolgende ^ D zu erfordern.)Auch hilfreich, wenn ich in einer Sub-Shell bin, generiert das erste ^ D die Antwort:
Wieder holt mich ein extra ^ D raus und jetzt kann ich den Unterschied zwischen dem Beenden einer Sub-Shell und dem Beenden der Top-Level-Shell erkennen.
quelle