Qual é a maneira mais rápida de recarregar os comandos do histórico que começam com determinados caracteres no Linux?

Qual é a maneira mais rápida de recarregar os comandos do histórico que começam com determinados caracteres no Linux?

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 sudoe 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-Rpara abrir uma função de pesquisa de histórico:

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

Pressionando Enteraqui 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 .

informação relacionada