Linux: Bash-Historie - Kommandos aus der Vergangenheit
Ich arbeite viel auf der Kommandozeile und da dann hauptsächlich
mit der BASH. Leider kommt es immer wieder vor, dass Kommandos
aus meiner BASH-Historie “verschwinden”, was ein ziemlicher Ärgernis
ist. Ich weiß, ich habe Kommando XYZ mal verwendet, finde
es aber nicht in meiner BASH-Historie (mit “Pfeil-hoch”, “Strg-p”
oder “Strg-r”).
Konfigurationsdatei
Grundsätzlich legt man die Eigenschaften der
BASH-Historie für sich selbst in der Datei “~/.bashrc” fest.
Größe der Historie erhöhen
Ein sehr einfacher Grund für das Verschwinden von Einträgen
aus der Historie ist deren Längenbeschränkung. Die erhöhe ich
erstmal auf das Zehnfache:
1234567891011121314
uli@ulicsl:~$ diff -u .bashrc~ .bashrc
--- .bashrc~ 2020-06-06 07:29:04.000000000 +0200+++ .bashrc 2021-02-11 21:45:15.743728201 +0100@@ -16,8 +16,11 @@ shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
-HISTSIZE=1000-HISTFILESIZE=2000+HISTSIZE=10000+HISTFILESIZE=20000 # check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
Mehrere Fenster
Wenn ich mit mehreren Fenstern arbeite, dann
tauchen Kommandos von Fenster-1 nicht in der Historie
von Fenster-2 auf. Für mich bewährt sich diese Trennung
überhaupt nicht. Ich empfinde es als störend, dass
ich mich immer an das Fenster erinnern muß, in
dem ich gewisse Aktionen gemacht habe um diese
zu wiederholen. Ich habe gerne in allen Fenstern
dieselbe Historie:
123456789101112131415
uli@ulicsl:~$ diff -u .bashrc~ .bashrc
--- .bashrc~ 2020-06-06 07:29:04.000000000 +0200+++ .bashrc 2021-02-11 21:45:15.743728201 +0100@@ -16,8 +16,11 @@ shopt -s histappend
# for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=10000
HISTFILESIZE=20000
++# After each command, append to the history file and reread it+PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r" # check the window size after each command and, if necessary,
# update the values of LINES and COLUMNS.
Manchmal hilft es mir, wenn ich den Zeitstempel
in der Historie sehen kann. So kann ich die Historie
auch nach Zeitstempel
durchsuchen. Wenn ich beispielsweise noch grob ahne, dass ich
im Oktober oder November 2020 irgendwelche “interessanten”
Aktionen gemacht habe, dann schaue ich meine Historie in diesem Bereich
an und sehe grob sowas:
Zur Aktivierung muß ich diese Änderungen vornehmen:
1234567891011
$ diff -u ~/.bashrc~ ~/.bashrc
--- /home/uli/.bashrc~ 2021-02-11 21:45:15.000000000 +0100+++ /home/uli/.bashrc 2021-02-12 08:38:09.170487512 +0100@@ -18,6 +18,7 @@ # for setting history length see HISTSIZE and HISTFILESIZE in bash(1)
HISTSIZE=10000
HISTFILESIZE=20000
+HISTTIMEFORMAT="[%F %T] " # After each command, append to the history file and reread it
PROMPT_COMMAND="${PROMPT_COMMAND:+$PROMPT_COMMAND$'\n'}history -a; history -c; history -r"