Buscar comandos en el historial con palabras clave discontinuas

13

Me preguntaba cómo buscar comandos en la historia sin saber las primeras letras del comando.

Al buscar usando Ctrl- Ren bash, uno tiene que dar las primeras letras del comando. ¿Qué pasa si solo conozco algunos personajes en el medio, o algunos al principio y algunos en el medio?

Por ejemplo, para buscar cat myfile, solo sé que hay aten él, o cal principio y myen el medio en alguna parte. Las palabras clave deben ser posicionadas continuamente. Por ejemplo, en cat myfile, me gustaría buscar ambos cy my, pero Ctrl+Rno permitiré especificar ambos simultáneamente.

Tim
fuente
2
Uso Ctrl-R todo el tiempo y busca el texto del medio automáticamente. Nada sofisticado, pero en su ejemplo solo escribir mysería suficiente. RHEL4 y Cygwin confirmados.
Aaron D. Marasco el
@Tim: en realidad no lo intentaste, ¿verdad? Debido a que hace buscar letras en el medio de un comando.
alex
1
@alex: en realidad quería decir palabras clave que no se posicionan continuamente. Por ejemplo, en cat myfile, me gustaría buscar ambos cy my, pero Ctrl + R no permitirá especificar ambos simultáneamente.
Tim

Respuestas:

12

Si solo está buscando encontrar la línea (para activar su memoria), podría simplemente buscar la parte del comando que recuerda:

history | grep "substring"
jasonwryan
fuente
2
¿Cómo es que he estado usando sistemas * nix por más de 5 años y no sabía sobre el historycomando hasta ahora? ¡Gracias!
GMA
8

Bash solo tiene una búsqueda de cadena simple, por lo que puedo ver.

Considere cambiar a zsh , que tiene una búsqueda de comodines en el historial. history-incremental-pattern-search-backwardy history-incremental-pattern-search-forwardno están vinculados a teclas de forma predeterminada, pero puede vincularlas:

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

Luego escribe Ctrl+X Ctrl+R ^c*my.

Gilles 'SO- deja de ser malvado'
fuente
0

Apropos (1) también debe devolver un hombre para el sujeto si el hombre contiene esa palabra. Whatis (1) devuelve solo coincidencias absolutas.

Para referencia: Apropos == man -k Whatis == man -f

Estos dos deberían ser de gran ayuda, junto con los comodines * y?

baweaver
fuente
1
La pregunta es sobre buscar en el historial de comandos en la terminal ... (no buscar en las páginas del manual) ... pero en una nota completamente separada, encontré su respuesta útil, entonces +1 :)
Peter.O
.... Ah encantador, mi mal en ese compañero.
baweaver