de.phhsnews.com


de.phhsnews.com / So verwenden Sie Ihre Bash-History im Linux- oder macOS-Terminal

So verwenden Sie Ihre Bash-History im Linux- oder macOS-Terminal


Die Bash-Shell ist die Standard-Terminal-Umgebung der meisten Linux-Distributionen, die mit macOS ausgeliefert wird und für die Installation unter Windows 10 verfügbar ist. Er merkt sich die eingegebenen Befehle und speichert sie in einer Verlaufsdatei. Sie kennen wahrscheinlich ein paar Grundlagen der Bash-Geschichte, aber es ist viel mächtiger als Sie vielleicht wissen.

Tastaturkürzel

RELATED: Die besten Tastaturkürzel für Bash (alias Linux und macOS Terminal)

Um durch Ihre Bash-Geschichte zu scrollen, können Sie einige der vielen nützlichen Tastenkombinationen von bash verwenden. Drücken Sie diese Tastenkürzel und die Befehle, die Sie zuvor verwendet haben, erscheinen an der Eingabeaufforderung.

  • Pfeil nach oben oder Strg + P : Gehen Sie zum vorherigen Befehl in Ihrem Verlauf. Drücken Sie mehrmals die Taste, um durch die von Ihnen verwendeten Befehle zu gehen.
  • Abwärtspfeil oder Strg + N : Gehen Sie zum nächsten Befehl in Ihrem Verlauf. Drücken Sie die Taste mehrmals, um durch die von Ihnen verwendeten Befehle zu gehen.
  • Alt + R : Nehmen Sie alle Änderungen an einem Befehl aus Ihrem Verlauf zurück, wenn Sie ihn in der aktuellen Zeile bearbeitet haben.

Bash verfügt auch über einen speziellen "Recall" -Modus, mit dem Sie nach zuvor ausgeführten Befehlen suchen können, anstatt nacheinander durch sie zu scrollen.

  • Strg + R : Rufen Sie den letzten Befehl ab, der dem entspricht Zeichen, die Sie zur Verfügung stellen. Drücken Sie diese Abkürzung und beginnen Sie mit der Eingabe, um Ihren Bash-Verlauf nach einem Befehl zu durchsuchen.
  • Strg + O : Führen Sie den gefundenen Befehl mit Strg + R aus.
  • Strg + G : Verlassen Sie den Verlaufssuchmodus ohne einen Befehl auszuführen.

Anzeigen Ihrer Bash-Historie

Sie können Ihre gesamte Bash-Historie auf den Bildschirm drucken, indem Sie einen einzigen Befehl ausführen:

history

Sie sehen eine Liste aller Befehle in Ihrer Bash-Geschichte, zusammen mit einer Nummer links von jedem. Der Befehl mit einer "1" daneben ist der älteste Befehl in Ihrer Bash-History, während der Befehl mit der höchsten Nummer der jüngste ist.

RELATED: Werden Sie ein Linux-Terminal-Power-User mit diesen 8 Tricks

Sie können mit der Ausgabe alles tun, was Sie möchten. Zum Beispiel könnten Sie es an den Befehlgrepleiten, um Ihren Befehlsverlauf zu durchsuchen.

Verlauf | grep your_search

Sie könnten es auch an dentail-Befehl überleiten, um nur eine kleine Anzahl der zuletzt ausgeführten Befehle anzuzeigen. Der folgende Befehl würde beispielsweise die letzten 5 Einträge in Ihrem Verlauf anzeigen.

history | tail -5

Befehle aus Ihrem Verlauf ausführen

Bash kann frühere Befehle schnell "erweitern" oder sie erweitern und modifizieren. Diese Funktion wird als "Verlaufserweiterung" bezeichnet und verwendet ein Ausrufezeichen, das als "Knall" bezeichnet wird. Geben Sie sie an der Eingabeaufforderung ein und drücken Sie die Eingabetaste, um sie auszuführen, als würden Sie einen anderen Befehl ausführen.

Verwenden Sie den folgenden Befehl, um einen bestimmten Befehl aus Ihrem Verlauf anhand seiner Nummer auszuführen:

! #

For Beispiel: Sie möchten den 12. Befehl aus Ihrer Bash-Historie ausführen. Das ist der Befehl mit einer "12" links davon, wenn Sie den Befehlhistoryausführen. Sie würden den folgenden Befehl eingeben.

! 12

Um den zuletzt ausgeführten Befehl erneut auszuführen, geben Sie Folgendes ein. Dies hat den gleichen Effekt, als ob Sie einmal den Pfeil nach oben drücken, um den vorherigen Befehl anzuzeigen, und dann die Eingabetaste drücken.

!!

Sie können auch auf einen Befehl eine bestimmte Anzahl von Zeilen zurückverweisen. Zum Beispiel würde! - 2den vorletzten Befehl ausführen.!!bedeutet dasselbe wie! - 1.

