Versehentlich .bash_history bezogen

34

In einem Moment der Brillanz führte ich den Befehl aus source ~/.bash_history. Glücklicherweise werden die meisten Befehle vimzum Bearbeiten von Dateien verwendet, aber es gibt einige beängstigende Befehle in meinem Verlauf - Verschieben und Entfernen von Dateien mit relativen Pfaden.

Zum Glück steckt es gerade in einer vimSitzung fest. Wenn ich es jedoch aussetze oder beende, geht es zur nächsten. Die Verlaufsdatei ist 1000 Zeilen lang.

Wie kann ich diesen Befehl abbrechen, ohne die Maschine neu zu starten?

mdkess
quelle
23
Das ist Wahnsinn! :)
7
Wahnsinn? Das ist Sparta! - warte, sorry.
Sirex
2
Ich bin nicht allein :)
Alupotha

Antworten:

28

Wenn es sich um einen lokalen Computer handelt, starten Sie ein neues Terminal und beenden Sie die betreffende Shell.

Wenn es sich um eine Remote-Maschine handelt, schließen Sie die betreffende Shell mit ssh an und beenden Sie sie.

Carl Norum
quelle
15

Sie können Ctrl+ Zdrücken oder eine Subshell mit starten :!bashund dann die Shell beenden . Spezifische Schritte:

Ctrl+Z
kill -9 $$

:suspend(oder akzeptable Abkürzungen davon) können äquivalent zu Ctrl+ funktionieren Z.

entmutigen
quelle
6
Wenn Sie dies jedoch tun :!bash, $$wird auf die soeben erstellte Subshell verwiesen. Sie müssen verwenden ps, um die PID herauszufinden. ... PS Ich denke, das ist in gewissem Maße eine Frage des Stils, aber wenn es nicht nötig ist, ausgefallene Sachen zu machen, würde ich einfach verwenden :!sh. Versuchen Sie es auch :sh.
Scott
1
Downvoting, weil, wie der Kommentar schon sagt, dies jemandem gerade genug falsches Vertrauen geben könnte, um vim zu verlassen und seine Maschine zu beschmutzen.
Parthian Shot