Der Befehl history in Linux (Bash History)
Der Befehl history in Linux ist ein leistungsfähiges Werkzeug für Benutzer, die mit der Bash-Shell arbeiten. Er speichert bereits ausgeführte Befehle und ermöglicht es Benutzern, Befehle anzuzeigen, abzurufen und sogar erneut auszuführen, ohne sie erneut eingeben zu müssen. Dies kann die Produktivität erheblich steigern, da es Zeit spart und die Gefahr von Fehlern bei der erneuten Eingabe langer Befehle verringert.
Was ist der Bash-Verlauf?
Die Bash speichert, wie viele andere Shells auch, die von Ihnen eingegebenen Befehle in einer Verlaufsdatei. In den meisten Linux-Distributionen wird dieser Verlauf in einer Datei namens .bash_history im Home-Verzeichnis jedes Benutzers (~/.bash_history) gespeichert. Standardmäßig wird jeder in der Shell eingegebene Befehl an diese Datei angehängt, wenn die Sitzung beendet wird, so dass Benutzer Befehle aus früheren Sitzungen erneut aufrufen können.
Grundlegende Verwendung des history-Befehls
Der Befehl history ist einfach zu verwenden und bietet verschiedene Möglichkeiten, die Befehlshistorie anzuzeigen und mit ihr zu interagieren. Hier sind einige der häufigsten Verwendungen:
- Befehlshistorie anzeigen:
Wenn Sie den Befehl history ohne Argumente ausführen, wird eine Liste der zuletzt eingegebenen Befehle mit einer Nummer neben jedem Befehl angezeigt.history
Dies zeigt die letzten n Befehle an, wobei n typischerweise etwa 500 oder 1000 ist, je nach Konfiguration Ihres Systems.
- Geben Sie die Anzahl der Befehle an:
Sie können die Anzahl der angezeigten Befehle begrenzen, indem Sie eine Zahl angeben. Um beispielsweise die letzten 10 Befehle anzuzeigen:history 10
Aufrufen von Befehlen aus der Historie
Mit dem Befehl history können Sie auch zuvor ausgeführte Befehle einfach wieder aufrufen und wiederverwenden:
- Verwenden Sie die ! (Ausrufezeichen) Notation:
Damit können Sie Befehle direkt aus der Historie erneut ausführen:- !! – Führt den zuletzt ausgeführten Befehl erneut aus.
!!
- !n – Führt den Befehl an Position n in der History-Liste aus.
!42
Dies führt den Befehl an Position 42 in der Historie erneut aus.
- !string – Findet den letzten Befehl, der mit string beginnt und führt ihn aus.
!git
Dies würde den letzten Befehl ausführen, der mit git beginnt.
- !! – Führt den zuletzt ausgeführten Befehl erneut aus.
- Verwendung der Pfeiltasten:
Mit den Pfeiltasten nach oben und unten können Sie direkt im Terminal durch die vorherigen Befehle blättern. Dies ist besonders nützlich, um schnell die letzten Befehle zu finden.
Bearbeiten und Ändern des Verlaufs
- Bestimmte Einträge entfernen:
Sie können einen bestimmten Befehl aus der Historie löschen, indem Sie history -d gefolgt von der Zeilennummer verwenden:history -d 42
Dies würde den Befehl in Zeile 42 in der Verlaufsliste löschen.
- Gesamte Historie löschen:
Um alle Befehle aus der Verlaufsdatei zu löschen, verwenden Sie:verlauf -c
Dies löscht die History für die aktuelle Sitzung. Um auch die gespeicherte History in ~/.bash_history zu löschen, überschreiben Sie die Datei:
history -c && > ~/.bash_history
Konfigurieren der Bash-History
Das Verhalten von history kann durch Umgebungsvariablen und Konfigurationseinstellungen in den Dateien ~/.bashrc oder ~/.bash_profile angepasst werden:
- HISTSIZE:
Diese Variable steuert, wie viele Befehle während einer Sitzung im Speicher gehalten werden. Zum Beispiel, um 1000 Befehle zu speichern:export HISTSIZE=1000
- HISTFILESIZE:
Diese Variable bestimmt die Anzahl der Zeilen (Befehle), die in der Datei ~/.bash_history gespeichert werden. Ein Beispiel:export HISTFILESIZE=2000
Dies bedeutet, dass 2000 Befehle in der History-Datei gespeichert werden, auch wenn Sie sich abmelden.
- HISTCONTROL:
Diese Variable bestimmt, wie die Befehle gespeichert werden. Übliche Optionen sind:- ignoredups – Verhindert, dass doppelte Befehle zur History hinzugefügt werden.
- ignorespace – Befehle, die mit einem Leerzeichen beginnen, werden nicht in die Historie aufgenommen.
- ignoreboth – Kombiniert ignoredups und ignorespace.
Beispiel für die Einstellung von HISTCONTROL zum Ignorieren von Duplikaten:
export HISTCONTROL=ignoredups
- HISTTIMEFORMAT:
Um einen Zeitstempel in jeden Historieneintrag einzufügen, setzen Sie HISTTIMEFORMAT:export HISTTIMEFORMAT="%F %T "
Damit wird jedem Historieneintrag das Datum (%F) und die Uhrzeit (%T) vorangestellt.
Durchsuchen der Historie
- Rückwärtssuche mit Strg r:
Eine der effizientesten Möglichkeiten, nach einem Befehl in Ihrem Verlauf zu suchen, ist die Verwendung von Strg r. Beginnen Sie mit der Eingabe eines Teils des Befehls, und die Bash findet während der Eingabe passende Befehle. Durch erneutes Drücken von Strg r können Sie die vorherigen Treffer durchgehen. - Grep mit Verlauf:
Sie können auch grep verwenden, um die Ausgabe von history zu durchsuchen:history | grep git
Damit werden alle Befehle angezeigt, die das Wort git enthalten.
Fazit
Der Befehl history ist ein grundlegender Bestandteil der Arbeit mit der Bash-Shell, da er eine Möglichkeit bietet, frühere Befehle zu verfolgen und Arbeitsabläufe zu rationalisieren. Mit seiner Fähigkeit, den Befehlsverlauf aufzurufen, zu durchsuchen und anzupassen, trägt er dazu bei, Befehlszeilenoperationen effizienter und benutzerfreundlicher zu gestalten. Durch die Beherrschung des Verlaufs und seiner zugehörigen Funktionen können Benutzer ihre Arbeit in Linux-Umgebungen erheblich beschleunigen.