it-swarm.com.de

Wie entferne ich die letzten 5 Zeilen im Bash-Verlauf?

Wie kann ich die letzten 5 Zeilen im Bash-Verlauf entfernen? Wenn ich also den Ubuntu-Server neu lade oder neu starte, sind sie überhaupt nicht da?

history -c entfernt es nur aus der aktuellen Sitzung, aber wenn ich mich erneut anmelde, werden die Befehle erneut angezeigt. Ich möchte die letzten 5 löschen.

Ich bin gelaufen:

history

Dann sehe ich die Nummern der Befehle, z. B .:

  489  cd ..
  490  cd .zshrc
  491  cat .zshrc

Dann laufe ich zum Beispiel:

history -d 489
history -c 

Dann schließe ich das Terminal und öffne es erneut. Es wird weiterhin die Zeile 489 angezeigt, die nur für diese aktuelle Sitzung gelöscht wurde. Wie lösche ich sie dauerhaft aus allen zukünftigen Sitzungen?

Bitte beraten.

5
Anthony Pinto

Es gibt verschiedene Möglichkeiten, um diese Aufgabe zu erfüllen, aber lassen Sie uns etwas klären, bevor Sie fortfahren.

Es gibt eine Datei mit dem Namen: ~/.bash_history, die den Verlauf Ihrer älteren Terminalsitzungen enthält. Wenn Sie Ihr Terminal schließen, wird der Verlauf dort gespeichert.

Gleichzeitig können Sie mit den Befehlen history vorübergehend auf den Verlauf Ihrer alten Sitzungen und der aktuellen Sitzung zugreifen, bis Sie das Terminal schließen, das dann in der Datei ~/.bash_history gespeichert wird.

Wenn Sie also am Ende von ~/.bash_history 5 Zeilen entfernen, wird das Schließen des Terminals dazu führen, dass Ihr aktueller Befehl bei den nächsten Sitzungen verfügbar ist.

Wenn ich also ein wc für .bash_history mache:

wc -l ~/.bash_history

Meistens bekomme ich eine kleinere Anzahl als history | wc -l.

Wenn Sie die letzten 5 Zeilen der Datei entfernen möchten, können Sie diesen Befehl verwenden:

for i in {1..5}; do sed -i '$d' .bash_history; done;

Und wenn Sie den gesamten Verlauf mit Ausnahme der letzten 5 in der aktuellen Sitzung ausgeführten Befehle beibehalten möchten:

history | awk '{ print $2 }' | head -n -5 > .bash_history

Vergiss nicht, auch history -c auszuführen.

4
Ravexina

Sie können das Entfernen aus der Verlaufsdatei mithilfe der Befehlszeile in zwei Schritten erreichen:

Durch Eingabe von history -d <line_number> wird eine bestimmte Zeile aus dem Verlauf im Speicher gelöscht. Wenn Sie history -w eingeben, wird der aktuelle Verlauf im Speicher in die Datei ~/.bash_history geschrieben. Durch die beiden Schritte wird die Zeile dauerhaft aus dem speicherinternen Verlauf und auch aus der Datei .bash_history entfernt.

Ref: StackExchange

6
EODCraft Staff

Ich denke, Sie müssen dies versuchen, es ist sehr einfach und einfach.

  1. So löschen Sie den Verlauf spurlos

    history -d $((HISTCMD-1)) && history -d NO_of_History_you_want_to_delete
    
  2. wenn Sie einen Befehl ausführen möchten, ohne eine Spur zu hinterlassen.

    history -d $((HISTCMD-1)) && type_your_command_here_and_execute
    
5
Kartik Agarwal

Öffnen Sie ~/.bash_history in Ihrem Editor und entfernen Sie die letzten 5 Zeilen.

0
Nick Rodriguez