Vollständige Anleitung zum Linux-Befehl history

Linux 命令大全Linux-Befehlsenzyklopädie

history ist ein äußerst nützlicher integrierter Befehl in Linux-Systemen. Er zeichnet den gesamten Befehlsverlauf auf, den Benutzer im Terminal ausgeführt haben. Diese Funktion ist besonders wertvoll in den folgenden Szenarien:

  1. Vorgänge nachverfolgen: Zuvor ausgeführte Befehle anzeigen
  2. Schnelle Wiederverwendung: Lange Befehle müssen nicht erneut eingegeben werden
  3. Fehlerbehebung: Betriebsaufzeichnungen des Systems prüfen
  4. Effizienzsteigerung: Wiederkehrende Aufgaben mithilfe historischer Befehle schnell erledigen

Wenn du Befehle im Terminal eingibst, speichert Bash sie im Speicher und schreibt sie in~/.bash_historydie Datei (unter Standardkonfiguration).


Grundlegende Syntax und Verwendung

Die grundlegende Syntax des history-Befehls ist sehr einfach:

history [选项] [参数]

Häufige Formen

1. Die vollständige Historie anzeigen:

history

2. Die letzten N Einträge anzeigen:

history 10  # 显示最近10条命令

3. Die gesamte Historie löschen:

history -c

4. Einen bestimmten Verlaufseintrag löschen (z. B. Eintrag 1010 löschen):

history -d 1010

Ausführliche Erklärung gängiger Optionen und Parameter

Der Befehl history unterstützt mehrere nützliche Optionen:

Option Beschreibung Beispiel
-c Den gesamten Verlauf löschen history -c
-d Den Verlaufseintrag an der angegebenen Position löschen history -d 1005
-a Den Verlauf sofort aus dem Speicher in die Verlaufsdatei schreiben history -a
-n Ungelesene Verlaufseinträge aus der Verlaufsdatei lesen history -n
-r Den Inhalt der Verlaufsdatei in die aktuelle Sitzung einlesen history -r
-w Den aktuellen Verlauf in die Verlaufsdatei schreiben history -w

Praktische Tipps und fortgeschrittene Nutzung

1. Historische Befehle schnell ausführen

Beispiel

!n        # Den n-ten Befehl im Verlauf ausführen
!!        # Führe den vorherigen Befehl aus
!string   # Führe den zuletzt ausgeführten Befehl aus, der mit string beginnt

Beispiel:

Beispiel

!1024     # Führe den Befehl mit der Nummer 1024 in der Historie aus
!!        # Führe den vorherigen Befehl erneut aus
!vim      # Führe den zuletzt ausgeführten Befehl aus, der mit vim beginnt

2. Historische Befehle durchsuchen

VerwendungCtrl+RDu kannst Befehle im Verlauf rückwärts durchsuchen; gib ein Teilwort ein, um den passenden Befehl zu finden.

3. Ersetzung historischer Befehle

Beispiel

^old^new  # Ersetze old durch new im vorherigen Befehl und führe ihn aus

Beispiel:

Beispiel

$ cat file1.txt
$ ^file1^file2  # Entspricht der Ausführung von cat file2.txt

4. Befehlszeitstempel anzeigen

In~/.bashrcFügen Sie die folgende Konfiguration hinzu, um die Ausführungszeit von Befehlen anzuzeigen:

Beispiel

export HISTTIMEFORMAT="%F %T "

Führen Sie dann aus:

Beispiel

source ~/.bashrc

Danachhistoryzeigt der Befehl die Ausführungszeit jedes Befehls an.


Konfiguration von Umgebungsvariablen

Das Verhalten des history-Befehls kann über Umgebungsvariablen angepasst werden:

Variable Beschreibung Empfohlener Wert
HISTSIZE Anzahl der im Speicher gehaltenen History-Befehle 5000
HISTFILESIZE Anzahl der in der History-Datei gehaltenen Befehle 10000
HISTCONTROL Steuert, wie die History aufgezeichnet wird ignoredups:erasedups
HISTIGNORE Gibt Befehle an, die nicht aufgezeichnet werden sollen "ls:cd:pwd:exit"

Konfigurationsbeispiel (hinzufügen zu~/.bashrc):

Beispiel

export HISTSIZE=5000
export HISTFILESIZE=10000
export HISTCONTROL=ignoredups:erasedups
export HISTIGNORE="ls:cd:pwd:exit"
export HISTTIMEFORMAT="%F %T "

Praktische Anwendungsszenarien

Szenario 1: Vergessene Befehle wiederherstellen

Beispiel

history | grep "apt install"

Szenario 2: Die am häufigsten verwendeten Befehle zählen

Beispiel

history | awk '{CMD[$2]++;count++;} END {for (a in CMD)print CMD[a] " " CMD[a]/count*100 "% " a;}' | grep -v "./" | column -c3 -s " " -t | sort -nr | nl | head -n10

Szenario 3: Verlaufsdatensätze sichern

Beispiel

history -a  # Stellen Sie sicher, dass die neuesten Befehle in die Datei geschrieben wurden
cp ~/.bash_history ~/command_history_backup_$(date +%F).txt

Hinweise

  1. Datenschutz und Sicherheit: Historische Aufzeichnungen können sensible Informationen enthalten (z. B. Passwörter); schützen Sie sie entsprechend.
  2. Problem mit mehreren Terminals: Verschiedene Terminal-Sitzungen teilen den Verlauf standardmäßig nicht in Echtzeit.
  3. Verlust des Verlaufs: Ein abnormaler Abbruch kann dazu führen, dass Befehle nicht gespeichert werden.
  4. Umgang mit großen Dateien: Übermäßig große Verlaufsdateien können die Leistung beeinträchtigen.

Zusammenfassung und Übungen

  1. Überprüfen Sie Ihren Befehlsverlauf und finden Sie die 5 zuletzt verwendeten git-Befehle.

    history | grep git | tail -5
  2. Konfigurieren Sie Ihre bash-Umgebung so, dass Verlaufseinträge Zeitstempel enthalten und doppelte Befehle ignoriert werden.

  3. Erstellen Sie einen Alias, um den aktuellen Verlauf schnell in einem angegebenen Verzeichnis zu sichern.

    alias backup_history='cp ~/.bash_history ~/history_backups/history_$(date +%Y%m%d_%H%M%S).txt'
  4. Versuchen Sie,Ctrl+Rnach einem komplexen Befehl zu suchen, den Sie zuvor verwendet haben.

Wenn Sie den Befehl history beherrschen, können Sie Ihre Effizienz im Linux-Terminal erheblich verbessern, redundante Eingaben reduzieren und Ihren Verlauf der Kommandozeilenoperationen besser verwalten.

Linux 命令大全Linux-Befehlsenzyklopädie

Andere Erweiterungen