Ubuntu: Teil des Stammverzeichnisses .bash_history spurlos löschen

Ubuntu: Teil des Stammverzeichnisses .bash_history spurlos löschen

Die .bash_history-Datei von root kann folgendermaßen aussehen:

line 1
line 2
line 3
line 4

Jetzt lösche ich die Zeilen 3 und 4

su
vim ~/.bash_history

#delete line 3 und 4 with dd
line 1
line 2

:wq

ENTER
CTRL + D

Aber wenn ich mir jetzt .bash_history anschaue:

su
cat ~/.bash_history

#.bash_history
line 1
line 2
vim ~/.bash_history

Wie kann ich also nur einen Teil des Verlaufs löschen, ohne dass in der letzten Zeile angezeigt wird, dass ich die Datei bearbeitet habe?

Danke

Antwort1

Verwenden:

su
 vim ~/.bash_history

Der Verlauf speichert den Befehl nicht, wenn er eineRaumvor.


Dies hängt von der HISTCONTROLVariable ab. Standardmäßig (für root) ist es ignoredups:ignorespace.

Antwort2

Wie bereits erwähnt, können Sie vor Ihrem Befehl ein Leerzeichen verwenden, aber das hängt von HISTCONTROLder Variable ab. Hier sind einige Alternativen -

Sie können dem Terminal sagen, dass es die Aufzeichnung des Verlaufs stoppen und starten soll. Dies können Sie mit diesen Befehlen tun:

set +o history      #stop recording history
set -o history      #start recording history

Wenn Sie bereits einige Befehle ausgeführt haben und vergessen haben, die Aufzeichnung zu stoppen oder Speicherplatz zu verwenden, können Sie das Schreiben in die Datei trotzdem stoppen, .bash_historysolange die Sitzung noch geöffnet ist. Es wird in die Datei geschrieben, wenn Sie die Terminalsitzung schließen. Sie können also den aktuellen Sitzungsverlauf löschen, kurz bevor Sie die Sitzung schließen ( suin Ihrem Fall vor dem Beenden). Dies können Sie mit diesem Befehl tun -

history -c

Eine extreme Möglichkeit wäre, den Terminalprozess zu beenden, wenn Sie mit der Ausführung aller Befehle fertig sind. Sie beenden den Prozess im Grunde, bevor er den Verlauf in eine Datei schreiben kann.

kill -9 $$

$$gibt die aktuelle Terminalprozess-ID an und kill -9beendet diesen Prozess.

verwandte Informationen