No Dos, podemos inserir os primeiros caracteres para filtrar o histórico de comandos e encontrar o correto rapidamente. Mas como fazer a mesma coisa no Linux?
por exemplo, quando estou testando um servidor local:
cd
sudo /etc/init.d/vsftpd start
wget ...
ls
emacs ...
sudo /etc/init.d/vsftpd restart
sudo /etc/init.d/vsftpd stop
...
No Dos, você pode digitar sudo
e alternar facilmente entre os três comandos que começam com ele usando as teclas de seta. Mas no Linux, o comando abaixo é o melhor que podemos fazer?
historty | grep sudo
Não gosto disso, porque a história pode facilmente se tornar uma bagunça e também precisa da ação do mouse.
Responder1
Coloque o seguinte no seu ~/.inputrc
:
"\e[A": history-search-backward
"\e[B": history-search-forward
Depois de digitar sudo
, Upprocurará comandos começando com sudo
.
(Você terá que reiniciar o bash.) (Não tenho certeza se isso funciona no csh.)
Responder2
No Bash (e na maioria dos aplicativos baseados em readline), você pode pressionar Ctrl-R
para abrir uma função de pesquisa de histórico:
$ date
Tue Feb 1 15:40:06 EET 2011
(reverse-i-search)`d': date
Pressionando Enter
aqui eu obtenho:
$ date
Tue Feb 1 15:40:06 EET 2011
$ date
Tue Feb 1 15:40:52 EET 2011
EDITAR:
Você pode ver a lista completa de pressionamentos de teclas Bash relacionados ao históricoaqui.
Você pode ver a lista atual de ligações de teclado de pesquisa de histórico:
$ 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".
No meu caso, Page-Up/Down também pode ser usado para procurar comandos que comecem com o que eu já digitei, conforme configurado em meu /etc/inputrc
:
# Page Up/Down cycles through history only for matching entries
"\e[5~": history-search-backward # Previous
"\e[6~": history-search-forward # Next
Responder3
Além de Ctrl+ R, você pode digitar !sudo
+ Enterno bash e ele executará odurarcomando começando com sudo
.
Responder4
Digite a primeira letra como sudo
, pressione Ctrle depois ↑ou ↓.