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 sudo
die 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 sudo
beginnen .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-R
eine Verlaufssuchfunktion aufrufen:
$ date
Tue Feb 1 15:40:06 EET 2011
(reverse-i-search)`d': date
Wenn ich Enter
hier 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 ↓.