Android

Befehl "History" unter Linux (Bash-History)

Linux Mint/Ubuntu Tutorial: Terminal für Anfänger [Neu]

Linux Mint/Ubuntu Tutorial: Terminal für Anfänger [Neu]

Inhaltsverzeichnis:

Anonim

Im Folgenden wird der Befehl history , mit dem Sie eine Liste der zuvor ausgeführten Befehle anzeigen, die Liste durchsuchen und die Verlaufsdatei bearbeiten können.

Verwenden des Befehls " history und der history

history ist eine eingebaute Shell, und ihr Verhalten kann sich von Shell zu Shell geringfügig unterscheiden. Wir werden die in Bash eingebaute Version der history .

In seiner einfachsten Form zeigt der Befehl history beim Aufrufen ohne Option oder Argument die gesamte Verlaufsliste mit Zeilennummern an.

history

… 467 git push 468 tail -f var/logs/error 469 nano +22, 5 functions.sh 470 source project-env/bin/activate 471 history

Wenn Sie !n eingeben, wird der n-te Befehl aus der Verlaufsliste ausgeführt, und !-n der Befehl wird in n Zeilen zurückgesetzt. Im folgenden Beispiel führen wir den Befehl in Zeile 467 :

!467

Eine andere Möglichkeit, einen Befehl auszuführen, ist die Verwendung der !word Erweiterung. word bezieht sich auf den letzten Befehl, der mit 'wort' beginnt.

In der Regel werden im history viele Ausgabezeilen angezeigt, die nicht auf den Bildschirm passen. Um die Ausgabe seitenweise anzuzeigen, leiten Sie sie wie folgt an ein Pager-Programm more :

history | less

Übergeben Sie die Zahl als Argument an den Befehl, um die letzten n Zeilen anzuzeigen. Um beispielsweise nur die letzten fünf Zeilen der Verlaufsliste anzuzeigen, geben Sie Folgendes ein:

history -5

Verwenden Sie die up und Abwärtspfeiltasten, um durch die Einträge in der Liste zu navigieren. Wenn der gesuchte Befehl angezeigt wird, drücken Sie die Enter , um ihn auszuführen.

Typ !! So führen Sie den vorherigen Befehl aus:

!!

Dies ist besonders nützlich, wenn Sie vergessen haben, einen Befehl mit sudo zu verknüpfen, und statt den Befehl erneut einzugeben, können Sie Folgendes eingeben:

sudo !!

!-1 ist dasselbe wie !! und führt den letzten Befehl aus der Verlaufsliste aus !-2 Sekunden vor dem letzten usw.

^word1^word2^ Erweiterung ^word1^word2^ können Sie den letzten Befehl erneut ausführen und "word1" durch "word2" ersetzen. Wenn Sie versehentlich sduo command anstelle des sudo command eingegeben sduo command , können Sie den Befehl mit folgendem Wort wiederholen:

^sduo^sudo^

Verwenden Sie den Befehl grep , um die Ausgabe zu filtern. Um beispielsweise alle Befehle einschließlich "nano" anzuzeigen, würden Sie Folgendes ausführen:

history | grep nano

302 sudo nano /etc/resolv.conf 356 nano setup.py 413 sudo nano /etc/hosts 469 nano +22, 5 functions.sh

Wenn Sie nano setup.py Befehl nano setup.py erneut ausführen möchten, geben Sie einfach nano setup.py :

!356

Eine andere Möglichkeit zum Durchsuchen des Befehlsverlaufs ist das Drücken von Ctrl-R . Die Eingabeaufforderung ändert sich wie folgt und Sie können nach einem zuvor ausgeführten Befehl suchen.

(reverse-i-search)`':

Die Shell zeigt eine übereinstimmende Linie an. Um zum nächsten passenden Vorschlag zu gelangen, drücken Sie erneut Ctrl-R .

Weitere Informationen zu Verlaufserweiterungen, Modifizierern und Bezeichnern finden Sie im Bash-Handbuch.

Verlaufsliste speichern

Standardmäßig liest Bash beim Starten einer neuen Sitzung die Verlaufsliste aus der Datei .bash_history . Die Liste der Befehle, die in der aktuellen Sitzung ausgeführt werden, wird gespeichert und in der Datei gespeichert, wenn die Sitzung geschlossen wird.

Mit der Option -a können Sie die aktuelle Sitzungsverlaufsliste in der Datei .bash_history speichern:

history -a

Die Option -w schreibt die vollständige Verlaufsliste in die Verlaufsdatei.

history -w

Verlauf löschen

Mit dem Befehl history können Sie die gesamte Verlaufsliste löschen oder bestimmte Teile entfernen.

Verwenden Sie zum Löschen der Verlaufsliste die Option -c :

history -c

Verwenden Sie die Option -d um eine bestimmte Linie oder Linien zwischen einer Start- und einer Endposition aus der Verlaufsliste zu löschen.

Um beispielsweise die Zeilen zwischen 365 und 375 (einschließlich dieser Zeilen) zu entfernen, geben Sie Folgendes ein:

history -d 365 375

Wenn eine negative Ganzzahl verwendet wird, werden die Zeilen ab dem Ende der Verlaufsliste zurückgezählt.

Die obigen Befehle löschen die Verlaufsliste, die sich im Speicher befindet, aber keine Einträge aus der Datei .bash_history auf der Festplatte entfernt. Um die Datei zu löschen, müssen Sie die Verlaufsliste in die Datei schreiben:

history -c history -w

Verlaufsverhalten ändern

Das Verhalten des Bash-Verlaufs kann mithilfe verschiedener Umgebungsvariablen definiert werden. ~/.bashrc beim Ändern des Verlaufsverhaltens die Variablen in ~/.bashrc oder in einer anderen Konfigurationsdatei fest, die beim ~/.bashrc des Benutzers geladen wird.

Standardmäßig behält Bash 500 Zeilen in der Befehlsverlaufsliste. Mit der Variablen HISTSIZE können Sie diesen Wert ändern. .bashrc Ihrer .bashrc Datei die folgende Zeile hinzu, um sie auf 10000 .bashrc :

HISTSIZE=10000

Die Variable HISTCONTROL akzeptiert eine durch Doppelpunkte getrennte Liste von Werten, die definieren, wie die Befehle in der Verlaufsliste gespeichert werden:

  • ignorespace - Befehle, die mit Leerzeichen beginnen, werden nicht in der Verlaufsliste gespeichert. ignoredups - doppelte Befehle werden nicht gespeichert. ignoreboth - ist eine Abkürzung, die sowohl ignorespace als auch ignoredups .

HISTCONTROL=ignoreboth

Wenn die Variable HISTTIMEFORMAT ist, stellt Bash dem Befehl in jeder Zeile einen Ausführungszeitstempel voran.

Wenn Sie beispielsweise Folgendes festlegen:

HISTTIMEFORMAT="%F %T: "

Der Verlauf wird im folgenden Format angezeigt:

413 2019-10-27 21:13:07: sudo nano /etc/hosts

Fazit

Der history zeigt eine Liste der zuvor ausgeführten Befehle an. Sie können beispielsweise den Verlauf verwenden, um einen langen Befehl anzuzeigen, den Sie zuvor verwendet haben und an den Sie sich nicht erinnern können.

Geschichtsterminal