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

Retten Sie erfolgreich den Tag mit Bash-Verlaufsbefehlen

Haben Sie irgendwie das Gefühl, dass Sie Befehle ausgeführt haben, die Sie nicht ausführen sollten? Haben sie die Dinge vermasselt und Sie verblüfft über das, was passiert ist? Mit Bash-Verlaufsbefehlen ersparen Sie sich die Kopfschmerzen, herauszufinden, was was durcheinander gebracht hat, und sparen Zeit beim erneuten Ausführen komplexer Befehle.

Kein Leser? Sehen Sie sich dieses zugehörige Video-Tutorial an! Sie sehen das Video nicht? Stellen Sie sicher, dass Ihr Werbeblocker deaktiviert ist.

In diesem Tutorial lernen Sie einige der hilfreichsten Bash-Verlaufsbefehle kennen und verlieren nie den Überblick über die Ausführung Ihrer Befehle.

Lesen Sie weiter und lassen Sie die Bash-Geschichte den Tag retten!

Voraussetzungen

Dieses Tutorial wird eine praktische Demonstration sein. Wenn Sie mitmachen möchten, stellen Sie sicher, dass Sie Folgendes haben.

  • Eine Linux-Maschine – Dieses Tutorial verwendet Ubuntu 20.04, aber jede Linux-Distribution funktioniert.
  • Ein Benutzerkonto mit Root-Rechten.

Anzeigen des Bash-Verlaufs

Die meisten Linux-Distributionen verwenden Bash als Standard-Shell. Wie andere Shell-Umgebungen verwaltet Bash eine Aufzeichnung der Befehle, die Sie zuvor ausgeführt haben. Dieser Datensatz wird in einer Datei namens ~/.bash_history gespeichert und gepflegt selbst wenn Sie Ihr System neu starten.

Aber wie sehen Sie die Bash-Geschichte? Durch Ausführen von history Befehl allein oder mit einem anderen Befehl geleitet.

1. Führen Sie history aus Befehl unten, um den Befehlsverlauf anzuzeigen.

history

Unten sehen Sie die gesamte Liste der Befehle, die vom Root-Benutzer in der aktuellen Shell-Sitzung ausgeführt wurden. Standardmäßig werden die Befehle in der Liste vom ältesten zum neuesten (von oben nach unten) angezeigt.

Die folgende Ausgabe zeigt nur ein kleines Fragment der gesamten Verlaufsdatei. In vielen Fällen erhalten Sie Tausende von Verlaufszeilen, und es wird Ihnen schwer fallen, durch sie zu scrollen. Aber lesen Sie weiter, und Sie werden in den folgenden Schritten lernen, die Ausgabe nach Ihren Wünschen anzupassen.

2. Führen Sie als Nächstes history aus Befehl unten, um die letzten 10 anzuzeigen Befehle, die im Bash-Verlauf aufgezeichnet sind. Ersetzen Sie 10 mit der Anzahl der Zeilen, die Sie anzeigen möchten.

history 10

Wie Sie unten sehen können, ist die Ausgabe viel besser zu handhaben.

3. Führen Sie zuletzt den folgenden Befehl aus, der mit head geleitet wird Befehl, um nur die ersten zehn (ältesten) Befehle aufzulisten, die vom Root-Benutzer in der aktuellen Sitzung ausgeführt wurden.

Ersetzen Sie wie in Schritt zwei 10 durch die Anzahl der Zeilen, die Sie anzeigen möchten.

history 10 | head

Wie unten gezeigt, ist das Anzeigen der ältesten Befehle nützlich, wenn Sie Befehle überprüfen, die zu Beginn einer Sitzung ausgeführt wurden.

Anzeigen des Bash-Befehlsverlaufs nach Datum und Uhrzeit

Die history Der Befehl ist praktisch, zeigt Ihnen jedoch nicht das Datum und die Uhrzeit an, zu der Sie die Befehle ausgeführt haben. Die Datums- und Uhrzeitinformationen können bei der Fehlerbehebung oder der Suche nach der Ursache eines Problems hilfreich sein.

Glücklicherweise können Sie diese Informationen erhalten, indem Sie das Datums- und Uhrzeitformat des Bash-Verlaufs in HISTTIMEFORMAT festlegen Variable.

Führen Sie den folgenden Befehl aus, um das Datum einzustellen (%F ) und Zeit (%T ) Format des Bash-Verlaufs, wobei:

  • Der %F Die Option ist für das vollständige Datum im Jahr-Monat-Tag-Format.
  • Die %T Die Option ist für die Zeit im Format Stunde:Minute:Sekunde (24 Stunden) angegeben. Beachten Sie, dass Sie nach %T ein Leerzeichen einfügen müssen Option, um es von den Befehlen zu trennen.