Diese Erweiterung funktioniert überall auf der Linie. Sie können vor oder nach!!oder einem der anderen Ausdrücke in diesem Abschnitt alles hinzufügen, was Ihnen gefällt. Zum Beispiel können Sie den folgenden Befehl eingeben, um den letzten Befehl, den Sie durchsudodurchlaufen haben, erneut auszuführen und ihm Root-Rechte zu geben. Dies ist besonders nützlich, wenn Sie vergessen,sudohinzuzufügen, bevor Sie einen Befehl ausführen.

sudo !!

Oder Sie könnten zum Beispiel den vorherigen Befehl erneut ausführen und die Ausgabe an grep übergeben, um danach zu suchen etwas Text.

!! | grep text

Um nach einem Befehl in Ihrem Verlauf zu suchen und ihn auszuführen, geben Sie Folgendes ein. Dadurch wird der letzte Befehl ausgeführt, der dem von Ihnen angegebenen Text entspricht:

! text

Wenn Sie also kürzlich einen Befehl ausgeführt haben, der mitpingbegonnen hat, können Sie den folgenden Befehl ausführen, um danach zu suchen. Dadurch wird der Verlauf rückwärts durchsucht, der letzte Befehl gesucht, der mit "pi" beginnt, und sofort ausgeführt:

! Pi

Sie können einhinzufügen: pzu irgendeiner der obigen Erweiterungen und bash wird den Befehl auf das Terminal drucken, ohne es auszuführen. Dies ist nützlich, wenn Sie bestätigen möchten, dass Sie den richtigen Befehl auswählen, bevor Sie ihn ausführen.

! 12: p
!!: p
! Text: p

Argumente aus Ihrem Verlauf wiederverwenden < Mit

Bash können Sie auch einen neuen Befehl ausführen, aber Argumente aus früheren Befehlen in Ihrem Verlauf verwenden. Dadurch können Sie lange oder komplizierte Argumente schnell wiederverwenden, ohne sie erneut eingeben zu müssen.

Befehl! $

Nehmen wir an, Sie haben den Befehlausgeführt touch / home / chris / some_long_file_name_you_dont_want_to_type_again. Sie möchten nun den Befehlnano / home / chris / some_long_file_name_you_dont_want_to_type_againausführen. Anstatt das Ganze von Grund auf neu einzugeben, könnten Sie Folgendes ausführen:

nano! $

Das! $würde bash automatisch das letzte Argument Ihres vorherigen Befehls ausfüllen.

Nur dieses füllt das letzte Argument aus. Wenn Sie alsoping google.com -c 4ausführen und dannping! $ausführen, wird dies auf "ping 4".

erweitert Um diese Situation zu beheben, können Sie den folgenden Trick verwenden, um das erste Argument in der Zeile und nicht den letzten zu erweitern:

Befehl! ^

Also, wenn Sieping google.com -c 4und dann rannteping! ^, bash würde dies auf "ping google.com" erweitern..

Um alle im vorherigen Befehl verwendeten Argumente zu füllen Als einziges Argument würden Sie Folgendes verwenden:

Befehl! *

Wenn Sie stattdessenping! *ausführen, füllt bash automatisch alle Argumente aus, die Sie im vorherigen Befehl verwendet haben .

Sie können den gleichen Trick verwenden, mit dem Sie Befehle aus Ihrem Verlauf ausführen, um Argumente von ihnen abzurufen.Verwenden Sie einfach das folgende Formular:

Befehl! Abc: #

Zum Beispiel haben wir den Befehl ausgeführtsudo hostname ubuntufrüher Wenn wir den folgenden Befehl ausführen, sucht bash rückwärts durch den Verlauf, um den letzten Befehl anzufangen ng mit den Buchstaben, die wir eingeben, und füllen Sie das von uns spezifizierte Argument aus. Also, wenn wirecho! Su: 2ausführen, sucht bash zurück, um den letzten Befehl zu finden, der mit "su" beginnt und sein zweites Argument, das ist, ausfüllt ubuntu".

Andere Tricks funktionieren wie Sie vielleicht erwarten. Wenn Sie zum Beispiel die Zahl durch ein Sternchen ersetzen, wird die bash alle Argumente aus dem Befehl ausfüllen:

Befehl! Abc: *

Führen Sie den vorherigen Befehl erneut aus und ändern Sie

Bash erlaubt auch Sie wiederholen den vorherigen Befehl und geben etwas an, das geändert werden soll. Dies kann nützlich sein, um einen Tippfehler in einem Befehl zu korrigieren. Mit dem folgenden Befehl wird beispielsweise der vorherige Befehl erneut ausgeführt, wobei der Text "abc" durch den Text "xyz" ersetzt wird.

^ abc ^ xyz

Für Beispiel: Wenn Sie versehentlichping gogle.comausgeführt haben, können Sie^ gog ^ googausführen und bash würde stattdessen den Befehlping google.comausführen

Wo Ihr Protokoll gespeichert ist und wie es gelöscht wird

Die Bash-Shell speichert den Verlauf der Befehle, die Sie in der Verlaufsdatei Ihres Benutzerkontos ausgeführt haben, standardmäßig in ~ / .bash_history. Wenn Ihr Benutzername beispielsweise "bob" lautet, finden Sie diese Datei unter /home/bob/.bash_history.

