Mehr als einmal habe ich versehentlich eine Reihe von Befehlen ausgeführt und meine Bash-Historie verschmutzt. Wie schließe ich mein Terminal, ohne meinen Bash-Verlauf zu speichern? Ich benutze Fedora.
bash
command-history
Michael Mrozek
quelle
quelle
set HISTFILE
nächste Mal, wenn ich mich anmelde? (Sagen Sie einfach, ob dies richtig oder falsch ist)Kurze Antwort:
Geben Sie dies an der Eingabeaufforderung ein:
Dies wird Ihre Shell sofort , ohne die Schale der Lage zu töten ist zu tun etwas wie Falle das Signal, speichern Geschichte, führen
~/.bash_logout
, warnen gestoppt Arbeitsplätze oder jede dieser guten Sachen.Lange Antwort:
Hinweis: Diese Optionen schließen sich nicht gegenseitig aus. Sie können alle gleichzeitig verwendet werden.
Option 1:
Wenn Sie ein Perfektionist sind, wenn es darum geht, Ihre Verlaufsdatei
HISTIGNORE
zu überfrachten, können Sie die Variable so ändern , dass sie eine Reihe von Befehlen enthält, die nicht aufgezeichnet werden sollen. Zum Beispiel, wenn Sie hinzufügen ,HISTIGNORE='ls*:cd*'
um Ihre~/.bashrc
dann jeder Instanzls
undcd
nicht eingefügt in der History - Datei.Option 2:
Wenn Sie befehlsbezogen steuern möchten, welche Befehle in Ihrem Verlauf nicht berücksichtigt werden, können Sie festlegen
HISTCONTROL='ignorespace'
, dass keine Befehlszeilen mit einem Leerzeichen beginnen. Bei Verwendung vonignoreboth
werden auch wiederholte Zeilen weggelassen. Wenn Sie dann die Leertaste drücken, bevor Sie einen Befehl eingeben, wird dieser nicht in Ihrer Verlaufsdatei angezeigt.Option 3:
Wenn Sie nur möchten, dass die Shell beim Schließen des Terminals sofort beendet wird, können Sie
trap
das Signal, das das Terminalprogramm an die Shell sendet (xterm
z. B. sendetSIGHUP
und wartet, bis die Shell beendet wird), und den Vorgang beenden, ohne den Verlauf zu speichern empfängt dieses Signal. Fügen Sie dies zu Ihrem hinzu~/.bashrc
:quelle
kill -9
für irgendetwas zu werben, außer in schlimmen Situationen, in denen alles andere fehlgeschlagen ist.Ich bin überrascht zu sehen, dass niemand
history -c
unmittelbar zuvor einen Vorschlag gemacht hatexit
. IINM (ich bin kein Experte), das wird gut tun.quelle
history -r
Die Verlaufsdatei wird erneut gelesen, sodass das Speichern zu einem No-Op wird.Es gibt zwei Umgebungsvariablen, die bash verwendet, um die Verlaufsdatei und die Anzahl der Zeilen zu bestimmen, in die beim Beenden der Shell geschrieben werden soll.
Sie können den Verlauf Ihrer Sitzung mit einem der folgenden Elemente verwerfen (festgelegt während der Sitzung, die Sie aus Ihrer Verlaufsdatei ausschließen möchten):
oder
Beides funktioniert in Bash on Fedora einwandfrei
quelle
Ich bin mir nicht sicher, warum dir deine Befehlsgeschichte so wichtig ist. Wenn Sie bestimmte Befehle häufig benötigen, macht es möglicherweise mehr Spaß, wenn Sie Aliase für sie definieren, damit Sie sie mit zwei Tastenanschlägen zurückholen können, anstatt im Verlauf nach ihnen suchen zu müssen.
quelle
Eli hat dir schon die richtige Antwort für Bash gegeben, die gesetzt werden soll
HISTSIZE=0
.Ich würde nur die Methode hinzufügen, um es für GNU-Bildschirm zu tun . Drücken Sie
Ctrl+A
(Bildschirm-Escape-Sequenz) gefolgt von:scrollback 0
. Dadurch wird der Scroll-Back-Verlauf gelöscht. Jetzt können Sie sofort die:scrollback 15000
Größe des Scrollback-Puffers zurücksetzen.quelle
screen(1)
?scrollback=0
.Ctrl+a H
nochCtrl+a :clear
wird die Geschichte entfernen. Du brauchstCtrl+a :scrollback 0
. Sie können es selbst testen. Starten Sie eine neue Bildschirmsitzung. Jetzt mache acat /etc/passwd
. Führen Sie nun einen der oben genannten Schritte aus -Ctrl+a H
oderCtrl+a :clear
. Versuchen Sie nun, aus dem Bildschirmpuffer zu kopieren, indem Sie einenCtrl+a [
Pfeil nach oben und anschließend einen Pfeil nach oben drücken , um zu sehen, wie weit Sie zum Kopieren gehen können. Wenn Sie einCtrl+a :scrollback
gefolgt von einem getan habenclear
, würden Sie nur so weit gehen, wie Sie im aktuellen Fenster sehen können, da es keinen Scrollback-Puffer gibt.