Como navegar seletivamente pelo histórico de comandos Bash em um terminal Linux [duplicado]

8

Todo mundo sabe (ou deveria saber!) que em um terminal as teclas de seta para cima e para baixo são usadas para navegar pelo histórico de comandos usados.

Quando você usa o terminal diariamente, seu histórico de comandos provavelmente será uma longa lista de muitos comandos diferentes, tornando a navegação menos fácil. Apenas como exemplo, digamos que há um mês eu usei o iwconfig com um determinado conjunto de parâmetros (como eu disse, é apenas um exemplo, eu não preciso mexer com isso agora), como eu me lembro esse comando em particular com todos os seus argumentos e parâmetros sem ter que navegar por centenas de comandos de histórico?

Eu sei que eu poderia usar history para ter uma lista de comandos usados anteriormente e !n para reexecutar o comando n na lista, mas quando o histórico crescer, não é muito prático também.

O ideal seria ter algo que me permitisse usar uma tecla de atalho para navegar pelo histórico, mas apenas entre as instâncias que contêm o que eu já digitei na linha de comando; então no meu exemplo, depois de ter digitado iwconfig , use algumas chaves (talvez PgUp e PgDown?) para navegar pelas entradas que começam com iwconfig .

Se não for possível, também seria bom imprimir uma lista como history do, mas isso conterá apenas o que eu já digitei (suspeito que o comando history e grep esteja envolvido, mas eu não tenho certeza sobre a sintaxe correta); mas a solução de atalho anterior seria a melhor opção.

    
por Sekhemty 30.04.2013 / 15:44

4 respostas

11

Você pode pesquisar o histórico usando Ctrl + R e, em seguida, digitar a string de pesquisa (por exemplo, iw para localizar iwconfig ). Então você ainda pode navegar pelo histórico nesse ponto com as teclas de seta para cima e para baixo ou pressionar Ctrl + R novamente para encontrar a ocorrência anterior.

    
por 30.04.2013 / 15:47
5

Depois de um pouco de prática, descobri como usar a solução alternativa.

Eu combinei a sintaxe correta para imprimir uma lista filtrada, eu fiz isso com history | grep iwconfig (afinal, não foi tão difícil); com a saída eu posso usar !n com a lista filtrada agora fácil de ler.

    
por 30.04.2013 / 16:20
3

Eu não posso comentar sobre a resposta de Stefan, mas você normalmente tem que continuar pressionando Ctrl + R. Consulte esta página para obter mais informações.

    
por 30.04.2013 / 16:27
2

Pressione "ctrl + r" e digite a string de pesquisa.

Se não o que você está procurando Então, novamente "ctrl + r"

Se encontrado, pressione Enter para executá-lo Ou pressione a seta para a direita - > chave para editá-lo antes de usá-lo.

    
por 03.05.2013 / 10:45