GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Verlaufsbefehl in Linux (Bash-Verlauf)

Wenn Sie viel Zeit auf der Befehlszeile verbringen, könnte das Anzeigen des Verlaufs der zuvor ausgeführten Befehle eine nützliche Funktion sein, die Ihre tägliche Arbeit erleichtern und Ihre Produktivität steigern kann.

In diesem Artikel sprechen wir über die history Befehl, mit dem Sie eine Liste zuvor ausgeführter Befehle anzeigen, die Liste durchsuchen und die Verlaufsdatei bearbeiten können.

Verwendung des history Befehls- und Verlaufserweiterungen #

history ist eine eingebaute Shell, und ihr Verhalten kann sich von Shell zu Shell leicht unterscheiden. Wir werden die in Bash integrierte Version von history behandeln .

In seiner einfachsten Form, wenn es ohne Option oder Argument aufgerufen wird, der history Befehl zeigt 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

Geben Sie !n ein führt den n-ten Befehl aus der Verlaufsliste aus, und !-n der Befehl n Zeilen zurück. Im folgenden Beispiel führen wir den Befehl in Zeile 467 aus :

!467

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

Typischerweise history zeigt viele Ausgabezeilen an, die nicht auf den Bildschirm passen. Um die Ausgabe seitenweise anzuzeigen, leiten Sie sie an ein Pager-Programm wie more weiter oder less Befehl:

history | less

Anzeige der letzten n übergeben Sie die Zahl als Argument an den Befehl. Um beispielsweise nur die letzten fünf Zeilen der Verlaufsliste anzuzeigen, würden Sie Folgendes eingeben:

history -5

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

Geben Sie !! ein um den vorherigen Befehl auszuführen:

!!

Dies ist besonders nützlich, wenn Sie vergessen, einen Befehl mit sudo auszuführen , und anstatt 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 vorletzte und so weiter.

^word1^word2^ Mit der Erweiterung können Sie den letzten Befehl erneut ausführen und dabei „Wort1“ durch „Wort2“ ersetzen. Wenn Sie versehentlich sduo command eingegeben haben statt sudo command Sie können den Befehl mit dem richtigen Wort wiederholen mit:

^sduo^sudo^

Verwenden Sie das grep Befehl zum Filtern der Ausgabe. 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 nun die nano setup.py erneut ausführen möchten Geben Sie einfach Folgendes ein:

!356

Eine andere Möglichkeit, den Befehlsverlauf zu durchsuchen, ist das Drücken von Ctrl-R . Die Eingabeaufforderung ändert sich wie folgt und Sie können mit der Suche nach einem zuvor ausgeführten Befehl beginnen.

(reverse-i-search)`':

Die Shell zeigt eine passende Linie an. Um zum nächsten übereinstimmenden Vorschlag zu wechseln, drücken Sie Ctrl-R nochmal.

Weitere Informationen zu Verlaufserweiterung, Modifikatoren und Bezeichnern finden Sie im Bash-Handbuch.

Speichern der Verlaufsliste #

Standardmäßig liest Bash beim Starten einer neuen Sitzung die Verlaufsliste aus .bash_history Datei . Die Liste der in der aktuellen Sitzung ausgeführten Befehle wird im Speicher gehalten und beim Schließen der Sitzung in der Datei gespeichert.

Wenn Sie mehrere Shell-Sitzungen geöffnet haben, wird nur der Verlauf der zuletzt geschlossenen Sitzung gespeichert.

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

history -a

Das -w Option schreibt die komplette Verlaufsliste in die Verlaufsdatei.

history -w

Verlauf löschen #

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

Um die Verlaufsliste zu löschen, verwenden Sie -c Möglichkeit:

history -c

Um eine bestimmte Zeile oder Zeilen zwischen einer Start- und Endposition aus der Verlaufsliste zu löschen, verwenden Sie -d Option.

Um beispielsweise die Zeilen zwischen 365 und 375 (einschließlich dieser Zeilen) zu entfernen, würden Sie Folgendes eingeben:

history -d 365 375

Wenn Sie nur eine Zahl für das -d angeben Option entfernt der Befehl die angegebene Zeile.

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

Die obigen Befehle löschen die Verlaufsliste, die im Speicher gehalten wird, entfernen jedoch keine Einträge aus der .bash_history Datei auf der Festplatte. Um die Datei zu löschen, müssen Sie die Verlaufsliste in die Datei schreiben:

history -chistory -w

Verlaufsverhalten ändern #

Das Verhalten des Bash-Verlaufs kann mit mehreren verschiedenen Umgebungsvariablen definiert werden. Legen Sie beim Ändern des Verlaufsverhaltens die Variablen in ~/.bashrc fest oder jede andere Konfigurationsdatei, die geladen wird, wenn sich der Benutzer anmeldet.

Standardmäßig behält Bash 500 Zeilen in der Befehlsverlaufsliste. Die HISTSIZE Mit der Variable können Sie diesen Wert ändern. Um ihn auf 10000 zu setzen, fügen Sie die folgende Zeile zu Ihrer .bashrc hinzu Datei:

HISTSIZE=10000

Die HISTCONTROL Die Variable 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 enthält und ignoredups .
HISTCONTROL=ignoreboth

Wenn das HISTTIMEFORMAT Variable gesetzt ist, stellt Bash in jeder Zeile einen Ausführungszeitstempel für den Befehl 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

Schlussfolgerung #

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

Wenn Sie Fragen oder Feedback haben, können Sie gerne einen Kommentar hinterlassen.


Linux
  1. So verwenden Sie den Verlaufsbefehl unter Linux

  2. So löschen Sie den BASH-Befehlszeilenverlauf in Linux

  3. So löschen Sie den Bash-Verlauf unter Linux

  4. Analysieren des Bash-Verlaufs unter Linux

  5. Linux-IP-Befehl

W-Befehl unter Linux

Bei Befehl unter Linux

Verlaufsbefehl in Linux mit Beispielen

So aktivieren Sie den Zeitstempel im Bash-Verlauf unter Linux

Df-Befehl unter Linux

Verlaufsbefehl in Linux – Zeigen Sie den Verlauf des Linux-Terminals an