So verwenden Sie Ihren Bash-Verlauf im Linux- oder macOS-Terminal



Die Bash-Shell ist die Standard-Terminalumgebung, die in den meisten Linux-Distributionen enthalten ist, die in macOS enthalten sind, und verfügbar für die Installation unter Windows 10 . Es merkt sich die von Ihnen eingegebenen Befehle und speichert sie in einer Verlaufsdatei. Sie kennen wahrscheinlich ein paar Grundlagen der Bash-Historie, aber sie ist viel mächtiger, als Sie vielleicht denken.

Tastatürkürzel

VERBUNDEN: Die besten Tastenkombinationen für Bash (auch bekannt als Linux- und macOS-Terminal)





Um durch Ihren Bash-Verlauf zu scrollen, können Sie einige von Die vielen nützlichen Tastenkombinationen von bash . Drücken Sie diese Tastenkombinationen und Befehle, die Sie zuvor verwendet haben, werden an der Eingabeaufforderung angezeigt.

    Aufwärtspfeiloder Strg+P : Gehen Sie zum vorherigen Befehl in Ihrem Verlauf. Drücken Sie die Taste mehrmals, um rückwärts durch die von Ihnen verwendeten Befehle zu gehen. Pfeil nach untenoder Strg+N : Gehe zum nächsten Befehl in deinem Verlauf. Drücken Sie die Taste mehrmals, um vorwärts durch die von Ihnen verwendeten Befehle zu gehen. Alt + R: Machen Sie alle Änderungen an einem Befehl rückgängig, den Sie aus Ihrem Verlauf gezogen haben, wenn Sie ihn in der aktuellen Zeile bearbeitet haben.

Bash verfügt auch über einen speziellen Abrufmodus, mit dem Sie nach Befehlen suchen können, die Sie zuvor ausgeführt haben, anstatt sie einzeln durchzublättern.



    Strg+R: Rufen Sie den letzten Befehl auf, der den von Ihnen angegebenen Zeichen entspricht. Drücken Sie diese Verknüpfung 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.

Sehen Sie sich Ihren Bash-Verlauf an

Sie können Ihren gesamten Bash-Verlauf auf den Bildschirm drucken, indem Sie einen einzigen Befehl ausführen:

grep

Sie sehen eine Liste aller Befehle in Ihrem Bash-Verlauf, zusammen mit einer Nummer links von jedem. Der Befehl mit einer 1 daneben ist der älteste Befehl in Ihrem Bash-Verlauf, während der Befehl mit der höchsten Nummer der neueste ist.



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

Sie können mit der Ausgabe alles machen, was Sie möchten. Du könntest zum Beispiel Pfeife es zum |_+_|Befehl, um Ihren Befehlsverlauf zu durchsuchen.

tail

Anzeige

Sie können es auch an den |_+_|-Befehl weiterleiten, 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

Führen Sie Befehle aus Ihrem Verlauf aus

Bash kann vorherige Befehle schnell erweitern oder sie erweitern und ändern. Diese Funktion wird als Verlaufserweiterung bezeichnet und verwendet ein Ausrufezeichen, das als Knall bezeichnet wird. Geben Sie sie einfach an der Eingabeaufforderung ein und drücken Sie die Eingabetaste, um sie wie jeden anderen Befehl auszuführen.

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

!-2

Angenommen, Sie möchten den 12. Befehl aus Ihrem Bash-Verlauf ausführen. Das ist der Befehl mit einer 12 links davon, wenn Sie den Befehl |_+_| ausführen. Sie würden den folgenden Befehl eingeben.

!!

Geben Sie Folgendes ein, um den zuletzt ausgeführten Befehl erneut auszuführen. Dies hat die gleiche Wirkung wie das einmalige Drücken des Aufwärtspfeils, um den vorherigen Befehl anzuzeigen und dann die Eingabetaste.

!-1Anzeige

Sie können auch auf einen Befehl eine bestimmte Anzahl von Zeilen zurückgreifen. Zum Beispiel |_+_| würde den vorletzten Befehl ausführen, den Sie ausgeführt haben. |_+_| bedeutet dasselbe wie |_+_| |_+_|.

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

