Einführung
Der history
command in Linux ist ein integriertes Shell-Tool, das eine Liste der in der Terminalsitzung verwendeten Befehle anzeigt. history
ermöglicht Benutzern, jeden aufgelisteten Befehl wiederzuverwenden, ohne ihn erneut eingeben zu müssen.
In diesem Tutorial zeigen wir Ihnen, wie der history
Befehl funktioniert und verschiedene Möglichkeiten, ihn zu verwenden.
Voraussetzungen
- Ein System, auf dem Linux ausgeführt wird.
- Ein Konto mit sudo-Berechtigungen.
- Zugriff auf das Terminalfenster.
So verwenden Sie den Linux-Verlaufsbefehl
Verwenden des history
Befehl ohne Optionen zeigt die Liste der Befehle an, die seit dem Start der Terminalsitzung verwendet wurden:
history
Um die Befehlsverlaufsliste mit einer begrenzten Anzahl von Einträgen anzuzeigen, hängen Sie diese Zahl an den history
an Befehl. Um beispielsweise nur die letzten fünf Einträge anzuzeigen, verwenden Sie:
history 5
Sobald Sie das Terminal schließen, speichert die Bash-Shell neue Befehlsverlaufseinträge in .bash_history Datei.
Datum und Zeitstempel verwenden
Die .bashrc Datei speichert die Bash-Shell-Einstellungen. Durch Ändern dieser Datei können Sie das Ausgabeformat des history
ändern Befehl.
Öffnen Sie die .bashrc Datei mit einem Texteditor wie Nano:
sudo nano .bashrc
Um das Ausgabeformat so zu ändern, dass es Datums- und Zeitstempel enthält, fügen Sie die folgende Zeile zu .bashrc hinzu Datei:
export HISTTIMEFORMAT="%c "
Verwendung verschiedener Argumente nach HISTTIMEFORMAT
können Sie den Detaillierungsgrad des Zeitstempels anpassen:
%d
:Tag%m
:Monat%y
:Jahr%H
:Stunde%M
:Minuten%S
:Sekunden%F
:Vollständiges Datum (J-M-T-Format)%T
:Zeit (H:M:S-Format)%c
:Vollständiger Datums- und Zeitstempel (Tag-T-M-J H:M:S-Format)
Speichern Sie die Änderungen in der .bashrc Datei, starten Sie das Terminal neu und führen Sie den history
aus Befehl zur Bestätigung des neuen Ausgabeformats:
history
Größe des Verlaufspuffers anzeigen
Die .bashrc Datei enthält zwei Einträge, die die Größe des Verlaufspuffers steuern:
HISTSIZE
:Die maximale Anzahl von Einträgen für die Verlaufsliste.HISTFILESIZE
:Die maximale Anzahl von Einträgen in der .bash_history Datei.
Bearbeiten der HISTSIZE
und HISTFILESIZE
values ändert, wie die Bash-Shell den Befehlsverlauf anzeigt und speichert.
Ändern Sie beispielsweise HISTSIZE
Wert auf 10
macht die history
Befehlsliste zeigt maximal 10 neuste Einträge.
Speichern der Änderungen in der .bashrc Datei, starten Sie das Terminal neu und führen Sie den history
aus Befehl bestätigt das neue Ausgabeformat:
history
Einen Befehl wiederholen
Ausführen des history
Mit dem Befehl können Sie jeden der Befehle in der Liste wiederverwenden. Um beispielsweise den ersten Befehl auszuführen (sudo apt update
) verwenden Sie erneut:
!1
Bindestrich hinzufügen (- ) vor der Befehlsnummer beginnt die Zählung vom Ende der Liste. Um beispielsweise den zehntletzten Befehl wiederzuverwenden (history 5
), verwenden Sie:
!-10
Verwenden Sie doppelte Ausrufezeichen, um den letzten Befehl zu wiederholen:
!!
Suchen Sie einen Befehl nach Zeichenfolge
Das Hinzufügen einer Zeichenfolge nach dem Ausrufezeichen führt den letzten Befehl aus, der mit dieser Zeichenfolge beginnt. Zum Beispiel, um den letzten Befehl wiederzuverwenden, der mit sudo
beginnt , verwenden Sie:
!sudo
Die Verwendung dieser Methode kann Probleme verursachen, wenn die Shell einen unerwarteten Befehl ausführt, insbesondere wenn nach einem Befehl gesucht wird, der mit sudo
beginnt . Fügen Sie sicherheitshalber den :p
hinzu Argument zeigt den Befehl an, ohne ihn auszuführen, sodass Sie den Befehl überprüfen und entscheiden können, ob Sie ihn ausführen möchten.
!sudo:p
Um nach einem Befehl zu suchen, der eine Zeichenfolge enthält, aber möglicherweise nicht damit beginnt, fügen Sie ein Fragezeichen neben dem Ausrufezeichen ein. Zum Beispiel, um den letzten Befehl wiederzuverwenden, der echo
enthält :
!?echo
Im obigen Beispiel verwendet die Shell den letzten Befehl erneut, der echo
enthält Zeichenfolge, obwohl der Befehl mit sudo
beginnt .
Listen Sie die übereinstimmenden Befehle auf
Kombinieren von history
und grep
ermöglicht es Ihnen, eine Liste von Befehlen anzuzeigen, die eine Zeichenfolge enthalten. Zum Beispiel, um alle Befehle aufzulisten, die ufw
enthalten , verwenden Sie:
history | grep ufw
Ausgeführten Befehl ändern
Verwenden Sie die folgende Syntax, um den zuletzt ausgeführten Befehl zu ändern:
^[old string]^[new string]^
Zum Beispiel ufw
Befehl zum Aktivieren von Port 20 zeigt, dass der Port bereits aktiviert ist:
sudo ufw allow 20/tcp
Verwenden Sie die obige Syntax, um die Portnummer von 20 auf 22 zu ändern:
^20^22^
Aufzeichnen von Befehlen im Verlauf verhindern
Um das Aufzeichnen von Befehlen in der Verlaufsliste zu verhindern, deaktivieren Sie die Aufzeichnung vorübergehend mit:
set +o history
Um die Aufzeichnung wieder zu aktivieren, verwenden Sie:
set -o history
Verlauf löschen
Verwenden Sie das -d
Option mit dem history
Befehl, um einen Befehl aus der Verlaufsliste zu löschen. Löschen Sie zum Beispiel Befehlsnummer 87 mit:
history -d 87
Verwenden Sie das -c
Option zum Löschen der gesamten Verlaufsliste:
history -c
Aktualisieren Sie die Verlaufsdatei
Die Bash-Shell speichert alle Aktualisierungen in der Befehlsverlaufsliste, wenn Sie die Terminalsitzung beenden. Der history
Mit dem Befehl können Sie auch Änderungen speichern, während Sie sich in der Terminalsitzung befinden.
Mit -a
Mit dieser Option können Sie die Befehlsverlaufseinträge dieser Sitzung an .bash_history anhängen Datei:
history -a
Eine andere Methode ist die Verwendung von -w
Option zum Speichern der gesamten Verlaufsliste in .bash_history Datei:
history -w