Schale

Das Beste aus der Linux-Bash-Historie herausholen

Das Beste aus der Linux-Bash-Historie herausholen

Linux-Befehlszeile – das Terminal speichert, wie alle Shells, einen Verlauf der Befehle, die in der Vergangenheit von einem Benutzer ausgeführt wurden. Dieser Verlauf ist persistent und bleibt im Speicher, auch wenn wir unser System neu starten. Diese gespeicherten Befehle können von uns auf die optimalste Weise abgerufen und wiederverwendet werden, um die Geschichtsspeicherfunktion der meisten Shells effizient zu nutzen.

Die Linux-Bash enthält einen sehr mächtigen Befehl namens „history“. Dieser Befehl ist ein integrierter Bash-Befehl, der verwendet wird, um die Verlaufsinformationen zu Befehlen zu extrahieren, die von Linux-Benutzern in allen vorherigen Sitzungen ausgeführt wurden. In diesem Tutorial werden wir Ihnen ermöglichen, das Beste aus Ihrem Shell-Verlauf herauszuholen, indem Sie die richtige Verwendung des Befehls history lernen. Linux speichert den Befehlsverlauf für einen bestimmten Benutzer in einer Datei ~/.bash_history standardmäßig.

Wir werden die Terminal-Anwendung von Linux verwenden, um die in diesem Tutorial erwähnten Befehle auszuführen.

Anzeigen des gesamten Verlaufs

Ein Benutzer kann den gesamten Verlauf seiner Shell-Befehle aus der exklusiv für diesen Benutzer gespeicherten Verlaufsdatei anzeigen, indem er den folgenden einfachen Befehl verwendet:

$ Geschichte

Der Verlauf wird im folgenden Standardformat auf dem Bildschirm gedruckt:

Im obigen Bild sehen Sie eine Liste aller Befehle, denen jeweils eine Nummer zugewiesen ist. Der Befehl mit der Nummer 1 entspricht dem ersten Befehl, den Sie ausgeführt haben, und der Befehl mit der letzten Nummer steht für den zuletzt ausgeführten Befehl.

Wenn Sie seit der Verwendung der Bash viele Befehle ausgeführt haben, werden Sie feststellen, dass hier Hunderte und sogar Tausende dieser Befehle angezeigt werden. Um auf einige relevante Befehle zuzugreifen, können Sie die von der Verlaufsfunktion angezeigten Ergebnisse filtern. Sie können den Verlaufsbefehl auch anpassen, um eine bestimmte Anzahl von Befehlen für Sie anzuzeigen.

Filtern der Verlaufsausgabe

Wenn Sie Ihre Verlaufsausgabe nach einem bestimmten Schlüsselwort filtern möchten, das Sie möglicherweise in den vorherigen Befehlen verwendet haben, können Sie den Verlaufsbefehl wie folgt verwenden:

$ Geschichte | grep [Schlüsselwort]

Beispiel: In diesem Beispiel möchte ich nur die Ping-Befehle anzeigen, die ich jemals in der Shell ausgeführt habe. Daher verwende ich folgenden Befehl:

$ Geschichte | grep ping

Sie können sehen, dass meine Ausgabe jetzt nur die Befehle einschließlich meines Suchbegriffs „ping“ anzeigt

Anzeigen einer Reihe von letzten Befehlen

Sie können auch eine bestimmte Anzahl von Befehlen anzeigen, zum Beispiel:

ODER

N Anzahl der letzten Befehle

Sie können eine bestimmte Anzahl kürzlich ausgeführter Befehle mit dem folgenden Befehl anzeigen:

$ Geschichte | Schwanz -n

Beispiel:

In diesem Beispiel möchte ich die letzten 3 ausgeführten Befehle mit dem Schlüsselwort 'ping' anzeigen:

$ Geschichte | grep ping |schwanz -3

Die Ausgabe zeigt nur die 3 letzten Ping-Befehle anstelle des gesamten Verlaufs an

N Anzahl der ältesten Befehle

Sie können eine bestimmte Anzahl der ältesten Ausführungsbefehle mit dem folgenden Befehl anzeigen:

$ Geschichte | Kopf -n

Beispiel:

In diesem Beispiel möchte ich die ältesten 3 Befehle, die ich ausgeführt habe, mit dem Schlüsselwort 'ping' anzeigen:

$ Geschichte | grep ping |kopf -3

Die Ausgabe zeigt nur die 3 ältesten Ping-Befehle anstelle des gesamten Verlaufs an

Alle Befehle mit Datum und Zeitstempel auflisten

