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