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

Verwendung der Verlaufsfunktion in Bash Shell auf Ubuntu 16.04 LTS-Server

Die Bash (Bourne Again Shell) ist eine beliebte Shell, die auf den meisten UNIX-ähnlichen Systemen verwendet wird. Bash wird von Brian Fox als GNU-Projekt geschrieben. Es enthält Funktionen der Bourne-Shell, der C-Shell und der Korn-Shell. Benutzer, die ihre Zeit auf der Befehlszeile mit der Bash-Shell verbringen, möchten häufig die Befehle wiederholen, die in der Vergangenheit ausgeführt wurden. Die Bash-Shell-Verlaufsfunktion hilft dabei, sich an die letzten Befehle zu erinnern und sie später wiederzuverwenden; wodurch Zeit zum erneuten Eintippen gespart wird. Lass uns anfangen!

Auflistungsverlauf

Wenn Geschichte Wenn der Befehl ohne übergebene Argumente verwendet wird, werden die zuletzt verwendeten Befehle mit den entsprechenden Zeilennummern angezeigt.

$ history 

Die Ausgabe sieht ungefähr so ​​aus:

Auflistung der letzten „n“ ausgeführten Befehle

Durch die Verwendung von „history “ können die letzten „n“ ausgeführten Befehle wie folgt abgerufen werden:

$ history 7 

Führen Sie einen bestimmten Befehl aus dem Verlauf aus

Es ist möglich, einen bestimmten Befehl aus der Historie auszuführen. Die Verwendung der Ausrufezeichen, gefolgt von der Nummer des Befehls, wie im Verlauf aufgeführt, wird die Magie bewirken. Führen Sie zum Beispiel mit dem folgenden Befehl den Befehl mit der Nummer 7 (du –sh) wie folgt erneut aus:

$ !7 

Vorherigen Befehl erneut ausführen

In vielen Situationen müssen wir einen Befehl immer wieder ausführen. Die folgenden Befehle erledigen diese Aufgabe, indem sie den zuvor verwendeten Befehl ausführen.

$ !!
Or
$ !-1  

Durchsuchen der Befehle

Die von der Historie generierte Ausgabe kann auf verschiedene Weise verwendet werden. Beispielsweise kann die Verlaufsausgabe an – more, tail, grep übergeben werden, um die gewünschte Ausgabe abzurufen.

Durchsuchen Sie den Befehlsverlauf nach „kostenlos“:$ history | grep free Um nur die letzten 4 Befehle anzuzeigen:

$ history | tail -4 

Der Befehl more ermöglicht die seitenweise Anzeige der Ausgabe im Terminal:

$ history | more   

Führen Sie einen vorherigen Befehl aus, der mit einem bestimmten Wort beginnt

Die Verwendung von Ausrufezeichen, gefolgt von dem spezifischen Wort des Befehls, wird die Magie bewirken!. Angenommen, der Benutzer hat – „free –h“ ausgeführt. Wenn Sie „!free“ eingeben, wird der Befehl „free –h“ erneut ausgeführt.

Verlauf löschen

Es ist möglich, den Verlauf mit dem folgenden Befehl zu löschen: ​ $ history -c Dies löscht alle Befehle im Speicher der Bash-Shell für die aktuelle Benutzersitzung.

Nützliche Aliase

Ein Alias ​​ist ein kurzer Name für einen langen und komplexen Befehl. Einfacher Einzelzeichen-Alias ​​für den Verlaufsbefehl.

$ alias 'h=history' 

Der folgende Alias ​​„ht“ zeigt die zehn letzten Befehle an –

$ alias 'ht=history | tail' 

Der folgende Alias ​​„hg“ ermöglicht die Anzeige aller Befehle, die mit der angegebenen Zeichenfolge übereinstimmen –

$ alias 'hg=history | grep' 

Fügen Sie diese Aliase in der Datei „~/.bashrc“ hinzu, damit sie bei jedem Systemstart persistent sind.

Verlaufskonfigurationseinstellungen

Bash-Shell-Variable Beschreibung
HISTATEI ​Speicherort der physischen Datei, in der der Verlauf die Befehle speichert. Die Bash-Shell ist standardmäßig „~/.bash_history“. Das Setzen von „/dev/null“ deaktiviert die Verlaufsaufzeichnung.
HISTFILESIZE ​Bezieht sich auf eine Reihe von Befehlen, die in der Verlaufsdatei gespeichert werden sollen.
HISTGRÖSSE ​Bezieht sich auf eine Reihe von Befehlen, die im Speicher in einer Verlaufsliste gespeichert sind. Wenn Sie einen Wert von 0 (Null) festlegen, wird die Verlaufsaufzeichnung deaktiviert.
HISTIGNORE Manchmal ist es erforderlich, bestimmte Befehle nicht zu speichern. Diese Variable nimmt eine Liste von durch Doppelpunkte getrennten Mustern an. Beispielsweise zeichnet die folgende Konfiguration die Verlaufsfunktion auf, um die Befehle nicht aufzuzeichnen:ls, top und clear.

