No terminal, posso digitar CTRL-Rpara procurar um comando correspondente digitado anteriormente no BASH. Por exemplo, se eu digitar CTRL-Rthen grep
is list meu último grep
comando, e posso pressionar enter para usá-lo. Isso só dá uma sugestão, no entanto. Existe alguma maneira de percorrer outros comandos correspondentes digitados anteriormente?
444
CTRL+SHIFT+r
não funciona para mim.[[ $- == *i* ]] && stty -ixon
ao seu .bashrc e, em seguida,CTRL+s
vai funcionar como o inverso deCTRL+r
Se você acha que o comando será usado com frequência, adicione uma tag
Então
Isso funciona porque
#
é um delimitador de comentário, ou seja, tudo o que vem depois do símbolo não é interpretado como um comando. No entanto, será gravado na história e, portanto, é pesquisável.fonte
Você também pode configurar as setas para cima e para baixo para fazer uma pesquisa ligeiramente diferente adicionando estas linhas a ~ / .inputrc:
Em vez de procurar uma substring em qualquer lugar do comando (como Ctrl-r ), ele procurará por um comando começando com o texto à esquerda do cursor . Por exemplo, se eu executar estes comandos:
digite
ls
e pressione Upduas vezes, ele será exibidols bart
e o cursor no mesmo lugar. Compare com Ctrl- r, onde encontraria asls
duas na última linha, então você teria que pressioná-lo novamente para encontrar a linha anterior.Essas abordagens têm seus pontos fortes e podem economizar muito tempo.
fonte
~/.inputrc
e adicionar essas duas linhas.~/.inputrc
duas linhas, incluindo história-Search-*Há um substituto para o built-in Ctrl + Rchamado hstr . Ele permite pesquisar o histórico de comandos que corresponde a todos os tokens de pesquisa ao mesmo tempo (entre outras coisas) e alternar entre os resultados usando as teclas de seta:
Aqui está um screencast de demonstração .
Ele pode ser instalado em um sistema operacional da família Debian, como:
E depois use Ctrl + R(depois de reabrir o terminal).
fonte