Eu mantenho um histórico bastante longo do bash e, às vezes, quando procuro por algo com a função de pesquisa reversa do bash ( Ctrl+ r), acabo no início do histórico de pesquisa e ainda não encontrei o que precisava e depois gostaria de voltar ao final do arquivo de histórico. Uma opção é usar a função de pesquisa direta ( Ctrl+ s) que se aproxima do final do histórico ou é executada #
, mas há também um atalho de teclado para se mover diretamente para o final do histórico do bash?
bash
command-history
Martin
fonte
fonte
history
irá mostrar-lhe todos os comandos bash feitos ..Respostas:
Existe a função readline
end-of-history
, por padrão mapeada para M- >, mas se usada durante a pesquisa reversa, ela sai do prompt de pesquisa reversa.Uma possível solução / truque
Iniciar pesquisa de string
Em vez disso, para usar a pesquisa reversa, você pode usar
history-search-backward
ehistory-search-forward
(padrão não mapeado), mapeando-os para up/down(muito útil) em.inputrc
:Assim, depois de digitar, você pode inverter a pesquisa pressionando up (em vez de Ctrl+ R) e, quando quiser retornar ao final do histórico, poderá usar a
end-of-history
função pressionando ( M- >)Dessa forma, "A cadeia de pesquisa deve corresponder no início de uma linha do histórico ", portanto, se você pesquisar
ls -ltr
, precisará digitarls
e pressionar a uptecla.Pesquisa por substring
se você deseja " A sequência de pesquisa pode corresponder a qualquer lugar da linha do histórico " , é necessário usar
history-substring-search-forward
ehistory-substring-search-backward
:Dessa forma, se você pesquisar
ls -ltr
, poderá digitarls
, mas tambémltr
, antes de pressionar up.Referência: Manual de Referência do Bash - Comandos para o Histórico .
fonte