HISTTIMEFORMAT='%F, %T '

Sie können eine beliebige Kombination der Formatoptionen verwenden. Wenn Sie beispielsweise nur die Uhrzeit anzeigen möchten, zu der Sie die Befehle ausgeführt haben, verwenden Sie %T . Oder verwenden Sie den %F Option Wenn Sie stattdessen nur das Datum anzeigen möchten.

Führen Sie nun history aus Befehl allein, um den Bash-Verlauf anzuzeigen.

history

Wie Sie unten sehen können, enthält die Ausgabe jetzt Datum und Uhrzeit der Ausführung der Befehle.

Durchsuchen des Bash-Verlaufs

Sie haben gesehen, wie Sie den Bash-Verlauf anzeigen und die Anzahl der anzuzeigenden Befehle steuern. Aber was ist, wenn Sie einen bestimmten Befehl in Ihrem Bash-Verlauf finden möchten und sich nicht genau erinnern, was es war? Weiterleiten anderer Befehle, wie grep , zum history Befehl wird es tun.

Führen Sie den folgenden Befehl aus, um (grep ) jede Befehlszeile im Bash-Verlauf, die den ls enthält Text, und drucken Sie die letzten fünf (5 ) Befehle. Die -i Option sagt grep Groß-/Kleinschreibung jeder Befehlszeile zu ignorieren.

Achten Sie darauf, ls zu ersetzen mit dem Wort oder Ausdruck, nach dem Sie suchen möchten.

Standardmäßig behandelt der grep-Befehl die Groß-/Kleinschreibung und zeigt die Unterscheidung zwischen Groß- und Kleinschreibung in der Datei. Wenn Sie beispielsweise nach „ls“ suchen, sehen Sie Befehle mit „ls“, aber weder „LS“ noch „Ls.“.

history 5 | grep -i ls

Unten sehen Sie, dass die letzten fünf Befehle mit „ls“ angezeigt werden, unabhängig von der Schreibweise.

Ausführen von Befehlen aus dem Bash-Verlauf mit Ereignisbezeichnern

Sie wissen bereits, wie Sie Befehle aus Ihrem Bash-Verlauf in verschiedenen Ausgaben anzeigen. Aber wussten Sie, dass Sie auch Befehle aus Ihrem Bash-Verlauf ausführen können, ohne alles neu eingeben zu müssen?

Diese Funktion spart Zeit, wenn Sie dieselben Befehle mehrmals mithilfe von Ereignisbezeichnern ausführen. Ereignisbezeichner ermöglichen es Ihnen, einen Befehl anhand seiner Position in der Verlaufsliste zu referenzieren, und sind nützlich, wenn Sie komplexe Befehle erneut ausführen.

Um einen Befehl aus Ihrem Bash-Verlauf auszuführen, geben Sie ein Ausrufezeichen ein (! ) gefolgt von der Nummer des auszuführenden Befehls.

1. Zeigen Sie den Bash-Verlauf mit allen Methoden an, die Sie bisher gelernt haben. Aber das Tutorial führt den history aus Befehl ohne Optionen oder Pipe-Befehle.

history

Die Nummern in der linken Spalte in der Ausgabe unten sind die Befehlsverlaufsnummern, die als Ereignisbezeichner bezeichnet werden.

Notieren Sie sich die Nummer des Befehls, den Sie aus dem Bash-Verlauf wiederholen möchten, in diesem Fall den Befehl apt install sudo.

2. Führen Sie als Nächstes den folgenden Befehl aus, um den 11. auszuführen (!11 )-Befehl aus Ihrem Bash-Verlauf

!11

Sie können unten sehen, dass Sie den Befehl apt install sudo ausführen, indem Sie den Befehl !11 ausführen.

Vielleicht möchten Sie den Befehl trocken ausführen, bevor Sie ihn tatsächlich ausführen. Wenn dies der Fall ist, hängen Sie die Option :p an einen Ihrer Zielbefehle an, wie unten gezeigt. Diese Option ist hilfreich, wenn Sie die Dinge nicht durcheinander bringen möchten, wenn Sie einen Befehl erneut ausführen.

!11:p

Beachten Sie unter dem Befehl !11:p, dass der Zielbefehl aus dem Bash-Verlauf ausgegeben wird, ohne ihn auszuführen.