Oder Sie könnten zum Beispiel den vorherigen Befehl erneut ausführen und seine Ausgabe an grep weiterleiten, um nach Text zu suchen.

!!

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

sudo

Wenn Sie also kürzlich einen Befehl ausgeführt haben, der mit |_+_| begann, können Sie den folgenden Befehl ausführen, um danach zu suchen. Dies durchsucht Ihren Verlauf rückwärts, sucht den neuesten Befehl, der mit |_+_| beginnt, und führt ihn sofort aus:

sudo

Du kannst ein |_+_| . anhängen zu einer der oben genannten Erweiterungen und bash gibt den Befehl an das Terminal aus, ohne ihn auszuführen. Dies ist nützlich, wenn Sie bestätigen möchten, dass Sie den richtigen Befehl auswählen, bevor Sie ihn ausführen.

ping pi :p

Wiederverwenden von Argumenten aus Ihrem Verlauf

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

touch /home/chris/some_long_file_name_you_dont_want_to_type_againAnzeige

Angenommen, Sie haben den Befehl |_+_| . ausgeführt . Sie möchten nun den Befehl |_+_| ausführen. Anstatt das Ganze von Grund auf neu einzugeben, könnten Sie Folgendes ausführen:

nano /home/chris/some_long_file_name_you_dont_want_to_type_again

Die |_+_| würde bash automatisch das letzte Argument Ihres vorherigen Befehls ausfüllen lassen.

Dies füllt nur das letzte Argument aus. Also, wenn du |_+_| . läufst und dann laufe |_+_| , würde dies einfach zu |_+_| erweitert werden.

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

!$

Also, wenn du |_+_| . ausgeführt hast und dann lief |_+_| , würde bash dies auf |_+_| erweitern.

Anzeige

Um alle im vorherigen Befehl verwendeten Argumente anstelle eines einzelnen Arguments einzugeben, verwenden Sie Folgendes:

ping google.com -c 4

Also, wenn du |_+_| . ausgeführt hast Stattdessen würde bash automatisch alle Argumente ausfüllen, die Sie im vorherigen Befehl verwendet haben.

Sie können denselben Trick verwenden, mit dem Sie Befehle aus Ihrem Verlauf ausführen, um Argumente von ihnen zu erhalten. Nutzen Sie einfach das folgende Formular.

ping !$

Zum Beispiel haben wir den Befehl |_+_| . ausgeführt vorhin. Wenn wir den folgenden Befehl ausführen, durchsucht die bash den Verlauf rückwärts, um den letzten Befehl zu finden, der mit den von uns eingegebenen Buchstaben beginnt, und trägt das von uns angegebene Argument ein. Wenn wir also |_+_| . ausführen , sucht bash zurück, um den letzten Befehl zu finden, der mit |_+_| . beginnt und geben Sie das zweite Argument ein, das |_+_| ist.

Andere Tricks funktionieren, wie Sie vielleicht erwarten. Wenn Sie beispielsweise die Zahl durch ein Sternchen ersetzen, das als Platzhalter bezeichnet wird, füllt bash alle Argumente des Befehls aus:

ping 4

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

Bash ermöglicht es Ihnen auch, den vorherigen Befehl erneut auszuführen und etwas anzugeben, das geändert werden soll. Dies kann nützlich sein, um einen Tippfehler in einem Befehl zu korrigieren. Der folgende Befehl führt beispielsweise den vorherigen Befehl erneut aus und ersetzt den Text |_+_| darin mit dem Text |_+_|.

ping google.com -c 4Anzeige

Wenn Sie beispielsweise aus Versehen |_+_| ausgeführt haben, könnten Sie dann |_+_| . ausführen und bash würde den Befehl |_+_| . ausführen stattdessen.

Wo Ihr Verlauf gespeichert ist und wie Sie ihn löschen können

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

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

Um Ihren 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:

ping !^

Bash merkt sich standardmäßig nur eine begrenzte Anzahl von Befehlen, wodurch verhindert wird, dass die Verlaufsdatei zu groß wird. Die Anzahl der History-Einträge, die sich die Bash merken kann, wird durch die Variable |_+_| gesteuert. 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.

ping google.com'

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

ping !*Anzeige

