Recentemente, mudei do bash para o zsh. No bash, uma maneira (além da pesquisa recursiva) que eu costumava encontrar comandos executados anteriormente era history | grep whatever
: onde whatever
está o bit de comando que eu lembro.
No zsh, isso não está funcionando. history
retorna apenas alguns itens, mesmo que meu .zsh_history
arquivo contenha muitas entradas, as quais eu o configurei para fazer.
Como posso gerar todo o meu histórico, adequado para pesquisar grep
?
alias history="history 0"
alias h='history 1 | grep'
~/.zsh_history
possui 10066 linhas, mashistory 0
(ou seu equivalentefc -l 0
) imprime apenas 4999 linhas.history 1 | grep
pessoas, espero que você conheçactrl+r
- o melhor truque / atalho de todos os tempos!A resposta aceita está correta, mas vale a pena notar que você não precisa chamar o
grep
binário externo para fazer a pesquisa, pois essa capacidade está ativa. Eu tenho essa função definida em meu.zshrc
:Notas:
fc
é o zsh embutido que controla o histórico interativo.history
é equivalente afc -l
.A
-m
bandeira requer um padrão, que deve ser citado.A
-i
bandeira adiciona um carimbo de data / hora.fc
tem muito mais truques na manga (por exemplo, limitando a pesquisa ao histórico interno da sessão atual). Veja azshbuiltins(1)
página de manual ou a documentação oficial .fonte
Dê uma olhada no fzf . Isso ajuda não apenas a encontrar "o que quer que seja" no histórico do shell, mas também em outros lugares interessantes, como o histórico do navegador, o diretório, etc.
O fzf é um localizador nebuloso da linha de comando. Isso significa que você pode procurar por partículas ou frações do que está procurando e ele exibirá uma coleção de correspondências que você pode refinar continuamente. É realmente um divisor de águas.
A página inicial do autor contém vários exemplos ilustrativos.
fonte