3. Führen Sie den folgenden Befehl aus (!! ), wenn Sie vielleicht den letzten Befehl im Bash-Verlauf ausführen möchten. Dieser Befehl ist hilfreich, wenn Sie versehentlich einen Befehl verlassen oder vergessen, einen mit sudo auszuführen Privilegien.

!!

Sie können unten das !! Befehl führt den letzten Befehl im Bash-Verlauf aus, den Befehl history 5.

4. Führen Sie nun den folgenden Befehl aus, um einen Befehl mit vorangestelltem sudo erneut auszuführen, vielleicht den touch Befehl aus der Bash-Historie. Falls Sie vergessen haben, sudo voranzustellen In einem früheren Befehl ist diese Funktion hilfreich, wenn Sie einen Nicht-Root-Benutzer verwenden.

sudo !!

5. Führen Sie zuletzt die folgenden Befehle aus, um den Ping-Befehl als letzten Befehl festzulegen, und führen Sie den letzten Befehl im Bash-Verlauf erneut aus, indem Sie den Namen des Befehls angeben.

Diese Funktion ist hilfreich, wenn Sie sich an den Anfang des Befehlsnamens erinnern, sodass Sie den Bash-Verlauf nicht anzeigen und durchsuchen müssen.

# Ping google.com
ping google.com
# Rerun the specified command (ping)
!ping

Sie können unten sehen, dass der Befehl !ping den neuesten Befehl findet, der mit ping beginnt, und diesen Befehl erneut ausführt.

Wiederverwendung von Argumenten aus dem Bash-Verlauf

Befehle aus dem Verlauf erneut auszuführen, ohne alles neu einzugeben, macht Spaß, oder? Aber was ist, wenn Sie einen neuen Befehl ausführen möchten, während Sie Argumente aus einem anderen Befehl verwenden? Verwenden Sie in diesem Fall den !$ Der Ereignisbezeichner ist praktisch, um das letzte Argument des vorhergehenden Befehls zu bezeichnen.

Wie die vorherigen Beispiele, !$ können Sie lange oder komplizierte Argumente wiederverwenden, ohne sie erneut eingeben zu müssen. Sie erstellen beispielsweise eine neue Datei mit einem langen Pfad und Dateinamen und möchten denselben Namen für eine andere Datei verwenden. Sie müssen es also nicht erneut eingeben. Sie können dies tun, indem Sie den folgenden Befehl eingeben.

Führen Sie die folgenden Befehle aus, um eine Datei mit einem langen Pfad und Dateinamen zu erstellen, und öffnen Sie die Datei in einem Texteditor, ohne den gesamten Dateipfad erneut einzugeben.

# Creates a file called this_is_a_long_file_name
touch /home/ata/Documents/this_is_a_long_file_name
# Expand to the last command's arguments and 
# opens the this_is_a_long_file_name file in a text editor
nano !$

Wie Sie unten sehen können, verwenden Sie den !$ event designator spart Ihnen viel Zeit beim erneuten Ausführen von Befehlen mit langen oder komplizierten Argumenten.

Schlussfolgerung

In diesem Artikel haben Sie gelernt, wie Sie Bash-Verlaufsbefehle verwenden, um Zeit zu sparen und die Produktivität zu verbessern. An diesem Punkt wissen Sie bereits, wie Sie eine bestimmte Anzahl von Befehlen anzeigen, nach bestimmten Befehlen suchen, Befehle erneut ausführen und Argumente aus Ihrem Bash-Verlauf wiederverwenden können.

Diese Fähigkeiten werden sich bei der Arbeit an der Befehlszeile als nützlich erweisen. Warum lernen Sie also nicht Bash-Shortcuts, um diese Fähigkeiten aufzubauen und Ihre Produktivität in einer Befehlszeilenumgebung zu steigern?


Linux
  1. Überwachen Sie Befehle und Aufgaben mit dem Linux-Überwachungsbefehl

  2. Machen Sie den Bash-Verlauf mit diesen Tipps nützlicher

  3. So verwenden Sie Bash-Verlaufsbefehle

  4. 15 nützliche integrierte Bash Shell-Befehle (mit Beispielen)

  5. '&&' vs. '&' mit dem 'test'-Befehl in Bash

Erleben Sie die Linux-Geschichte mit dem ROX-Desktop neu

Was ist Git Bash? Arbeiten mit Git Bash-Befehlen

Ist es möglich, die eingebauten Befehle zu Bash zu verfolgen?

Einige der Befehle davon ausschließen, im Bash-Verlauf gespeichert zu werden?

Retten Sie den Tag mit Stellar Phoenix Windows Data Recovery

Befehl in Bash ausführen, ohne im Verlauf zu speichern