HISTIGNORE=”ls*:top:clear” 
HISTTIMEFORMAT ​Diese HISTTIMEFORMAT-Variable ermöglicht die Anzeige des Verlaufs mit Zeitstempel.

Wenn HISTTIMEFORMAT auf „%F %T  “ gesetzt ist, erhalten Sie die folgenden Ergebnisse.​ Dies ist ein sehr nützlicher Befehl für Systemadministratoren.
HISTCONTROL ​HISTCONTROL hilft beim Ignorieren von Duplikaten. HISTCONTROL kann mit folgenden Werten festgelegt werden: erasedups,ignorespace,ignoredups oderignorierboth. (durch Doppelpunkt getrennt) Im Folgenden einige Beispiele: HISTCONTROL=ignoredups:erasedups
HISTCONTROL=ignorebothAngenommen, die Verlaufseinträge enthalten Duplikate wie folgt („top“ und „ls –latr“ werden nacheinander wiederholt) Wenn HISTCONTROL auf „ignoredups “, dann wäre der Verlauf wie folgt angezeigt worden:

Erweiterte Konfigurationseinstellungen

Bash verwaltet die Liste der Befehle intern im Speicher und sie werden beim Beenden in die konfigurierte Datei (standardmäßig .bash_history) geschrieben. Wenn der Benutzer die Shell verlässt, werden die letzten $HISTSIZE-Zeilen aus der Verlaufsliste in die auf $HISTFILE gesetzte Datei kopiert. Wenn ein Benutzer mit vielen Bash-Sitzungen angemeldet ist, wird nur der Verlauf der zuletzt beendeten Bash-Sitzung gespeichert. Falls die Befehlshistorie sofort geschrieben werden soll, wenn ein Befehl in einer Benutzersitzung ausgeführt wird, kann folgende Konfiguration in der „.bashrc“-Datei eingestellt werden.

$ shopt -s histappend $ PROMPT_COMMAND ="Verlauf -a; Geschichte -c; history -r“ „shopt –s histappend“ aktiviert das Anhängen, anstatt den Verlauf zu überschreiben.
„history -a“ wird verwendet, um die Verlaufsbefehle im Speicher an ~/.bash_history anzuhängen
„history -c“ wird verwendet, um die Verlaufsbefehle im Speicher zu löschen
„history -r“ wird verwendet, um Verlaufsbefehle aus ~/.bash_history in den Speicher zu lesen
Eine typische „~/.bashrc“-Datei mit verlaufsbezogenen Konfigurationseinstellungen wird wie folgt aussehen:# Steuere die Größe der im Speicher aufzuzeichnenden Befehle
HISTSIZE=2000# Steuere die Größe der in der Datei zu speichernden Befehle
HISTFILESIZE=10000

# Speicherort der physischen Datei, in der Befehle geschrieben werden
HISTFILE=/var/users/rjujare/.bash_history

#Format für Aufzeichnungs- und Anzeigezweck:Einbeziehung des Zeitstempels
HISTTIMEFORMAT=’%F %T ‘

# allgemeine Befehle wie ls
HISTIGNORE=”ls:id:uname:clear:top”

ignorieren

# doppelte Befehle und Befehle, die mit Leerzeichen beginnen, ignorieren
HISTCONTROL=ignoreboth
# anhängen, Verlauf nicht überschreiben
shopt -s histappend
PROMPT_COMMAND=”history -a; Geschichte -c; Geschichte -r“

Wie speichere ich die Konfiguration?

Öffnen Sie die Datei ~/.bashrc mit Ihrem bevorzugten Editor, um die Einstellungen zu ändern. Wenn die Änderungen abgeschlossen sind, speichern Sie die Datei und beenden Sie sie. Um den Änderungseffekt zu erhalten, geben Sie die Datei mit dem Befehl „source“ wie folgt aus:

$ source ~/.bashrc   

Schlussfolgerung

Die Bash-Shell kommt mit vielen nützlichen Funktionen und eine davon ist Geschichte. Diese Funktionen verbessern auch die Produktivität von Administratoren und normalen Benutzern erheblich. Vergessen Sie nicht, Ihre eigenen Erfahrungen mit der Geschichte zu teilen!


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

  2. Wie lässt sich Type-Ahead auf die Bash-Verlaufssuche anwenden (Strg-R)?

  3. Verwenden des Linux-Sleep-Befehls in Bash-Skripten

  4. Ausgabe des Befehls nach Spalten mit Bash aufteilen?

  5. So deaktivieren Sie die Bearbeitung meines Verlaufs in Bash

So aktualisieren Sie Ubuntu 16.04 LTS auf 20.04 LTS mit dem Befehlsterminal

Befehl zum Installieren von Fish Shell unter Ubuntu 20.04 LTS

Aktualisieren Sie Ubuntu 20.04 auf 22.04 LTS Jammy mit Command oder GUI

So installieren Sie TeamViewer unter Ubuntu 20.04 LTS

So installieren Sie Wine unter Ubuntu 22.04 LTS

Installieren von Fish Shell auf Ubuntu unter Windows 10