Da Ihr Verlauf in einer Datei gespeichert ist, bleibt er zwischen den Sitzungen bestehen. Sie können einige Befehle ausführen, sich abmelden und am nächsten Tag wiederkommen. Diese Befehle befinden sich immer noch in Ihrer Verlaufsdatei und können angezeigt und verwendet werden. Jedes Benutzerkonto hat eine eigene Verlaufsdatei mit einem separaten Befehlsverlauf.

Um Ihr Bash-Verlauf zu löschen, können Sie den folgenden Befehl ausführen. Dadurch wird der Inhalt der .bash_history-Datei Ihres Benutzerkontos gelöscht:

history -c

Bash merkt sich standardmäßig nur eine begrenzte Anzahl von Befehlen, sodass die Verlaufsdatei nicht zu groß wird. Die Anzahl der History-Einträge, die bash speichert, wird vongesteuertHISTSIZEVariable. Der Standardwert ist normalerweise 500 oder 1000 Einträge. Sie können den folgenden Befehl ausführen, um die Größe des Bash-Verlaufs auf Ihrem System anzuzeigen:

echo $ HISTSIZE

Führen Sie den folgenden Befehl aus, um Ihren Verlauf auf Null zu setzen:

HISTSIZE = 0

Für den In der aktuellen Session speichert bash keine History-Einträge, es sei denn, Sie führen einen Befehl wieHISTSIZE = 1000aus, um ihn auf eine bestimmte Anzahl von Einträgen zurückzusetzen.

Spaces und Duplikate ignorieren

Bash erlaubt es Ihnen, Historieneinträge zu ignorieren, die mit einem Leerzeichen beginnen, wenn Sie die VariableHISTCONTROLaufignorespace setzen

HISTCONTROL = ignorespace

Geben Sie ein Leerzeichen vor einem Befehl ein, bevor Sie es in der Bash ausführen Shell und der Befehl werden normal ausgeführt, aber nicht im Verlauf angezeigt, wenn diese Variable aktiviert ist. Auf diese Weise können Sie Ihren Verlauf etwas sauberer halten, indem Sie Befehle ausführen, ohne dass diese im Verlauf angezeigt werden.

Mit Bash können Sie auch doppelte Befehle ignorieren, die Ihren Verlauf überladen können. Setzen Sie dazuHISTCONTROLaufignoredups.

HISTCONTROL = ignoredups

Um die Funktionenignorespaceundignoredupszu verwenden, setzen Sie dieHISTCONTROLVariable bisIgnoriere beide.

HISTCONTROL = Ignoriere beide

Beachten Sie, dass die von Ihnen gesetzten Bash-Variablen nur für die aktuelle Sitzung bestehen bleiben. Sie müssen diese zur Bashrc-Datei Ihres Benutzerkontos hinzufügen, damit diese Werte automatisch in jeder von Ihnen gestarteten Bash-Sitzung gesetzt werden, wenn Sie das bevorzugen.

Die Bash-Shell ist ein komplexes Werkzeug mit viel mehr Optionen als diesen. Sehen Sie sich die Bashs History Builtins und History Expansion Sections im offiziellen bash Handbuch an, die detailliertere Informationen und andere fortgeschrittene Tricks enthalten, die Sie verwenden können.


So schalten Sie Ihr Fernsehgerät automatisch mit der PlayStation 4 oder Pro ein HDMI-CEC verwenden

So schalten Sie Ihr Fernsehgerät automatisch mit der PlayStation 4 oder Pro ein HDMI-CEC verwenden

Rufen Sie es als kleinlaut an, aber es gibt nur etwas, wenn Sie das Einschalten des Fernsehers ausschalten deine PlayStation 4, die den gesamten Prozess schneller erscheinen lässt. Und die gute Nachricht ist, dass es einfach ist, diese Aktion in Ihrem Setup zu aktivieren. RELATED: So aktivieren Sie HDMI-CEC auf Ihrem Fernseher und warum sollten Sie Das ist natürlich Auch eine Funktion, die auf dem Fernseher unterstützt werden muss.

(how-top)

Fünf Funktionen, die wir für jedes Flagship-Android-Handy in diesem Jahr benötigen

Fünf Funktionen, die wir für jedes Flagship-Android-Handy in diesem Jahr benötigen

Wir sind jetzt fünf Monate im Jahr 2017 und haben bereits viele Android-Handys auf den Markt gebracht. Mit sieben (ish) Monaten im Jahr sind wir jedoch noch lange nicht fertig mit dem, woran die Hersteller gearbeitet haben. Ich habe viele Gedanken darüber, wo wir sind und wohin wir mit modernen Smartphones gehen sollten, aber Ich möchte den Fokus klar und einfach halten: Lassen Sie uns über die fünf wichtigsten Funktionen sprechen, die jedes Flaggschiff-Smartphone 2017 (und darüber hinaus) haben sollte.

(how-top)