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

2

Em Dos, podemos inserir os primeiros caracteres para filtrar o histórico de comandos e localizar o próprio 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
...

Em Dos você pode facilmente digitar sudo e alternar entre os três comandos que começam com ele usando as teclas de seta. Mas no Linux, está abaixo do comando o melhor que podemos fazer?

historty | grep sudo

Eu não gosto disso, porque a história pode facilmente se tornar uma bagunça, e também precisa de ação do mouse.

    
por gerry 01.02.2011 / 14:37

4 respostas

6

Coloque o seguinte no seu ~/.inputrc :

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

Em seguida, depois de digitar sudo , Up procurará os comandos que começam com sudo .

(Você terá que reiniciar o bash.) (Não tem certeza se isso funciona em csh.)

    
por 01.02.2011 / 14:42
6

No Bash (e na maioria dos aplicativos baseados na linha de leitura), 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 recebo:

$ 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 relacionadas à história aqui .

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, o Page-Up / Down também pode ser usado para procurar por comandos que iniciem com qualquer coisa que eu já tenha digitado, conforme configurado no 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
    
por 01.02.2011 / 14:39
3

Além de Ctrl + R , você pode digitar !sudo + Enter no bash e ele executará o último comando iniciando com sudo .

    
por 01.02.2011 / 14:41
2

Digite a primeira letra como sudo , pressione Ctrl e, em seguida, ou .

    
por 11.05.2011 / 12:58

Tags