In einigen Fällen (einige Bash-Versionen) wird Folgendes ausgeführt:
$ history -c; history -w
Oder einfach
$ history -cw
Löscht den Verlauf im Speicher (Aufwärts- und Abwärtspfeil haben keine aufzulistenden Befehle) und schreibt dann das zum $HISTFILE
Datei (wenn die $HISTFILE
wird von der laufenden Bash-Instanz abgeschnitten).
Manchmal entscheidet sich Bash dagegen nicht kürzen Sie die $HISTFILE
Datei sogar mit histappend
Option nicht gesetzt und $HISFILEZIZE
auf 0 setzen.
In solchen Fällen funktioniert die Nuke-Option immer:
history -c; >$HISTFILE
Dadurch wird die Verlaufsliste der im Speicher aufgezeichneten Befehle und aller zuvor in einer Datei aufgezeichneten Befehle gelöscht. Dadurch wird sichergestellt, dass die laufende Shell weder im Speicher noch auf der Festplatte einen aufgezeichneten Verlauf hat. Andere laufende Instanzen von bash (wo der Verlauf aktiv ist) können jedoch eine vollständige Kopie der Befehle haben, die aus $HISTFILE
gelesen wurden wenn bash gestartet wurde (oder wenn ein history -r
wird ausgeführt).
Wenn es auch ist erforderlich, dass nichts anderes (keine neuen Befehle) der aktuellen Sitzung in die Verlaufsdatei geschrieben werden, dann unset HISTFILE
wird eine solche Protokollierung verhindern.
bash
hat einen Sitzungsverlauf im Speicher, der in die Datei geschrieben wird, wenn die Shell-Variable HISTFILE
wird auf einen Dateinamen gesetzt, wenn bash
Ausgänge.
Wenn Sie die Datei löschen, auf die HISTFILE
zeigt , setzen Sie diese Variable zurück und beenden Sie bash
, hinterlässt diese Shell-Sitzung keinen dauerhaften Verlauf.
Der HISTFILE
konnte nicht deaktiviert werden Variable, aber das Löschen der Datei würde nur den persistenten Verlauf leeren, aber der Verlauf der aktuellen Sitzung würde gespeichert, wenn die Shell beendet wird.