Eine Terminal-Eingabeaufforderung auf einem Linux-Laptop-Computer.

Fatmawati Achmad Zaenuri/Shutterstock

Die Linux-Shell speichert einen Verlauf der von Ihnen ausgeführten Befehle, und Sie können sie durchsuchen, um Befehle zu wiederholen, die Sie in der Vergangenheit ausgeführt haben. Sobald Sie den Linux-Befehl History verstehen und wissen, wie er verwendet wird, kann er Ihre Produktivität erheblich steigern.



Geschichte manipulieren

Wie George Santayana sagte bekanntlich , Wer sich nicht an die Vergangenheit erinnern kann, ist dazu verdammt, sie zu wiederholen. Wenn Sie sich unter Linux nicht an die Vergangenheit erinnern können, können Sie sie leider nicht wiederholen, selbst wenn Sie möchten.

10 grundlegende Linux-Befehle für Anfänger VERBUNDEN 10 grundlegende Linux-Befehle für Anfänger

Das ist, wenn das Linux |_+_| Befehl ist praktisch. Es ermöglicht Ihnen, Ihre vorherigen Befehle zu überprüfen und zu wiederholen. Dies soll nicht nur Faulheit fördern oder Zeit sparen – es spielt auch ein Faktor der Effizienz (und Genauigkeit) eine Rolle. Je länger und komplizierter ein Befehl ist, desto schwieriger ist es, ihn sich zu merken und fehlerfrei einzugeben. Es gibt zwei Arten von Fehlern: eine, die die Ausführung des Befehls verhindert, und eine, die die Ausführung des Befehls zulässt, aber etwas Unerwartetes bewirkt.

Die |_+_| Befehl beseitigt diese Probleme. Wie die meisten Linux-Befehle es steckt mehr dahinter als du denkst . Wenn Sie jedoch lernen, die |_+_| Befehl, es kann Ihre Verwendung der Linux-Befehlszeile jeden Tag verbessern. Es ist eine gute Investition Ihrer Zeit. Es gibt viel bessere Möglichkeiten, die |_+_| . zu verwenden Befehl als nur wiederholtes Drücken des Aufwärtspfeils .

Das Geschichtskommando

In seiner einfachsten Form können Sie das |_+_| Befehl, indem Sie einfach seinen Namen eingeben:

history

Anzeige

Die Liste der zuvor verwendeten Befehle wird dann in das Terminalfenster geschrieben.

Die Befehle sind nummeriert, wobei die zuletzt verwendeten (die mit den höchsten Nummern) am Ende der Liste stehen.

Um eine bestimmte Anzahl von Befehlen anzuzeigen, können Sie eine Zahl an |_+_| . übergeben auf der Kommandozeile. Um beispielsweise die letzten 10 von Ihnen verwendeten Befehle anzuzeigen, geben Sie Folgendes ein:

history

Sie können das gleiche Ergebnis erzielen, wenn Sie Rohr |_+_| durch das |_+_| Befehl . Geben Sie dazu Folgendes ein:

history

VERBUNDEN: Wie man Pipes unter Linux verwendet

Wiederholen von Befehlen

Wenn Sie einen Befehl aus der Verlaufsliste wiederverwenden möchten, geben Sie ein Ausrufezeichen (!) und die Nummer des Befehls ohne Leerzeichen dazwischen ein.

Um beispielsweise Befehl Nummer 37 zu wiederholen, geben Sie diesen Befehl ein:

history

Anzeige

Um den letzten Befehl zu wiederholen, geben Sie erneut zwei Ausrufezeichen ohne Leerzeichen ein:

history

Dies kann nützlich sein, wenn Sie einen Befehl ausgeben und vergessen, |_+_| . zu verwenden . Geben Sie |_+_|, ein Leerzeichen, die doppelten Ausrufezeichen ein und drücken Sie dann die Eingabetaste.

Für das folgende Beispiel haben wir einen Befehl eingegeben, der |_+_| erfordert. Anstatt die gesamte Zeile erneut einzugeben, können wir uns eine Reihe von Tastenanschlägen sparen und einfach |_+_| eingeben, wie unten gezeigt:

history history

Sie können also die entsprechende Zahl aus der Liste eingeben, um einen Befehl zu wiederholen, oder die doppelten Ausrufezeichen verwenden, um den zuletzt verwendeten Befehl zu wiederholen. Was aber, wenn Sie den fünften oder achten Befehl wiederholen möchten?

Sie können ein Ausrufezeichen, einen Bindestrich (-) und die Nummer eines vorherigen Befehls (wieder ohne Leerzeichen) verwenden, um ihn zu wiederholen.

cbs all access abonnement kündigen

Um den 13. vorherigen Befehl zu wiederholen, geben Sie Folgendes ein:

