Die bash besitzt eine Reihe nützlicher Einstellungen:
z.B. kann man mit den Tasten [ctrl]+[r]
in der bash-history suchen. Die history protokolliert in der Regel alle commands, die eingegeben werden und mit enter bestätigt werden. Es gibt jedoch dummerweise wie bei jeder Regel Ausnahmen 😉
In der default-Eintellung z.B. werden keine Zeilen protokolliert die mit einem whitespace beginnen. Diese Einstellung kann jedoch mit der Umgebungsvariable HISTCONTROL bearbeitet werden.
Hier der Eintag in der man page der bash:
HISTCONTROL
A colon-separated list of values controlling how commands are saved on the history list. If the list of values includes ignorespace, lines which begin with a space character are not saved in the history list. A value of ignoredups causes lines matching the previous history entry to not be saved. A value of ignoreboth is shorthand for ignorespace and ignoredups. A value of erasedups causes all previous lines matching the current line to be removed from the history list before that line is saved. Any value not in the above list is ignored. If HISTCONTROL is unset, or does not include a valid value, all lines read by the shell parser are saved on the history list, subject to the value of HISTIGNORE. The second and subsequent lines of a multi-line compound command are not tested, and are added to the history regardless of the value of HISTCONTROL.
HISTCONTROL
Dieser Parameter erwartet einen der folgenden Strings: „ignorespace
„, „ignoredups
“ oder „ignoreboth
„.
Die erste Option speichert alle Zeilen die mit einem space beginnen nicht in der history.
Der Zweite löscht alle doppelten Zeilen und behält immer die Jüngste.
Naja und „ignoreboth
“ steht eben für beide Einstellungen zusammen.
Will man wirklich alles in der history behalten, so ist die die HISTCONTROL=““ zu setzen 😉
Dieser Parameter kann global in z.B. der Datei /etc/bashrc oder /etc/bash/bashrc (je nach Linux Distribution) gesetzt werden, oder Benutzer spezifisch in der Datei ~/.bashrc
Hier kann man z.B. eine der folgenden Zeilen eintragen:
Um sowohl doppelte Eingaben sowie Eingaben die mit einem whitespace beginnen nicht zu protokollieren:
export HISTCONTROL=ignoreboth |
Um Eingaben die mit einem whitespace beginnen nicht zu protokollieren:
export HISTCONTROL=ignorespace |
Um doppelte Eingaben nicht zu protokollieren:
export HISTCONTROL=ignoredups |
Um alles zu protokollieren:
export HISTCONTROL="" |
Update: 16.07.2013:
Um alles zu protokolieren, sowie bei der Ausgabe über den folgenden Befehl auch die Zeiten zu sehen, wann der Befehl ausgeführt wurde, kann man folgendes setzen:
export HISTFILESIZE= HISTSIZE= export HISTTIMEFORMAT="%F %T " |
Vielen Dank!
HISTCONTROL=ignoredups – das ist genau das, was ich gesucht habe