Im Terminal kann ich Ctrl+ eingeben R, um nach einem passenden Befehl zu suchen, der zuvor in BASH eingegeben wurde. Wenn ich beispielsweise Ctrl+ Rund dann eingebe grep
, wird mein letzter Befehl aufgelistet grep
und ich kann die Eingabetaste drücken, um ihn zu verwenden. Dies gibt jedoch nur einen Vorschlag. Gibt es eine Möglichkeit, durch andere zuvor eingegebene passende Befehle zu blättern?
Antwort1
CtrlWenn ich die Frage richtig verstehe, sollten Sie durch wiederholtes Drücken von + durch die Alternativen blättern können R.
Z.B:
- Ctrl+R
grep
- Ctrl+R
- Ctrl+ R ...
Damit wird Ihr Verlauf rückwärts durchsucht. Um stattdessen vorwärts zu suchen, verwenden Sie Ctrl+ S, aber Sie müssen vorher möglicherweise set: stty -ixon
(entweder per oder manuell) verwendet haben, um die XON/XOFF-Funktion zu deaktivieren, die + übernimmt . Wenn dies trotzdem passiert, verwenden Sie + , um die Bildschirmausgabe wieder zu aktivieren (Weitere Details.bash_profile
CtrlSCtrlQHier.)
Antwort2
Wenn Sie meinen, dass der Befehl häufig verwendet wird, können Sie ein Tag hinzufügen
command #useful
Dann
Ctrl+R #useful
Dies funktioniert, weil #
es sich um ein Kommentartrennzeichen handelt, d. h. alles, was nach dem Symbol kommt, wird nicht als Befehl interpretiert. Es wird jedoch in der Historie aufgezeichnet und ist somit durchsuchbar.
Antwort3
Sie können die Auf- und Abwärtspfeile auch so einrichten, dass eine etwas andere Suche durchgeführt wird, indem Sie diese Zeilen zu ~/.inputrc hinzufügen:
"\e[A": history-search-backward
"\e[B": history-search-forward
Anstatt irgendwo im Befehl nach einer Teilzeichenfolge zu suchen (wieCtrl-r) wird nach einem Befehl gesuchtbeginnend mit dem Text links vom Cursor. Wenn ich beispielsweise diese Befehle ausführe:
$ ls bart
$ ls fools
Geben Sie dann ein ls
und drücken Sie Upzweimal. Es wird angezeigt ls bart
und der Cursor befindet sich an derselben Stelle. Vergleichen Sie mit Ctrl- r, wo das Zweifache in der letzten Zeile gefunden würde ls
. Sie müssten also noch einmal drücken, um die vorherige Zeile zu finden.
Beide Ansätze haben ihre Stärken und können viel Zeit sparen.
Antwort4
Es gibt einen Ersatz für eingebaute Ctrl + Rgenannthstr. Es ermöglicht unter anderem, den Befehlsverlauf nach allen Suchtoken gleichzeitig zu durchsuchen und mit den Pfeiltasten durch die Ergebnisse zu blättern:
Hier ist einDemo-Screencast.
Es kann auf einem Betriebssystem der Debian-Familie wie den folgenden installiert werden:
add-apt-repository ppa:ultradvorka/ppa
apt-get update
apt-get install hstr
hstr --show-configuration >> ~/.bashrc
Und dann verwenden Ctrl + R(nach erneutem Öffnen des Terminals).