tail

Suche nach Befehlen nach Zeichenfolge

Um den letzten Befehl zu wiederholen, der mit einer bestimmten Zeichenfolge beginnt, können Sie ein Ausrufezeichen und dann die Zeichenfolge ohne Leerzeichen eingeben und dann die Eingabetaste drücken.

Anzeige

Um beispielsweise den letzten Befehl zu wiederholen, der mit |_+_| begonnen hat, geben Sie diesen Befehl ein:

sudo

Darin liegt jedoch ein Element der Gefahr. Wenn der letzte Befehl, der mit |_+_| . begann ist nicht der, von dem Sie denken, dass er es ist, Sie werden den falschen Befehl starten.

Um ein Sicherheitsnetz bereitzustellen, können Sie jedoch die |_+_| . verwenden (Druck) Modifikator, wie unten gezeigt:

sudo

Dies weist |_+_| . an um den Befehl im Terminalfenster zu drucken, anstatt ihn auszuführen. Auf diese Weise können Sie den Befehl sehen, bevor Sie ihn verwenden. Wenn es der gewünschte Befehl ist, drücken Sie den Aufwärtspfeil und drücken Sie dann die Eingabetaste, um ihn zu verwenden.

Wenn Sie einen Befehl suchen möchten, der eine bestimmte Zeichenfolge enthält, können Sie ein Ausrufezeichen und ein Fragezeichen verwenden.

Anzeige

Um beispielsweise den ersten passenden Befehl zu finden und auszuführen, der das Wort aliases enthält, geben Sie diesen Befehl ein:

sudo

was ist windows verteidiger smartscreen

Dadurch wird jeder Befehl gefunden, der die String-Aliasnamen enthält, unabhängig davon, wo er in der Zeichenfolge vorkommt.

Interaktive Suche

Eine interaktive Suche ermöglicht es Ihnen, durch eine Liste passender Befehle zu springen und den gewünschten Befehl zu wiederholen.

Drücken Sie einfach Strg+r, um die Suche zu starten.

Ein Terminalfenster nach

