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

So verwenden Sie Bash-Verlaufsbefehle

Bash hat eine reiche Geschichte. Das heißt, es ist eine alte Shell mit einem noch älteren Vorfahren (der Bourne-Shell), aber sie hat auch eine großartige history Befehl, der alle anderen Shell-History-Schnittstellen aufgrund seiner Anzahl von Funktionen übertrifft. Die Bash-Version von history ermöglicht umgekehrte Suchen, schnelles Abrufen, Umschreiben des Verlaufs und mehr.

Der history Befehl ist nicht wie viele andere Befehle. Möglicherweise sind Sie daran gewöhnt, dass Befehle ausführbare Dateien sind, die an gemeinsamen Speicherorten auf Systemebene wie /usr/bin abgelegt werden , /usr/local/bin , oder ~/bin . Der eingebaute history Befehl befindet sich nicht in Ihrem PATH und hat keinen physischen Standort:

$ which history

which: no history in [PATH]

Stattdessen history ist eine eingebaute Funktion der Shell selbst:

$ type history
history is a shell builtin
$ help history
history: history [-c] [-d offset] [n] or
history -anrw [filename] or
history -ps arg [arg...]

Display or manipulate the history list.
[...]

Aus diesem Grund ist die Verlaufsfunktion in jeder Shell einzigartig, sodass das, was Sie in Bash verwenden, möglicherweise nicht in Tcsh, Fish oder Dash funktioniert, und was Sie in diesen verwenden, funktioniert möglicherweise nicht in Bash. In einigen Fällen kann das Wissen, was Bash kann, Benutzer anderer Shells dazu inspirieren, interessante Hacks zu erstellen, um das Bash-Verhalten zu klonen, und es kann Bash-Funktionen freischalten, von denen Sie nie wussten, dass sie existieren.

Sehen Sie sich Ihren Bash-Verlauf an

Die grundlegendste und häufigste Verwendung des history Befehl ist, einen Verlauf Ihrer Shell-Sitzung anzuzeigen:

$ echo "hello"
hello
$ echo "world"
world
$ history
  1  echo "hello"
  2  echo "world"
  3  history

Ereignisbezeichner

Weitere Linux-Ressourcen

  • Spickzettel für Linux-Befehle
  • Spickzettel für fortgeschrittene Linux-Befehle
  • Kostenloser Online-Kurs:RHEL Technical Overview
  • Spickzettel für Linux-Netzwerke
  • SELinux-Spickzettel
  • Spickzettel für allgemeine Linux-Befehle
  • Was sind Linux-Container?
  • Unsere neuesten Linux-Artikel

Ereignisbezeichner durchsuchen Ihren Verlauf nach Ereignis. Ein Ereignis in diesem Zusammenhang handelt es sich um einen in Ihrem Verlauf protokollierten Befehl, der durch ein Zeilenumbruchzeichen gekennzeichnet ist. Mit anderen Worten, es ist eine Zeile, die durch eine Indexnummer als Referenz gekennzeichnet ist.

Ereignisbezeichner beginnen meistens mit einem Ausrufezeichen, manchmal auch als Knall bezeichnet (! ).

Um einen Befehl aus Ihrem Verlauf erneut auszuführen, verwenden Sie das Ausrufezeichen, unmittelbar gefolgt (ohne Leerzeichen) von der Indexnummer des gewünschten Befehls. Angenommen, Zeile 1 enthält den Befehl echo "hello" , und Sie möchten es erneut ausführen:

$ !1
echo "hello"
hello

Sie können die relative Positionierung verwenden, indem Sie eine negative Anzahl von Zeilen zurück von Ihrer aktuellen Position im Verlauf angeben. Zum Beispiel, um drei Einträge im Verlauf zurückzugehen:

$ echo "foo"
foo
$ echo "bar"
bar
$ echo "baz"
baz
$ !-3
echo "foo"
foo

Wenn Sie nur eine Zeile zurück gehen, können Sie die Abkürzung !! verwenden statt !-1 . Das ist eine Einsparung von einem ganzen Tastendruck!

$ echo "foo"
$ !!
echo "foo"
foo

Sie können auch nach einer bestimmten Zeichenfolge durch die Einträge suchen, umgekehrt, um einen Befehl auszuführen. So suchen Sie nach einem Befehl beginnend Verwenden Sie bei einer bestimmten Zeichenfolge ein Ausrufezeichen, unmittelbar gefolgt (ohne Leerzeichen) von der Zeichenfolge, nach der Sie suchen möchten:

$ echo "foo"
$ true
$ false
$ !echo
echo "foo"
foo

Sie können auch nach einem Befehl suchen, der an beliebiger Stelle (nicht nur am Anfang) eine Zeichenkette enthält. Verwenden Sie dazu ! plus die Zeichenfolge, nach der Sie suchen, wie üblich, aber umgeben Sie die Zeichenfolge mit Fragezeichen an beiden Enden. Sie können das abschließende Fragezeichen weglassen, wenn Sie wissen, dass auf die Zeichenfolge unmittelbar ein Zeilenumbruchzeichen folgt (was bedeutet, dass Sie das letzte Zeichen eingegeben haben, bevor Sie Return gedrückt haben ):

$ echo "foo"
$ true
$ false
$ !?foo?
echo "foo"
foo

String-Ersetzung

Ähnlich wie bei der Suche nach Zeichenfolgen am Anfang einer Zeile können Sie nach einer Zeichenfolge suchen und diese durch eine neue Zeichenfolge ersetzen, indem Sie den Befehl ändern:

$ echo "hello"
hello
$ echo "world"
world
$ ^hello^foo
echo "foo"
foo

Verlauf nützlich machen

In Bash kann der History-Befehl viel mehr als das, was hier behandelt wurde, aber dies ist ein guter Anfang, um sich an die Verwendung zu gewöhnen Ihre Geschichte, anstatt sie nur als Referenz zu behandeln. Verwenden Sie den history Befehle oft und sehen Sie, wie viel Sie tun können, ohne Befehle eingeben zu müssen. Lassen Sie sich überraschen!


Linux
  1. So verwenden Sie den Verlaufsbefehl unter Linux

  2. So ändern Sie die Anzahl der im Bash-Verlauf gespeicherten Befehle

  3. Wie kann ich Alias-Befehle mit xargs verwenden?

  4. Wie man eine Gruppe von Befehlen in Bash ausschaltet

  5. Gewusst wie:Unbegrenzter Bash/Shell-Verlauf?

So verwenden Sie den Bash-Lesebefehl

So verwenden Sie benutzerdefinierte Befehle in LibreOffice

So verwenden Sie Bash-Dateitestoperatoren in Linux

So installieren Sie FFmpeg unter Linux und verwenden Befehle

3 nützliche Tipps zur Verwendung des Verlaufsbefehls unter Linux

So verwenden Sie Linux-FTP-Befehle