Einer der am häufigsten verwendeten Befehle in der UNIX-Welt ist der History-Befehl. Jede Variante von UNIX hat den Befehl history. Die Bash-Shell speichert einen Verlauf der eingegebenen Befehle, der zum Wiederholen von Befehlen mithilfe des Befehls history verwendet werden kann. Standardmäßig werden die vorherigen 1000 angezeigt Befehle, die verwendet wurden.
Hier ist eine Beispielausgabe des Befehlsverlaufs:
# history 1 uname -a 2 clear 3 ssh [email protected] 4 exit 5 ls 6 clear 7 echo "Hello" ........
Der Bash-Verlaufsmechanismus unterstützt eine Vielzahl fortgeschrittener Methoden zum Abrufen von Befehlen aus der Verlaufsliste. Im Folgenden finden Sie einige Möglichkeiten, den Bash-Verlaufsbefehl zu verwenden:
1. Auflistung der letzten n verwendeten Befehle
Standardmäßig zeigt der Verlaufsbefehl die letzten 1000 verwendeten Befehle an. Wenn Sie nur die letzten paar Befehle auflisten möchten, die vom Benutzer ausgelöst wurden, verwenden Sie „Verlauf n“. Zum Beispiel, um die letzten 5 abgefeuerten Befehle anzuzeigen:
# history 5 504 uname -a 505 who am i 506 date 507 echo "Hi" 508 history 5
2. Letzten Befehl wiederholen
Um den zuletzt ausgeführten Befehl zu wiederholen:
# echo "I am history" I am history # !! echo "I am history" I am history
3. Wiederholen Sie den letzten Befehl beginnend mit einem Zeichen
!char =wiederholt den letzten Befehl, der mit char begann. Zum Beispiel:
# !uname uname -a Linux geeklab 2.6.32-504.el6.x86_64 #1 SMP Tue Sep 16 01:56:35 EDT 2014 x86_64 x86_64 x86_64 GNU/Linux
4. Letzten Befehl mit seiner Nummer wiederholen
!num =wiederholt einen Befehl anhand seiner Nummer in der Verlaufsausgabe. Zum Beispiel:
# !1010 ls -lrth total 197M -rw-r--r-- 1 root root 512K May 25 2015 file1 drwxr-xr-x 2 root root 4.0K Jun 1 2016 dir1
5. Letzten Befehl wiederholen, der ein Zeichen enthält
!?command =wiederholt den letzten Befehl, der (im Gegensatz zu einem mit [!char] gestarteten) Befehl enthält. Beispiel:
# echo "I am legend" I am legend # !?legend echo "I am legend" I am legend
6. Wiederholen Sie den n-ten letzten Befehl
!-n =wiederholt einen eingegebenen Befehl n Befehle zurück
# !-3 uname -a Linux VMAX3Linux 2.6.32-358.el6.x86_64 #1 SMP Tue Jan 29 11:47:41 EST 2013 x86_64 x86_64 x86_64 GNU/Linux
7. Suche nach einem Befehl im Verlauf und dessen Ausführung
Strg-r =Suche nach einem Befehl im Befehlsverlauf und führe ihn aus, sobald du eine Übereinstimmung findest.
# (reverse-i-search)`uname': uname -aSolaris :Datum und Zeitstempel in den Bash-Shell-Befehlsverlauf einschließen
CentOS / RHEL :Datum und Uhrzeit des ausgeführten Befehls in der Verlaufsbefehlsausgabe abrufen
CentOS / RHEL :So deaktivieren Sie den BASH-Shell-Verlauf