Obtenha comandos anteriores no Terminal que correspondam ao comando atualmente digitado [duplicado]

7

Em alguns terminais você pode fazer algo assim ...

Digite algum comando

nmap -sn 192.168.1.1/24

Em seguida, continue fazendo outras coisas no terminal por um tempo. Então mais tarde você pode digitar

nmap

e depois pressione a tecla e ela indexará todos os comandos iniciados com o que você digitou, neste caso nmap por exemplo.

Meu exemplo foi muito curto, mas às vezes você digita um comando muito longo que deseja executar novamente, e eu sei que você pode pressionar até encontrá-lo novamente, mas isso passa por todos comando e pode demorar um pouco se você digitou há muito tempo.

Existe alguma maneira de fazer isso funcionar no Terminal do Ubuntu?

    
por Ryan Stull 16.04.2015 / 02:05

4 respostas

17

Sim, existe uma maneira muito simples de pesquisar em seu histórico de comandos. Quando no terminal, pressione Ctrl - R para iniciar uma busca, então você pode digitar nmap e ele irá buscar de volta ao último comando usando o nmap.

Se você não quiser o último comando que continha a palavra 'nmap', mas algum outro no passado, então você pode pressionar Ctrl - R novamente como quantas vezes você quiser.

    
por Robobenklein 16.04.2015 / 02:09
5

Eu sempre uso history , é mais conveniente para mim ver todos os comandos que eu digito, por exemplo:

history

lista todos os comandos que você digitou por um tempo

history | grep nmap

lista apenas os comandos com nmap

history | grep nmap | tail -10

history | grep nmap | head -10

lista seus últimos e primeiros 10 comandos com nmap

depois é só copiá-lo e colá-lo novamente.

    
por JoKeR 16.04.2015 / 02:24
5

A maneira que eu prefiro usar para conseguir isso é re-mapeando as chaves Up e Down para a pesquisa de histórico do Bash. Isso pode ser obtido adicionando o seguinte a .inputrc :

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

Após recarregar seu shell, pressionar Up ou Down em um prompt vazio, navegará por todos os comandos e pressionando Up ou < kbd> Down depois de digitar, por exemplo nmap navegará por todos os comandos iniciados com o que você digitou.

    
por José Luis 16.04.2015 / 13:59
2

Se você estiver no modo vi no bash ( set -o vi ), você pode entrar no modo de comando (pressione Esc ) e digite /whatever_you_want , seguido por Enter. / kbd>

Ele procurará o que você quiser e você poderá rolar com as teclas j e k . Pressione Enter quando você encontrar o comando certo.

Para poder digitar comandos quando você tiver pressionado Esc, você tem que acertar i (isto é vi).

Voltando ao modo shell "normal" é feito via set -o emacs .

    
por Michael Hooreman 16.04.2015 / 10:19