Além de visualizar o histórico, existe uma maneira de filtrar meu histórico?
Digamos que eu queira procurar um comando que comece com "ssh"?
fonte
Além de visualizar o histórico, existe uma maneira de filtrar meu histórico?
Digamos que eu queira procurar um comando que comece com "ssh"?
Pressione Ctrl+ Re digite ssh
. Ctrl+ Riniciará a pesquisa do comando mais recente para o antigo (pesquisa reversa). Se você tiver mais de um comando que começa com ssh
, pressione Ctrl+ Rrepetidamente até encontrar a correspondência.
Depois de encontrar a correspondência, você pode pressionar Enterpara executar o comando ou o cursor esquerda / direita para selecionar apenas o texto do comando.
Não há opção reversa padrão para Ctrl+ Rinverter a direção da pesquisa, mas aqui você encontrará algumas sugestões.
Se você quiser apenas pesquisar seu histórico, basta usar history | grep ssh
, substituindo ssh pelo que deseja pesquisar.
Eu faço uma ligeira variação do que foi dito acima, funciona bem para mim (se você está se referindo ao seu histórico do bash
Na minha pasta pessoal, crio um arquivo chamado
Por dentro vai isso
Nota: o item acima parece não funcionar mais na versão 14.04, portanto, é o mesmo -
Em seguida, digitar o comando anterior que desejar e usar os botões page up / page dn pesquisam o histórico, sempre começando com page up
fonte
Pressionar Ctrl+ Riniciará o modo "reverse-i-search"; digitar "ssh" pesquisará no seu histórico comandos que contenham "ssh".
fonte
Aqui está outro método usando comandos clássicos (com maior probabilidade de funcionar em distribuições). O histórico de comandos é armazenado no arquivo
.bash_history
no diretório inicial, para que você possa fazer isso:Não esqueça a
-i
bandeira se precisar de uma pesquisa sem distinção entre maiúsculas e minúsculas.fonte
history | grep ssh
mostrará apenas o ssh da sessão temporária, então eu iria para esta resposta.Encontrei a seguinte função em algum lugar da Internet e a usei com grande efeito. Coloque isso no seu
~/.bashrc
:Agora re-carregar seu shell:
exec bash
. Agora você tem um novo comando, que pode ser usado assim:Ele mostrará uma lista de comandos correspondentes do seu histórico. Para executar um comando, digite
!
seguido pelo número do comando. Aqui está um exemplo:Eu gosto mais dessa abordagem do que Ctrl+ Rporque ela permite pesquisas muito mais flexíveis e posso ver vários resultados ao mesmo tempo.
fonte
Coloque isso no seu
~/.bashrc
:exemplo:
fonte
Se você usa shell no Emacs (
M-x shell
), pode usá-M-r
lo (é equivalente a Ctrl+ Rem um terminal ).fonte
O histórico é bom, mas limitado - prefiro configurar meu ambiente bash para registrar todos os comandos que já executei, além do diretório em que foram executados. Em seguida, executei um comando para listar todos os comandos Eu corri no diretório atual, que eu posso canalizar para grep etc - é chamado de 'prato' veja:
https://github.com/wolfwoolford/dish
Se você quiser ir direto ao assunto, basta fonte isso no seu .bashrc ( https://github.com/wolfwoolford/dish/blob/master/dishrc )
Também existe um comando realmente útil que você obtém de graça chamado 'dishg' - ou dish global - que imprime todos os comandos já executados, independentemente do diretório. Obviamente, este só é útil quando usado com grep e tail, etc ...
Uso-o há anos e é literalmente a primeira coisa que instalo sempre que configuro uma nova caixa. Ele registra os comandos que você executa nos arquivos de texto em um diretório oculto (~ / .dish). Nunca tive problemas com espaço em disco ...
fonte
Queria escrever isso como um comentário em @ssmy, mas não conseguiu obter a formatação no comentário para cooperar.
Após pesquisar o histórico,
history | grep ssh
você pode executar o comando que deseja, digitando seu número anexado com um ponto de exclamação, por exemplo!42
.Exemplo:
fonte