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.