Quando abro o bash e pressiono a seta para cima, vejo o último comando que digitei. Continuar pressionando a seta para cima mostrará uma série de comandos digitados no passado.
Como faço para encontrar um comando específico dessa lista, em vez de pressionar a seta para cima n vezes?
Pressione
CTRL+R
e comece a digitar. PressioneCTRL+R
novamente para obter o próximo encontrado.Você pode usar o comando abaixo para encontrar no arquivo .bash_history
exemplo
Suponha que você queira procurar o comando ls em .bash_history
Este ainda não foi mencionado.
por exemplo
Em vez de pressionar UpArrowexatamente
n
vezes, você usariana casca.
Isso invocaria o recurso de expansão de histórico do
bash
shell e substituiria a expansão pelo comandon
retroceder no histórico (e executá-lo).Exemplo:
Consulte a seção "EXPANSÃO DO HISTÓRICO" no
bash
manual.history + grep (ou qualquer outro comando de pesquisa de texto)
Se você deseja listar todas as entradas do histórico contendo a string "foo":
history | grep "foo"
history
- mostra todos os comandos no buffer do históricogrep "foo"
- procura por linhas contendo a stringfoo
, e você também pode usar expressões regulares de acordo com o manual do grep.Pesquisa i reversa
Se você quiser voltar no histórico (como fez antes com as teclas de seta), usar ctrl + r é o caminho a percorrer. Basta pressionar ctrl+r e começar a digitar. Você pode pressionar ctrl+r várias vezes quando a frase já estiver digitada e ela retornará pelas entradas correspondentes do histórico
Localizador difuso
Esta é a minha preferência pessoal. Sua solução não é baunilha pronta para uso, mas acho que merece algum crédito. Você pode instalar uma extensão fuzzy finder para o bash e isso tornará a pesquisa de muitas coisas muito mais eficiente (ela substitui a pesquisa i reversa, então ctrl + r está sendo usado como um atalho para pesquisar no histórico).