Früher dachte ich, das Löschen meines Bash-Verlaufs würde ausreichen, um meinen Bash-Verlauf zu löschen, aber gestern spielte meine Katze auf der rechten Seite meiner Tastatur herum, und als ich wieder an meinem Computer ankam, sah ich etwas, das ich vor einem Monat getippt hatte, und dann fing ich an zu tippen Drücke alle Tasten wie verrückt und suche, was es ausgelöst haben könnte. Die UPARROW-Taste zeigt meinen Bash-Verlauf auch nach dem Löschen von .bash_history an.
Wie kann ich meinen Bash-Verlauf wirklich löschen?
~/.bash_history
löscht wirklich~/.bash_history
.... aber (es sei denn, Sie unternehmen Schritte, um dies zu verhindern, wie das Löschen des In-Memory-Verlaufs, indem Sie ihnhistory -c
kurz vor dem Abmelden oder Einstellen ausführenHISTFILE=/dev/null
oder einfach nurunset
ausführen) , speichert bash den aktuellen Verlauf beim Beenden erneut . ÜbrigensHISTSIZE
teilt die Variable env bash mit, wie viele Zeilen des Verlaufs gespeichert werden sollen, und teilt bash mit, wie viele VerlaufszeilenHISTFILESIZE
maximal gespeichert werden sollen . Beides kann zB in Ihrem Telefon eingestellt werden~/.bashrc
. PS: Ihre Katze verdient eine 2. Belohnung für das Unterrichten Sie eine wertvolle Lektion :)Antworten:
In einigen Fällen (einige Bash-Versionen) wird Folgendes ausgeführt:
Oder einfach
Löscht den Verlauf im Speicher (der Aufwärts- und Abwärtspfeil enthält keine aufzulistenden Befehle) und schreibt diesen dann in die
$HISTFILE
Datei (wenn der Verlauf$HISTFILE
von der ausgeführten Bash-Instanz abgeschnitten wird).Manchmal beschließt bash, die Datei auch dann nicht abzuschneiden
$HISTFILE
, wenn diehistappend
Option deaktiviert und$HISFILEZIZE
auf 0 gesetzt ist.In solchen Fällen funktioniert die Nuke-Option immer:
Dadurch wird die Verlaufsliste der im Speicher aufgezeichneten Befehle und aller zuvor in der Datei aufgezeichneten Befehle gelöscht. Dadurch wird sichergestellt , dass der Lauf Shell Geschichte nicht aufgezeichnet wird entweder im internen Speicher oder Festplatte, aber auch andere laufenden Instanzen von bash (wo Geschichte aktiv ist) können eine vollständige Kopie von Befehlen aus lesen ,
$HISTFILE
wenn bash gestartet wurde (oder wenn einhistory -r
ausgeführt wird ) .Wenn es auch erforderlich ist, dass nichts anderes (keine neuen Befehle) der aktuellen Sitzung in die Verlaufsdatei geschrieben
unset HISTFILE
wird , wird eine solche Protokollierung verhindert.quelle
history -c && history -r
der aktuelle Verlauf durch den manuell geänderten Verlauf ersetzt. In einigen Fällen ist dies möglicherweise besser, als die gesamte Geschichte wegzuwerfen.bash
hat einen Sitzungsverlauf im Speicher, der in eine Datei geschrieben wird, wenn die Shell-VariableHISTFILE
beimbash
Beenden auf einen Dateinamen gesetzt wird .Wenn Sie die Datei löschen, auf die durch verwiesen wird
HISTFILE
, deaktivieren Sie diese Variable und beenden Sie siebash
hinterlässt diese Shell-Sitzung keinen persistenten Verlauf.Wird die
HISTFILE
Variable nicht zurückgesetzt, aber die Datei gelöscht, wird nur der persistente Verlauf geleert. Der Verlauf der aktuellen Sitzung wird jedoch gespeichert, wenn die Shell beendet wird.quelle
history -c; history -w
löscht sowohl den Speicher- als auch den Dateiversionsverlauf. Das Deaktivieren von HISTFILE ist nur erforderlich, wenn keine weiteren Befehle im Verlauf protokolliert werden sollen (nicht genau das, was IMhO gefragt wurde)."Wie kann ich meinen Bash-Verlauf wirklich löschen?"
Beenden Sie bash, starten Sie eine andere Shell und löschen Sie die Bash-Verlaufsdatei.
oder
Melden Sie sich ab, melden Sie sich bei einem anderen Konto an, das über Schreibrechte für die Verlaufsdatei verfügt, und löschen Sie die Verlaufsdatei.
quelle
Machen Sie alles auf einmal, während Sie die Shell verlassen
quelle