Recientemente cambié de bash a zsh. En bash, una forma (además de la búsqueda recursiva) que solía encontrar comandos ejecutados previamente era history | grep whatever, ¿dónde whateverestá el bit de comando que recuerdo?
En zsh, esto no está funcionando. historydevuelve solo unos pocos elementos, a pesar de que mi .zsh_historyarchivo contiene muchas entradas, para lo cual lo configuré.
¿Cómo puedo generar mi historial completo, adecuado para buscar grep?

alias history="history 0"alias h='history 1 | grep'~/.zsh_historytiene 10066 líneas, perohistory 0(o su equivalentefc -l 0), solo imprime 4999 líneas.history 1 | grepgente, espero que lo sepasctrl+r: ¡el mejor truco / atajo de todos los tiempos!La respuesta aceptada es correcta, pero vale la pena señalar que no necesita llamar al
grepbinario externo para hacer la búsqueda, ya que esa capacidad está integrada. Tengo esta función definida en mi.zshrc:Notas:
fces el zsh incorporado que controla el historial interactivo.historyes equivalente afc -l.La
-mbandera requiere un patrón, que debe ser citado.los
-ibandera agrega una marca de tiempo.fctiene muchos más trucos bajo la manga (por ejemplo, limitar la búsqueda al historial interno de la sesión actual). Consulte lazshbuiltins(1)página del manual o la documentación oficial .fuente
Echa un vistazo a fzf . Ayuda no solo a encontrar "cualquier partícula" en su historial de shell, sino también en otros lugares interesantes, por ejemplo, historial del navegador, historial del directorio, etc.
fzf es un buscador difuso de línea de comandos. Eso significa que puede buscar partículas o fracciones de lo que está buscando y mostrará una colección de coincidencias que puede refinar continuamente. Es realmente un cambio de juego.
La página de inicio del autor contiene una serie de ejemplos ilustrativos.
fuente