Wenn Sie Ihren Befehlsverlauf zusammen mit Datum und Zeitstempel anzeigen möchten, verwenden Sie bitte den folgenden Exportbefehl:

$ export HISTTIMEFORMAT="%F, %T"

Wenn Sie nun den Verlauf anzeigen möchten, führen Sie einfach den Befehl history aus, um die Ausgabe im folgenden Format anzuzeigen:

Bitte beachten Sie, dass diese Formatänderung temporär ist und beim Schließen der Sitzung auf den vorherigen Standard zurückgesetzt wird.

Navigieren von Befehlen aus dem Verlauf

Während Sie sich in der Befehlszeile befinden, können Sie durch zuvor ausgeführte Befehle navigieren und auch einige kürzlich verwendete Befehle abrufen, indem Sie ein Schlüsselwort eingeben.

Durch die Befehle scrollen

Sie können die folgenden Tastatursteuerungen verwenden, um durch die Verlaufsbefehle zu navigieren

Pfeil nach oben/Strg+PMit diesen Steuerelementen können Sie den vorherigen Befehl anzeigen, den Sie verwendet haben. Sie können diese Steuerelemente mehrmals drücken, um zu einem bestimmten Befehl im Verlauf zurückzukehren.
Pfeil nach unten/Strg+NMit diesen Steuerelementen können Sie den nächsten von Ihnen verwendeten Befehl anzeigen. Sie können diese Steuerelemente mehrmals drücken, um zu einem bestimmten Befehl im Verlauf zu gelangen.
Alt+RWenn Sie einen Befehl, den Sie aus dem Verlauf gezogen haben, in einer aktuellen Zeile bearbeiten, können Sie ihn mit diesem Steuerelement auf den ursprünglichen Befehl zurücksetzen.

Abrufen von Befehlen

Sie können einen bestimmten Befehl aus dem Verlauf abrufen, ausführen oder nicht ausführen, indem Sie die folgenden Steuerelemente verwenden:

Strg+RMit diesem Steuerelement können Sie einen Befehl aus dem Verlauf abrufen, indem Sie eine Suchzeichenfolge angeben.
Strg+OMit diesem Steuerelement können Sie den Befehl ausführen, den Sie mit Strg+R . aufgerufen haben
Strg+GMit diesem Steuerelement können Sie den Verlauf verlassen, ohne den Befehl auszuführen, den Sie mit Strg+R . aufgerufen haben

Beispiel:

In diesem Beispiel habe ich Strg+R gedrückt und dann die Suchzeichenfolge 'ar' angegeben. Der Verlauf zeigte den Befehl 'arch' an.

Als ich den Befehl 'arch' durch Drücken von Strg+O ausführte, wurde die CPU-Architektur meines Systems angezeigt:

Nutzung der Bash-Historie

Die wahre Magie des Bash-Verlaufs besteht darin, verschiedene Befehle zu verwenden und den Verlaufsbefehl selbst anzupassen, um die Verlaufsfunktion optimal zu nutzen:

Ausführen von Befehlen aus dem Verlauf

$ !#

Beispiel:

Hier führe ich die Befehlsnummer 95 aus meiner Historie aus:

$ !95

Die Ausgabe zeigt das Ergebnis von 'lscpu' an, das als Befehlsnummer 95 in meinem Bash-Verlauf aufgeführt wurde. Dieser Befehl zeigt meine CPU- und Betriebssystemspezifikationen an.

$ !!

Beispiel:

Hier sehen Sie, dass ich den Befehl 'arch' ausgeführt habe. Durch Ausführen des oben genannten Befehls kann ich den Befehl 'arch' erneut ausführen, um meine CPU-Architektur wie folgt anzuzeigen:

$ ![Stichwort]

Beispiel:

Ich werde den folgenden Befehl verwenden, um den letzten Befehl mit dem Schlüsselwort 'dconf' erneut auszuführen:

$ !dconf

Sie können im folgenden Bild erneut bestätigen, dass es der letzte dconf-Befehl war, den ich ausgeführt habe.

Verwenden von Argumenten aus vorherigen Befehlen

Mit der Linux-Bash können Sie einen neuen Befehl ausführen, indem Sie Argumente aus dem vorherigen Befehl verwenden. Es ist besonders hilfreich, wenn Sie lange oder komplizierte Argumente nicht erneut eingeben möchten. Dazu können Sie folgenden Befehl verwenden:

Das letzte Argument des vorherigen Befehls verwenden

$ [Befehl] !$