Während Sie den Suchhinweis eingeben, wird der erste passende Befehl angezeigt. Die von Ihnen eingegebenen Buchstaben erscheinen zwischen dem Backtick (`) und dem Apostroph (‘). Die entsprechenden Befehle werden während der Eingabe jedes Buchstabens aktualisiert.

ZU

Jedes Mal, wenn Sie Strg+r drücken, suchen Sie rückwärts nach dem nächsten passenden Befehl, der im Terminalfenster angezeigt wird.

Wenn Sie die Eingabetaste drücken, wird der angezeigte Befehl ausgeführt.

Um einen Befehl zu bearbeiten, bevor Sie ihn ausführen, drücken Sie entweder die linke oder die rechte Pfeiltaste.

Anzeige

Der Befehl wird in der Befehlszeile angezeigt und Sie können ihn bearbeiten.

Ein Befehl in der Befehlszeile mit aktivierter Bearbeitung.

Sie können andere Linux-Tools verwenden, um die Verlaufsliste zu durchsuchen. Um beispielsweise die Ausgabe von |_+_| . weiterzuleiten in |_+_| und Suche nach Befehlen, die die Zeichenfolge . enthalten Aliase können Sie diesen Befehl verwenden:

sudo !!

Ändern des letzten Befehls

Wenn Sie einen Tippfehler korrigieren und den Befehl dann wiederholen müssen, können Sie ihn mit der Einfügemarke (^) ändern. Dies ist ein großartiger Trick, den Sie immer im Ärmel haben sollten, wenn Sie einen Befehl falsch schreiben oder einen mit einer anderen Befehlszeilenoption oder einem anderen Parameter erneut ausführen möchten.

Um es zu verwenden, geben Sie (ohne Leerzeichen) ein Caret-Zeichen, den zu ersetzenden Text, ein anderes Caret-Zeichen, den zu ersetzenden Text, ein anderes Caret-Zeichen ein, und drücken Sie dann die Eingabetaste.

Angenommen, Sie geben den folgenden Befehl ein und geben versehentlich shhd anstelle von sshd ein:

sudo

Sie können dies leicht korrigieren, indem Sie Folgendes eingeben:

sudo

wie man fotos verkleinert

Der Befehl wird mit shhd auf sshd korrigiert ausgeführt.

Löschen von Befehlen aus der Verlaufsliste

Mit |_+_| . können Sie auch Befehle aus der Verlaufsliste löschen (löschen) Option. Es gibt keinen Grund, Ihren falsch geschriebenen Befehl in der Verlaufsliste zu behalten.

Anzeige

Sie können |_+_| . verwenden um es zu finden, übergeben Sie seine Nummer an |_+_| mit dem |_+_| Option, um es zu löschen, und suchen Sie dann erneut, um sicherzustellen, dass es verschwunden ist:

:p history history

Sie können auch eine Reihe von Befehlen an |_+_| . übergeben Möglichkeit. Um alle Listeneinträge von 22 bis 32 (einschließlich) zu löschen, geben Sie diesen Befehl ein:

grep

Um nur die letzten fünf Befehle zu löschen, können Sie eine negative Zahl wie folgt eingeben:

-d

Manuelles Aktualisieren der Verlaufsdatei

Wenn Sie sich anmelden oder eine Terminalsitzung öffnen, wird die History-Liste aus der History-Datei eingelesen. In Bash ist die Standardverlaufsdatei |_+_|.

Alle Änderungen, die Sie in Ihrer aktuellen Terminalfenstersitzung vornehmen, werden nur in die Verlaufsdatei geschrieben, wenn Sie das Terminalfenster schließen oder sich abmelden.

Angenommen, Sie möchten ein weiteres Terminalfenster öffnen, um auf die vollständige Verlaufsliste zuzugreifen, einschließlich der Befehle, die Sie im ersten Terminalfenster eingegeben haben. Die |_+_| Mit der Option (all) können Sie dies im ersten Terminalfenster tun, bevor Sie das zweite öffnen.

Geben Sie Folgendes ein, um es zu verwenden:

grep

Die Befehle werden stillschweigend in die History-Datei geschrieben.

Anzeige

Wenn Sie alle Änderungen an der History-Liste in die History-Datei schreiben möchten (wenn Sie beispielsweise einige alte Befehle gelöscht haben), können Sie die |_+_| (schreiben) Option, wie folgt:

history

Löschen der Verlaufsliste

Um alle Befehle aus der Verlaufsliste zu löschen, können Sie die |_+_| (klare) Option, wie folgt:

-d

Wenn Sie diese Änderungen zusätzlich an der Verlaufsdatei erzwingen möchten, verwenden Sie die |_+_| Möglichkeit, wie folgt:

-d

Sicherheit und Verlaufsdatei

Wenn Sie Anwendungen verwenden, bei denen Sie vertrauliche Informationen (wie Kennwörter) in die Befehlszeile eingeben müssen, denken Sie daran, dass dies auch in der Verlaufsdatei gespeichert wird. Wenn Sie bestimmte Informationen nicht speichern möchten, können Sie diese mit der folgenden Befehlsstruktur sofort aus der Verlaufsliste löschen:

.bash_history -a

Diese Struktur enthält zwei Befehle, die durch ein Semikolon (;) getrennt sind. Lassen Sie uns das aufschlüsseln:

    Spezial-App: Der Name des von uns verwendeten Programms. mein-geheimes-passwort: Das geheime Passwort, das wir für die Anwendung in der Befehlszeile angeben müssen. Dies ist das Ende von Befehl eins. Geschichte -d: In Befehl zwei rufen wir die |_+_| (Löschen) Option von |_+_|. Was wir löschen werden, steht im nächsten Teil des Befehls. $(Verlauf 1): Dies verwendet eine Befehlsersetzung. Der Teil des Befehls, der in |_+_| . enthalten ist wird in einer Subshell ausgeführt. Das Ergebnis dieser Ausführung wird als Text im ursprünglichen Befehl angezeigt. Die |_+_| Befehl gibt den vorherigen Befehl zurück. Sie können sich den zweiten Befehl also als history -d letzter Befehl hier vorstellen.

Sie können die |_+_| Befehl, um sicherzustellen, dass der Befehl mit dem Kennwort aus der Verlaufsliste entfernt wurde.

Anzeige

Es gibt jedoch einen noch einfacheren Weg, dies zu tun. Da Bash standardmäßig Zeilen ignoriert, die mit einem Leerzeichen beginnen, fügen Sie einfach ein Leerzeichen wie folgt am Anfang der Zeile ein:

-w -c

Der Befehl mit dem Passwort wird nicht zur Verlaufsliste hinzugefügt. Der Grund, warum dieser Trick funktioniert, ist in der |_+_| . enthalten Datei.

Die .bashrc-Datei

Die |_+_| Datei wird jedes Mal ausgeführt, wenn Sie sich anmelden oder ein Terminalfenster öffnen. Es enthält auch einige Werte, die das Verhalten des |_+_| . steuern Befehl. Lasst uns bearbeite diese Datei mit |_+_| .

Geben Sie Folgendes ein:

-w

Oben in der Datei sehen Sie zwei Einträge:

  • -d : Die maximale Anzahl von Einträgen, die die Verlaufsliste enthalten kann.
  • history : Die Grenze für die Anzahl der Zeilen, die eine Verlaufsdatei enthalten kann.

Diese beiden Werte interagieren auf folgende Weise:

  • Wenn Sie sich anmelden oder eine Terminalfenstersitzung starten, wird die Verlaufsliste aus den |_+_| Datei.
  • Wenn Sie ein Terminalfenster schließen, wird die maximale Anzahl von Befehlen in |_+_| werden im |_+_| . gespeichert Datei.
  • Wenn die |_+_| Shell-Option aktiviert ist, werden die Befehle an |_+_| angehängt. Wenn |_+_| ist nicht eingestellt, |_+_| wird überschrieben.
  • Nach dem Speichern der Befehle aus der Verlaufsliste in |_+_| , wird die Verlaufsdatei so gekürzt, dass sie nicht mehr als |_+_| . enthält Linien.

Ebenfalls oben in der Datei sehen Sie einen Eintrag für das |_+_| Wert.

Der

Sie können diesen Wert für eine der folgenden Aktionen festlegen:

  • |_+_|Zeilen, die mit einem Leerzeichen beginnen, werden nicht zur Verlaufsliste hinzugefügt.
  • |_+_|Doppelte Befehle werden der Verlaufsdatei nicht hinzugefügt.
  • |_+_|Aktiviert beides.
Anzeige

Sie können auch bestimmte Befehle auflisten, die Sie nicht zu Ihrer Verlaufsliste hinzufügen möchten. Trennen Sie diese durch einen Doppelpunkt (:) und setzen Sie sie in Anführungszeichen (…).

Sie würden dieser Struktur folgen, um Ihrem |_+_| . eine Zeile hinzuzufügen Datei und ersetzen Sie die Befehle, die ignoriert werden sollen:

$()

Ein

Verwenden von Zeitstempeln

Wenn Sie der Verlaufsliste Zeitstempel hinzufügen möchten, können Sie |_+_| . verwenden Einstellung. Fügen Sie dazu einfach eine Zeile wie die folgende zu Ihrem |_+_| . hinzu Datei:

history 1

Beachten Sie, dass vor den schließenden Anführungszeichen ein Leerzeichen steht. Dadurch wird verhindert, dass der Zeitstempel an die Befehle in der Befehlsliste angrenzt.

Ein

Wenn Sie nun den Befehl history ausführen, sehen Sie Datums- und Zeitstempel. Beachten Sie, dass alle Befehle, die sich in der Verlaufsliste befanden, bevor Sie die Zeitstempel hinzugefügt haben, mit dem Datum und der Uhrzeit des ersten Befehls versehen werden, der einen Zeitstempel empfängt. In diesem unten gezeigten Beispiel war dies der Befehl 118.

Das ist ein sehr langatmiger Zeitstempel. Sie können jedoch andere Token als |_+_| . verwenden es zu verfeinern. Die anderen Token, die Sie verwenden können, sind:

    history 5:Tag .bashrc:Monat .bashrc:Jahr history:Stunde gedit:Protokoll HISTSIZE :Sekunden HISTFILESIZE:Vollständiges Datum (Jahr-Monat-Datum-Format) .bash_history:Uhrzeit (Stunde:Minuten:Sekunden-Format)
  • HISTSIZE : Vollständiger Datums- und Zeitstempel (Tag-Datum-Monat-Jahr und Stunde:Minuten:Sekunden-Formate)

Lassen Sie uns experimentieren und ein paar verschiedene Token verwenden:

.bash_history

Der Export HISTTIMEFORMAT=

Die Ausgabe verwendet Tag, Monat und Uhrzeit.

Anzeige

Wenn wir jedoch Tag und Monat entfernen, wird nur die Uhrzeit angezeigt.

Alle Änderungen, die Sie an |_+_| . vornehmen gelten für die gesamte Historienliste. Dies ist möglich, da die Uhrzeit für jeden Befehl als Anzahl der Sekunden aus der Unix-Epoche . Die |_+_|-Anweisung gibt einfach das Format an, das verwendet wird, um diese Anzahl von Sekunden in einen für Menschen lesbaren Stil zu rendern, wie zum Beispiel:

histappend

Der

Windows 10 sauber installieren kostenlos

Unsere Ausgabe ist jetzt überschaubarer.

Sie können auch die |_+_| Befehl zur Prüfung. Manchmal Überprüfung Befehle Sie in der Vergangenheit verwendet haben, können Ihnen dabei helfen, herauszufinden, was ein Problem verursacht haben könnte.

Wie im Leben können Sie unter Linux die |_+_| Befehl, die guten Zeiten noch einmal zu erleben und aus den schlechten zu lernen.

VERBUNDEN: 37 wichtige Linux-Befehle, die Sie kennen sollten

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