Pesquisar comandos no histórico com palavras-chave descontínuas

12

Eu queria saber como procurar comandos na história sem conhecer as primeiras letras do comando?

Ao pesquisar usando Ctrl- Rem bash, um tem que dar as primeiras letras do comando. E se eu conhecer apenas alguns personagens no meio, ou alguns no começo e alguns no meio?

Por exemplo, para pesquisar cat myfile, só sei que existe atnele, ou cno começo e myno meio em algum lugar. as palavras-chave precisam ser posicionadas continuamente. Por exemplo, em cat myfile, eu gostaria de procurar por ambos ce my, mas Ctrl+Rnão permitirá especificar os dois simultaneamente.

Tim
fonte
2
Eu uso Ctrl-R o tempo todo e ele pesquisa o texto do meio automaticamente. Nada extravagante, mas no seu exemplo, apenas digitar myseria suficiente. RHEL4 e Cygwin confirmados.
Aaron D. Marasco
@ Tim: você realmente não tentou isso, certo? Porque ele faz procurar letras no meio de um comando.
alex
@alex: Na verdade, eu queria dizer palavras-chave que não estão continuamente posicionadas. Por exemplo, em cat myfile, eu gostaria de pesquisar ambos ce my, mas Ctrl + R não permitirá especificar os dois simultaneamente.
Tim

Respostas:

12

Se você está apenas procurando a linha (para movimentar sua memória), você pode apenas cumprimentar a parte do comando que você lembra:

history | grep "substring"
jasonwryan
fonte
2
Como é que eu uso os sistemas * nix há mais de 5 anos e não sabia sobre o historycomando até agora? Obrigado!
GMA
7

O Bash tem apenas uma pesquisa simples de cadeias, até onde posso ver.

Considere mudar para zsh , que possui uma pesquisa curinga no histórico. history-incremental-pattern-search-backwarde history-incremental-pattern-search-forwardnão estão vinculados às chaves por padrão, mas você pode vinculá-las:

bindkey '^X^R' history-incremental-pattern-search-backward
bindkey '^X^S' history-incremental-pattern-search-forward

Então digite Ctrl+X Ctrl+R ^c*my.

Gilles 'SO- parar de ser mau'
fonte
0

A propósito (1) também deve retornar um homem para o sujeito, se o homem contiver essa palavra. Whatis (1) retorna apenas correspondências absolutas.

Para referência: Apropos == man -k Whatis == man -f

Esses dois devem ser uma grande ajuda, juntamente com caracteres curinga * e?

baweaver
fonte
1
A pergunta é sobre pesquisar no histórico de comandos no terminal ... (não pesquisar nas páginas do manual) ... mas em uma nota completamente separada, achei sua resposta útil, então +1 :)
Peter.O
.... Ah, amável, meu mal naquele companheiro.
baweaver