Frage Wie kann man die Geschichte komplett löschen?


Ich möchte alle vorherigen Befehle aus dem Verlauf meines Servers löschen. ich benutzte history -c und es scheint, dass alle Dinge geklärt sind, aber wenn ich auf dem Server ssh bin, sind alle Befehle noch da.

Wie kann ich sie dauerhaft löschen?


221
2017-09-23 05:44


Ursprung




Antworten:


Die Datei ~/.bash_history hält die Geschichte fest.

Um den Bash-Verlauf vollständig auf dem Server zu löschen, öffnen Sie das Terminal und geben Sie ein

cat /dev/null > ~/.bash_history

Ein anderer alternativer Weg ist das Verknüpfen ~/.bash_history zu /dev/null

Jedoch,

Ein lästiger Nebeneffekt ist, dass die History-Einträge ein in den Speicher kopieren und es wird Beim Abmelden zurück in die Datei.

Um dies zu umgehen, verwenden Sie den folgenden Befehl (funktionierte für mich):

cat /dev/null > ~/.bash_history && history -c && exit

289
2017-09-23 05:51



Sie können den obigen Befehl auch in .bashrc & .bash_logout eingeben. Was es bedeutet, wenn du dich einloggst, wird einen klaren Verlauf haben und wenn du dich ausloggst, wird dein Verlauf gelöscht - Qasim
Warum brauchst du / dev / null da? Würde nicht > ~/.bash_hstory reichen? - configurator
Ja, es wäre genug! - fromnaboo
Ich habe versucht, es auf einer Himbeer-Box zu tun, während es über SSH verbunden ist. Ich habe den obigen Befehl (cat / dev / null> ~ / .bash_history &&history -c && exit) sowohl zu .bashrc und .bash_logout hinzugefügt, wie von @Qasim vorgeschlagen. Jetzt, sobald ich über SSH eine Verbindung herstelle, schließt der Remote-Host die Verbindung (nach dem Drucken des Motd). Hilfe :/ - Advanced
Geht zu zeigen, was passiert, wenn Sie blind Dinge tun, ohne richtig zu lesen und ohne die Verarbeitung und den Datenfluss zu verstehen. Es zeigt auch die Fallstricke schlechter Kommunikation. Was devav2 getan hat, wurde einmal ausgeführt, und was Qasim hätte schreiben sollen, ist den Befehl exit zu entfernen, bevor er im Login-Skript hinzugefügt wird. - Sri


Was ist zu tun:

Im jeden offene Bash-Shell (Sie können mehrere Terminals geöffnet haben):

history -c
history -w

Warum: Wie oben beschrieben, history -c Leert die Datei ~/.bash_history. Es ist wichtig zu beachten, dass die Bash-Shell den Verlauf nicht sofort in die bash_history-Datei überträgt. Es ist also wichtig, (1) den Verlauf in die Datei zu schreiben und (2) den Verlauf zu löschen, in allen Terminals. Das machen die obigen Befehle.

Referenz: http://www.giannistsakiris.com/index.php/2007/09/13/how-to-clear-bash-history-and-what-to-watch-out-for/


115
2018-04-11 20:55



Eigentlich funktionierte das anders herum für mich. - kristianp
In vielen Fällen können Sie diese beiden Befehle kombinieren: history -cw - Elliot
Aus irgendeinem Grund funktioniert dies nicht auf Ubuntu 14.04, wahrscheinlich anderen. Es sollte aber nicht. Wenn Sie den Befehl "history -cw" eingeben, können Sie mit dem Pfeil nach oben bestätigen, dass der Verlauf nicht mehr vorhanden ist, aber wenn Sie ein anderes Terminalfenster (im Unity-Desktop) mit Shift + Klick auf das Terminalsymbol starten (ich habe es im Launcher gepinnt) die Kommandohistorie ist zurück, egal wie oft du "history -cw" machst. "cat / dev / null> ~ / .bash_history" ist der einzige Weg, der für mich funktioniert hat. - Hatoru Hansou
Während ich nicht Ubantu bin, funktioniert es gut für meine Bash-Shell in OSX. - Scott Biggs
Es ist Geschichte -c und dann Geschichte -w, Sie löschen zuerst die Geschichte und schreiben dann die Änderungen. Dies wird leicht dadurch bestätigt, dass das Terminal geschlossen und wieder geöffnet wird, wobei -w zuerst die Befehle wieder gibt, wobei -w die letzte Historie effektiv gelöscht wird. - Hatoru Hansou


Führen Sie die folgenden Befehle aus, um den Verlauf für immer zu löschen

history -c && history -w

Viel Glück!


44
2017-08-12 12:39





Es gibt noch einen viel einfacheren: Laufen history -c auf der Terminal - Eingabeaufforderung und weg sind alle Einträge in der bash_history Datei.


19
2018-03-10 18:10



Nein ist es nicht. Abmelden, einloggen, Pfeil hoch gibt mir alles. Du brauchst auch die "Geschichte -w". - stolsvik
Wenn du die Frage des OP liest, würdest du das wissen history -c ist die genaue Methode, die zu dieser Frage geführt hat. - J.Money


Eine andere Möglichkeit, dies zu tun, ist Löschen der ~/.bash_history Datei unter Verwendung von rm ~/.bash_history Befehl. Wenn Sie sich ein anderes Mal anmelden, .bash_history Datei wird automatisch erstellt.


10
2017-09-23 06:18



Zumindest auf einigen Betriebssystemen wird ~ / .bash_history beim Abmelden auf die Festplatte geschrieben - Bin nicht sicher über * bunt. - d-_-b


Lösche den aktuellen Shell-Verlauf:

history -c

Wenn Sie sich abmelden, wird der Verlauf Ihrer aktuellen Shell an ~ / .bash_history angehängt, was ein Cache der früheren Shell-Historien ist, bis zu einer maximalen Anzahl (siehe HISTFILESIZE in "man bash").

Wenn Sie die Chronik komplett entfernen wollen, müssen Sie ~ / .bash_history im Wesentlichen ausleeren, was viele der obigen Einträge vorgeschlagen haben. Sowie:

history -c && history -w

Dies löscht den Verlauf der aktuellen Shell und zwingt dann den Verlauf der aktuellen Shell (leer) dazu, ~ / .bash_history zu überschreiben .... oder, um genauer zu sein, er zwingt ihn, HISTFILE zu überschreiben (was standardmäßig ~ / .bash_history ist).

Hoffe das hilft.


5
2017-07-10 17:05



Sie antworten genau, aber die Frage war zwei Jahre alt, hatte Antworten akzeptiert und enthielt die gleiche Antwort, die Sie gegeben haben. - Charles Green


rm ~/.bash_history; history -c; logout

Melden Sie sich jetzt wieder an und stellen Sie fest, dass Ihr Pfeil nach oben nichts anzeigt.


5
2017-10-01 19:16



@KasiyA Es geht um eine Server- und eine SSH-Sitzung, also muss man nicht editieren ... - Radu Rădeanu


Probier diese

editiere deine .profile und füge die Zeile unten am Ende der Datei hinzu

rm -f .bash_history

Auf diese Weise wird bei jeder Anmeldung Ihre .bash_history-Datei automatisch für Sie gelöscht. Das Hinzufügen der Option -r recursive remove scheint gefährlich und wird nicht benötigt.


0
2017-08-30 18:06