Für die aktuelle Sitzung speichert die bash keine Verlaufseinträge, es sei denn, Sie führen einen Befehl wie |_+_| . aus um es auf eine bestimmte Anzahl von Einträgen zurückzusetzen.

So ignorieren Sie Leerzeichen und Duplikate

Mit Bash können Sie Verlaufseinträge ignorieren, die mit einem Leerzeichen beginnen, wenn Sie die Variable |_+_| auf |_+_| . setzen

sudo hostname ubuntu

Geben Sie ein Leerzeichen vor einem Befehl ein, bevor Sie ihn in der Bash-Shell ausführen, und der Befehl wird normal ausgeführt, wird jedoch nicht in Ihrem Verlauf angezeigt, wenn Sie diese Variable aktiviert haben. Auf diese Weise können Sie Ihren Verlauf ein wenig sauberer halten und Befehle ausführen, ohne dass sie in Ihrem Verlauf erscheinen.

Mit Bash können Sie auch doppelte Befehle ignorieren, die Ihren Verlauf überladen können. Setzen Sie dazu |_+_|auf |_+_|

echo !su:2

Um sowohl die |_+_|- als auch die |_+_|-Funktion zu verwenden, stellen Sie die |_+_| variabel auf |_+_|

suAnzeige

Beachten Sie, dass von Ihnen festgelegte Bash-Variablen nur für die aktuelle Sitzung bestehen bleiben. Sie müssen diese der .bashrc-Datei Ihres Benutzerkontos hinzufügen, damit diese Werte bei jeder gestarteten Bash-Sitzung automatisch festgelegt werden, wenn Sie dies bevorzugen.

Die Bash-Shell ist ein komplexes Werkzeug mit viel mehr Optionen als diese. Konsultieren Sie die Bash History Builtins und Verlaufserweiterung Abschnitten im offiziellen Bash-Handbuch detailliertere Informationen und andere fortgeschrittene Tricks, die Sie verwenden können.

Linux-Befehle
Dateien Teer · pv · Katze · tac · chmod · Griff · unterschied · sed · Mit · Mann · geschoben · popd · fsck · Testdisk · seq · fd · pandoc · CD · $PFAD · awk · beitreten · jq · falten · einzigartig · Journalctl · Schwanz · Zustand · ls · fstab · rauswerfen · weniger · chgrp · chown · rev · suchen · Saiten · Typ · umbenennen · Postleitzahl · entpacken · montieren · ummount · Installieren · fdisk · mkfs · rm · rmdir · rsync · df · gpg · wir · Nano · mkdir · von · ln · Patch · Konvertieren · rclon · Fetzen · SRM
Prozesse alias · Bildschirm · oben · nett · renice · Fortschritt · strace · System · tmux · chsh · Geschichte · beim · Charge · kostenlos · die · dmesg · Benutzermod · ps · chroot · xargs · tty · kleiner Finger · lsof · vmstat · Auszeit · Mauer · ja · töten · Schlaf · sudo · seine · Zeit · groupadd · Benutzermod · Gruppen · lshw · stilllegen · neu starten · halt · ausschalten · passwd · lscpu · crontab · Datum · bg · fg
Vernetzung netstat · Klingeln · Traceroute · ip · ss · Wer ist · fail2ban · bmon · Sie · Finger · nmap · ftp · Locken · wget · Wer · Wer bin ich · In · iptables · ssh-keygen · ufw

VERBUNDEN: Beste Linux-Laptops für Entwickler und Enthusiasten

WEITER LESEN Profilfoto von Chris Hoffman Chris Hoffmann
Chris Hoffman ist Chefredakteur von How-To Geek. Er schreibt über ein Jahrzehnt über Technologie und war zwei Jahre lang Kolumnist bei PCWorld. Chris hat für die New York Times geschrieben, wurde als Technologieexperte von Fernsehsendern wie Miamis NBC 6 interviewt und ließ sich von Nachrichtenagenturen wie der BBC über seine Arbeit berichten. Seit 2011 hat Chris über 2.000 Artikel geschrieben, die fast eine Milliarde Mal gelesen wurden – und das nur hier bei How-To Geek.
Vollständige Biografie lesen

Interessante Artikel