Die Variable !$ hat das letzte Argument des vorherigen Befehls darin gespeichert.

Beispiel:

In diesem Beispiel erstelle ich eine Datei mit einem langen Namen.

Nano [langnameOfaFile]

Ich werde es dann an einen anderen Ort kopieren, indem ich vermeide, den langen Namen wie folgt erneut einzugeben:

Cp !$ [Zielordner]

Sie können sehen, dass ich eine Datei kopieren konnte, ohne den Dateinamen erneut einzugeben, indem ich die Variable verwende !$

Verwenden des ersten Arguments aus dem vorherigen Befehl

Manchmal ist nur das erste Argument des vorherigen Befehls im aktuellen hilfreich.

In diesem Fall können Sie den folgenden Befehl verwenden:

$ [Befehl] !^

Beispiel:

Im folgenden Beispiel habe ich den Ping-Befehl ausgeführt, indem ich den Hostnamen und eine Anzahl als Argumente angegeben habe. Jetzt möchte ich den Hostnamen (erstes Argument) anstelle von 2 (das letzte Argument) in meinem neuen Befehl verwenden. Dazu verwende ich folgenden Befehl:

$ ping !^

Verwenden aller Argumente aus dem vorherigen Befehl

Sie können auch alle Argumente des vorherigen Befehls verwenden, indem Sie den folgenden Befehl verwenden:

$ !*

Verwenden eines Arguments aus einem Verlaufsbefehl

Sie können auch Befehle aus Ihrem Verlauf verwenden, indem Sie deren Argumente wiederverwenden. Verwenden Sie dazu den folgenden Befehl:

$ [Befehl] ![Stichwort]:#

Beispiel:

$ echo !cp: 2

Dieser Befehl nimmt die folgenden Parameter an:

Befehl: echo

Stichwort: cp

#:2(zweites Argument des Befehls)

Die folgende Ausgabe zeigt das 2. Argument des letzten cp-Befehls, den ich ausgeführt habe:

Verwenden aller Argumente eines Verlaufsbefehls

Der folgende Befehl speichert alle Argumente aus dem durchsuchten Verlaufsbefehl und verwendet sie im aktuellen Befehl:

$-Befehl ![Stichwort]:*

Beispiel:

Im folgenden Befehl werde ich alle Argumente des letzten cp-Befehls ausgeben, indem ich den echo-Befehl wie folgt verwende:

$ echo ![cp]:*

Vorherige Befehle ändern und ausführen

Wenn Sie sich bei einem Befehl vertippt haben oder einen Befehl erneut ausführen möchten, indem Sie Text darin ändern; wie folgt vor:

$ ^[vorheriger Text]^[neuer Text]

Beispiel:

Ich habe den Befehl 'grep' als 'gep' vertippt und möchte den Befehl jetzt ausführen, indem ich den Text korrigiere:

$ ^gep^grep

Jetzt können Sie sehen, dass mein korrigierter Befehl wie folgt ordnungsgemäß ausgeführt wird:

Verlauf löschen

Um den Verlauf Ihrer Bash zu löschen, verwenden Sie den folgenden Befehl:

$ Geschichte -c

Dieser Befehl löscht Ihren Verlauf und entfernt alle Inhalte aus der Datei ~/.bash_history

In diesem Tutorial haben wir gelernt, dass das Drucken des gesamten Verlaufsinhalts möglicherweise nicht so nützlich ist, aber die Optimierung der Ausgabe durch die gelernten Befehle ist der wahre Wendepunkt. Wenn Sie mit diesem Artikel üben, können Sie die genauen Befehle anzeigen, die Sie möchten, diese Befehle erneut ausführen und wiederverwenden und auch Argumente von zuvor ausgeführten Befehlen verwenden, um neue zu optimieren optimize.

Kostenlose und Open-Source-Spiele-Engines für die Entwicklung von Linux-Spielen
Dieser Artikel behandelt eine Liste von kostenlosen und Open-Source-Spiele-Engines, die für die Entwicklung von 2D- und 3D-Spielen unter Linux verwend...
Shadow of the Tomb Raider für Linux Tutorial
Shadow of the Tomb Raider ist die zwölfte Erweiterung der Tomb Raider-Reihe – ein Action-Adventure-Franchise von Eidos Montrealdos. Das Spiel wurde vo...
So steigern Sie die FPS unter Linux?
FPS steht für Bilder pro Sekunde. Die Aufgabe von FPS besteht darin, die Bildrate bei Videowiedergaben oder Spielleistungen zu messen. In einfachen Wo...