Ein Linux-Terminal, auf dem Bash ausgeführt wird, verfügt über einen integrierten Verlauf, mit dem Sie nachverfolgen können, was Sie in letzter Zeit getan haben. Um einen Verlauf Ihrer Bash-Sitzung anzuzeigen, verwenden Sie den integrierten Befehl history
:
$ echo "foo"
foo
$ echo "bar"
bar
$ history
1 echo "foo"
2 echo "bar"
3 history
Der history
command ist keine ausführbare Datei in Ihrem Dateisystem, wie die meisten Befehle, sondern eine Funktion von Bash. Sie können dies überprüfen, indem Sie den type
verwenden Befehl:
$ type history
history is a shell builtin
Verlaufskontrolle
Die Obergrenze der Zeilen in Ihrem Shell-Verlauf wird durch HISTSIZE
definiert Variable. Sie können diese Variable in Ihrer .bashrc
setzen Datei. Im Folgenden wird Ihr Verlauf auf 3.000 Zeilen gesetzt, wonach die älteste Zeile entfernt wird, um Platz für den neuesten Befehl zu schaffen, der am Ende der Liste platziert wird:
export HISTSIZE=3000
Es gibt auch andere historische Variablen. Die HISTCONTROL
Variable steuert, welcher Verlauf gespeichert wird. Sie können Bash zwingen, Befehle auszuschließen, die mit einem Leerzeichen beginnen, indem Sie dies in Ihre .bashrc
einfügen Datei:
export HISTCONTROL=$HISTCONTROL:ignorespace
Wenn Sie jetzt einen Befehl eingeben, der mit einem Leerzeichen beginnt, wird dieser Befehl nicht im Verlauf aufgezeichnet:
$ echo "hello"
$ mysql -u bogus -h badpassword123 mydatabase
$ echo "world"
$ history
1 echo "hello"
2 echo "world"
3 history
Du kannst auch doppelte Einträge vermeiden:
export HISTCONTROL=$HISTCONTROL:ignoredups
Wenn Sie jetzt zwei Befehle nacheinander eingeben, erscheint nur einer im Verlauf:
$ ls
$ ls
$ ls
$ history
1 ls
2 history
Wenn Ihnen beide Ignorierungen gefallen, können Sie einfach ignoreboth
verwenden :
export HISTCONTROL=$HISTCONTROL:ignoreboth
Einen Befehl aus dem Verlauf entfernen
Manchmal machen Sie einen Fehler und geben etwas Vertrauliches in Ihre Shell ein, oder vielleicht möchten Sie einfach Ihren Verlauf bereinigen, damit er die Schritte, die Sie unternommen haben, um etwas richtig zum Laufen zu bringen, genauer darstellt. Wenn Sie einen Befehl aus Ihrem Verlauf in Bash löschen möchten, verwenden Sie das -d
Option mit der Zeilennummer des Elements, das Sie entfernen möchten:
$ echo "foo"
foo
$ echo "bar"
bar
$ history | tail
535 echo "foo"
536 echo "bar"
537 history | tail
$ history -d 536
$ history | tail
535 echo "foo"
536 history | tail
537 history -d 536
538 history | tail
Um das Hinzufügen von history
zu beenden Einträge können Sie ein space
einfügen vor dem Befehl, solange Sie ignorespace
haben in Ihrem HISTCONTROL
Umgebungsvariable:
$ history | tail
535 echo "foo"
536 echo "bar"
$ history -d 536
$ history | tail
535 echo "foo"
Sie können Ihren gesamten Sitzungsverlauf mit -c
löschen Möglichkeit:
$ history -c
$ history
$
Geschichtsunterricht
Mehr über Bash
- Bash-Spickzettel
- Eine Einführung in die Programmierung mit Bash
- Eine Anleitung für Systemadministratoren zum Bash-Scripting
- Neueste Bash-Artikel
Geschichte zu manipulieren ist normalerweise weniger gefährlich als es klingt, besonders wenn Sie sie mit einem bestimmten Zweck kuratieren. Wenn Sie beispielsweise ein komplexes Problem dokumentieren, ist es oft am besten, Ihre Befehle in Ihrem Sitzungsverlauf aufzuzeichnen, da Sie sie ausführen und dadurch den Prozess testen, indem Sie sie in Ihren Verlauf einfügen. Dokumentieren ohne Tun führt sehr oft dazu, dass kleine Schritte übersehen oder kleinere Details falsch geschrieben werden.
Verwenden Sie Ihre Geschichtssitzungen nach Bedarf und üben Sie Ihre Macht über die Geschichte mit Bedacht aus. Viel Spaß beim Geschichtshacken!