Terminalverlauf unter Linux löschen [geschlossen]

170

Wenn Sie die Aufwärts-Taste in einem Linux-Terminal verwenden, können Sie die vorherigen Befehle erneut verwenden. Tolles Feature. Ich habe jedoch begonnen, MySQL mit den vertraulichen Details im Befehl in MySQL zu protokollieren.

Wie kann ich diesen Verlauf löschen?

Frank Vilea
quelle
Entschuldigung, ich habe völlig vergessen zu erwähnen, dass ich Bash benutze.
Frank Vilea
16
Da diese Frage geschlossen ist, kann ich sie nicht als Antwort hinzufügen. Mit diesem Befehl können Sie bash export HISTFILE=/dev/null
Chris Eberle
1
Ich kann auch folgendes hinzufügen:
Geben

Antworten:

343

Sie können Ihren Bash-Verlauf folgendermaßen löschen:

history -cw

Eddie
quelle
4
Diese Antwort gefällt mir sehr gut - sie wird sofort wirksam und nicht gelöscht .bash_history, sodass die Shell neu gestartet werden muss, damit sie wirksam wird.
Mikemaccana
1
Funktioniert nicht auf meinem Ubuntu 14.04-Computer. Der Verlauf wird nur mit dem neuen Terminal angezeigt. Alles was funktioniert hat ist >~/bash_history. Dafür muss das Terminal allerdings neu gestartet werden.
Aniket Thakur
Funktioniert auch auf Mac OS X El Capitan (getestet auf Version 10.11.2), aber man muss hinzufügen , dass auf Ihre folgende Zeile ~/.bash_profile: export SHELL_SESSION_HISTORY=0, dann tun ein source ~/.bash_profileund bis Ende beenden und starten Sie den Terminal - App. Wenn Sie verstehen möchten, was dieser Exportbefehl bewirkt, sollten Sie unbedingt den folgenden Link überprüfen: superuser.com/questions/950403/…
King-Wizard
1
ist nicht nur -c genug? In den Handbüchern heißt es, dass -c die Verlaufsliste löscht, indem alle Einträge gelöscht werden. -w leitet den aktuellen Verlauf an die Verlaufsdatei und hängt ihn an die Verlaufsliste an. Nur -c funktioniert gut.
Kahn
24

Wenn Sie bash verwenden, wird der Terminalverlauf in einer Datei namens .bash_history gespeichert. Löschen Sie es und die Geschichte wird verschwunden sein.

Für MySQL ist es jedoch besser, das Kennwort nicht in die Befehlszeile einzugeben. Wenn Sie nur die Option -p ohne Wert angeben, werden Sie zur Eingabe des Kennworts aufgefordert und es wird nicht protokolliert.

Wenn Sie Ihr Kennwort nicht jedes Mal eingeben möchten, können Sie es auch in einer my.cnf-Datei speichern. Erstellen Sie eine Datei mit dem Namen ~ / .my.cnf mit folgenden Elementen:

[client]
user = <username>
password = <password>

Stellen Sie sicher, dass Sie die Dateiberechtigungen so ändern, dass nur Sie die Datei lesen können.

Auf diese Weise wird Ihr Passwort natürlich immer noch in einer Klartextdatei in Ihrem Home-Verzeichnis gespeichert, so wie es zuvor in .bash_history gespeichert wurde.

sagi
quelle
4
+1 für die Angabe -p. Dies ist völlig der richtige Ansatz für dieses Problem
andyb
2
Auf meinem Linux-System merkt sich bash den Verlauf und erstellt die Datei beim Abmelden neu. Sie müssten sich anmelden, die Datei löschen, sich erneut anmelden, die erste Shell abmelden, die Datei löschen und dann die zweite Shell abmelden.
CHao
Vielen Dank für den Hinweis. Ich dachte, ich wäre schlau, wenn ich die Option -p + Passwort direkt im Befehl verwenden würde, weil es so viel schneller war, nur den Aufwärtspfeil zu drücken, da ich ein sehr langes Passwort habe. Zeit zu überdenken ..
Frank Vilea
5
Vergessen Sie nicht, unset HISTFILEdamit der aktuelle Verlauf nicht gespeichert wird.
Ignacio Vazquez-Abrams
Ich habe meine Antwort bearbeitet und eine Lösung hinzugefügt, die verhindert, dass das Passwort jedes Mal eingegeben wird.
Sagi