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.


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"

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.


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?


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
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.