Wie durchsuche ich den Shell-Befehlsverlauf mit einem Texteditor?

8

Ich weiß, dass Ctrl+ RSie den Befehlsverlauf durchsuchen können, aber es ist ein wenig primitiv. Gibt es eine Möglichkeit, meinen gesamten Befehlsverlauf (nicht nur die aktuelle Terminalsitzung, sondern den gesamten Verlauf) in eine Textdatei zu exportieren? Ich könnte dann einen Texteditor verwenden, um es bequem zu durchsuchen. Oder wenn die Verlaufsdatei bereits vorhanden ist, wo ist sie?

winko
quelle
Ich gehe davon aus, dass Sie den Befehlsverlauf Ihrer Shell gemeint haben und ihn so bearbeitet haben, dass er die Standard-Shell bash verwendet.
Muru

Antworten:

13

Von man bash:

HISTFILE
    The name of the file in which command history is saved.
    The default value  is  ~/.bash_history.
    If unset, the command history is not saved when a shell exits.

Die Variable HISTFILEenthält also den Dateinamen, in dem der Verlauf gespeichert wird.

$ echo "$HISTFILE"
/home/user/.bash_history

Sie können jetzt nach dem Muster suchen:

$ grep "vim" "$HISTFILE"
vim foo.text
vim bar.text
vim file.txt

Wie @Dennis bereits betont hat, können Sie history -aden Befehlsverlauf der laufenden Sitzung an die $HISTFILEDatei anhängen , wenn Sie möchten . Grundsätzlich werden die Befehle automatisch angehängt, sobald Sie eine Sitzung schließen. In history -adiesem Moment wird das Gleiche getan.

Führen Sie help historydas historyProgramm aus , um mehr über das eingebaute System selbst zu erfahren.

heemayl
quelle
1
Beachten Sie, dass die Verlaufsdatei normalerweise keine seit Beginn der aktuellen Bash-Sitzung eingegebenen Zeilen enthält, die durch Ausführen behoben werden können history -a.
Dennis
@ Tennis: Guter Punkt .. hinzugefügt ..
heemayl
4

Versuche dies:

history > output.txt
less output.txt

Dann suchen Sie mit /+searchterm

Der Nachtmensch
quelle
3

Der Bash-Verlauf wird in Ihrem Home-Verzeichnis gespeichert ~/.bash_history.

Grundsätzlich Ctrl+ Rsucht aus dieser Datei.

Sh1d0w
quelle