Die bash-Shell ist inzwischen die meist genutzte Consolen-Shell unter Linux/Unix. Das geht schon soweit, daß Start-Scripte direkt für die bash geschrieben sind, oder gar der Befehl /bin/sh nur noch ein Link auf /bin/bash ist.
bash-History
Die History der bash
kennt wahrscheinlich bereits jeder: Mit den Cursor-Up- und Cursor-Down-Tasten kann man sich durch die letzten eingegebenen Befehle hangeln.
Aber kann man auch einen speziellen Befehl suchen? Ja, mit [Ctrl]+[R]
. Einmal gedrückt befindet man sich im Suchmodus. D.h. die History wird nach den Zeichen durchsucht, die man ab jetzt eingibt. Abschließen kann man die Suche mit [Return]
oder den Cursor-Tasten.
Wann wird gespeichert?
Immer wenn man eine bash
verläßt wird die Datei ~/.bash_history
geschrieben. In der Regel stehen die Befehle in der Reihenfolge drin, wie sie genutzt worden sind. Also von oben nach unten. Es wird aber nicht immer alles gespeichert. (Siehe nächsten Absatz.)
Achtung vorallem bei intensiver Benutzung von screen
ggf. werden einige Befehle dabei gar nicht gespeichert.
Einstellungen der History
Im wesentlichen sind es zwei Einstellungen die man in der zentralen /etc/bashrc
(kann auch anders heißen) oder der User eigenen ~/.bashrc
verändern kann:
HISTCONTROL
:
Dieser Parameter erwartet einen der folgenden Strings: "ignorespace
", "ignoredups
" oder "ignoreboth
".
Ersterer speicher 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.
HISTSIZE
:
Hier wird die Anzahl Zeilen angegeben, die sich die bash
-History merken soll.
Beliebte Werte vieler Linux-Admin's:
export HISTCONTROL=ignoreboth
export HISTSIZE=500