Geben Sie Ctrl Rin die Befehlszeile ein und geben Sie den vorherigen Befehl ein. Sobald ein Ergebnis angezeigt wird, können Ctrl RSie weitere Treffer anzeigen. Wenn der gewünschte Befehl angezeigt wird, drücken Sie einfachEnter
Beachten Sie, dass while Ctrl Rdie Standardeinstellung ist, wenn Sie den Befehl ( reverse-search-history
) an sich gebunden haben Ctrl Tmöchten, dies mit folgendem Befehl konfigurieren könnte:
'' \ Ct 'binden: Reverse-Search-History'
Es gibt eine ganze Reihe weiterer readline-bindbarer Befehle, die Ihnen ebenfalls zur Verfügung stehen. Schauen Sie sich die bash
Manpage an .
Bash bietet viele Möglichkeiten zum Suchen und Aufrufen des interaktiven Befehlsverlaufs. Das grundlegendste davon ist das history
eingebaute. Tippen Sie einfach:
$ Geschichte
Druckt eine Liste von Befehlen zusammen mit einem numerischen Index aus:
$ Geschichte 1 klar 2 ls -al 3 vim ~ / somefile.txt 4 geschichte $
Sie können dann jeden dieser Befehle mit ihrem numerischen Index ausführen, indem Sie den Index mit einem einzigen Befehl voranstellen !
, wie Mitch darauf hingewiesen hat:
$! 1
Führt den clear
Befehl aus. Die Geschichte builtin hat viele Funktionen selbst, Sie mehr in der sehen bash
und history
man - Seiten.
Sie können auch relative negative Offsets angeben, wenn Sie den !
Bezeichner verwenden. Wenn Sie unsere Verlaufsliste verwenden möchten, können Sie Folgendes ausführen vim
:
$! -2
Dies bedeutet im Grunde, dass bash den Befehl ausführen soll, den Sie "vor zwei Befehlen" ausgeführt haben. Um den vorherigen Befehl in der Verlaufsliste auszuführen, können wir einfach !!
(was nur eine Kurzform ist !-1
) verwenden.
Der !
Bezeichner beschränkt Sie nicht auf die numerische Angabe des auszuführenden Befehls. hayalci hat gezeigt, dass Sie die bash
Ausführung eines Befehls anweisen können, basierend auf dem Text, mit dem er beginnt (using !
) oder dem Text innerhalb des Befehls selbst (using !?
). Wenn wir clear
erneut unsere Beispielhistorienliste verwenden möchten, müssen wir nur noch Folgendes ausführen :
$! cl
und drücken Sie Enter. Und was ist mit vim
? Das ist so einfach wie:
$!? einige
Der wichtigste Punkt aus der Antwort von hayalci ist der Aufruf an das shopt
Builtin:
$ shopt -s histverify
Dadurch wird die Verlaufsüberprüfung aktiviert, sodass Befehle, die von,, und Bezeichnern abgeglichen werden !
, nicht blind ausgeführt werden, sondern stattdessen in der Befehlszeile ausgefüllt werden, sodass Sie sicherstellen können, dass sie vor der Ausführung nichts Böses tun. Dies ist umso wichtiger, wenn Sie als Root-Benutzer Befehle ausführen. Diese Option kann in Ihrer Startdatei so festgelegt werden, dass sie bei jeder Anmeldung festgelegt wird.!!
!?
.bashrc
Wie bereits erwähnt, können alle diese Informationen aus der bash
Manpage entnommen werden . Für die!, !! und!? Bezeichner finden Sie in Abschnitt 9.3 History Expansion .