Die Bash merkt sich jeden eingegebenen Befehl im Befehlsverlauf (History). Der history-Befehl zeigt diesen Verlauf an und macht es leicht, frühere Befehle erneut auszuführen, zu durchsuchen oder zu bearbeiten.
Verlauf anzeigen und erneut ausführen
history # zeigt die letzten Befehle mit Nummern
history 20 # zeigt nur die letzten 20 Einträge
!! # führt den letzten Befehl erneut aus
!42 # führt Befehl Nummer 42 erneut aus
!grep # führt den letzten Befehl aus, der mit grep begann
sudo !! # führt den letzten Befehl mit sudo aus
Im Verlauf suchen und bearbeiten
- Strg+R — interaktive Rückwärtssuche: tippen, Enter zum Ausführen
- Strg+P / Strg+N — vorheriger/nächster Eintrag (alternativ Pfeiltasten)
- fc — öffnet den letzten Befehl im Editor (Standard: nano oder vi)
- fc -l — listet Verlauf wie history, aber ohne Nummern-Formatierung
- history -c — leert den Verlauf der aktuellen Session
- history -d 42 — löscht Eintrag Nummer 42
Verlauf dauerhaft speichern
Die wichtigsten Variablen steuern, wie viel gemerkt wird:
echo $HISTSIZE # maximale Befehle pro Session (Standard: 1000)
echo $HISTFILESIZE # maximale Zeilen in der Datei ~/.bash_history
echo $HISTFILE # Pfad der Verlaufsdatei
Die Datei ~/.bash_history wird beim Beenden der Shell geschrieben. Wer den Verlauf sofort und ohne Duplikate speichern will, setzt in ~/.bashrc:
shopt -s histappend
HISTCONTROL=ignoreboth
PROMPT_COMMAND="history -a"
Praxis-Tipps
- history | grep ssh kombiniert den Verlauf mit der grep-Suche — so findet man vergangene Kommandos schnell wieder.
- Vor !! oder !grep erst history prüfen: falsche Nummern führen den falschen Befehl aus.
- Der Verlauf enthält sensible Daten — bei geteilten Konten history -c verwenden und HISTFILE leeren.
Verwandte Grundlagen: Bash-Befehle, sed-Befehle, Variable, env-Befehle, jobs-Befehle.