Was ist der schnellste Weg, um in Linux Verlaufsbefehle neu zu laden, die mit bestimmten Zeichen beginnen?

Was ist der schnellste Weg, um in Linux Verlaufsbefehle neu zu laden, die mit bestimmten Zeichen beginnen?

Unter DOS können wir die ersten paar Zeichen eingeben, um den Befehlsverlauf zu filtern und schnell den richtigen Befehl zu finden. Aber wie macht man das Gleiche unter Linux?

zum Beispiel, wenn ich einen lokalen Server teste:

cd 
sudo /etc/init.d/vsftpd start
wget ...
ls
emacs ...
sudo /etc/init.d/vsftpd restart
sudo /etc/init.d/vsftpd stop
...

Unter DOS können Sie sudodie drei damit beginnenden Befehle ganz einfach mit den Pfeiltasten eingeben und zwischen ihnen wechseln. Aber ist der folgende Befehl unter Linux das Beste, was wir tun können?

historty | grep sudo

Mir gefällt das nicht, weil der Verlauf leicht unübersichtlich werden kann und außerdem eine Mausaktion erforderlich ist.

Antwort1

Tragen Sie Folgendes in Ihr ein ~/.inputrc:

"\e[A": history-search-backward
"\e[B": history-search-forward

Nach der Eingabe wird nach Befehlen gesucht, die mit sudobeginnen .Upsudo

(Sie müssen Bash neu starten.) (Unsicher, ob dies in CSH funktioniert.)

Antwort2

In Bash (und den meisten ähnlichen, auf Readline basierenden Anwendungen) können Sie durch Drücken Ctrl-Reine Verlaufssuchfunktion aufrufen:

$ date
Tue Feb  1 15:40:06 EET 2011
(reverse-i-search)`d': date

Wenn ich Enterhier drücke, erhalte ich:

$ date
Tue Feb  1 15:40:06 EET 2011
$ date
Tue Feb  1 15:40:52 EET 2011

BEARBEITEN:

Sie können die vollständige Liste der verlaufsbezogenen Bash-Tastenanschläge sehenHier.

Sie können die aktuelle Liste der Tastaturbelegungen für die Verlaufssuche sehen:

$ bind -P | grep search | grep history
forward-search-history can be found on "\C-s".
history-search-backward can be found on "\e[5~".
history-search-forward can be found on "\e[6~".
non-incremental-forward-search-history can be found on "\en".
non-incremental-forward-search-history-again is not bound to any keys
non-incremental-reverse-search-history can be found on "\ep".
non-incremental-reverse-search-history-again is not bound to any keys
reverse-search-history can be found on "\C-r".

In meinem Fall kann Bild-auf/Bild-ab auch verwendet werden, um nach Befehlen zu suchen, die mit dem beginnen, was ich bereits eingegeben habe, wie in meinem konfiguriert /etc/inputrc:

# Page Up/Down cycles through history only for matching entries
"\e[5~": history-search-backward       # Previous
"\e[6~": history-search-forward        # Next

Antwort3

Zusätzlich zu Ctrl+ Rkönnen Sie !sudo+ Enterin bash eingeben und es wird daszuletztBefehl, der mit beginnt sudo.

Antwort4

Geben Sie den ersten Buchstaben z. B. ein sudo, drücken Sie Ctrlund dann oder .

verwandte Informationen