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 whatever
está el bit de comando que recuerdo?
En zsh, esto no está funcionando. history
devuelve solo unos pocos elementos, a pesar de que mi .zsh_history
archivo 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_history
tiene 10066 líneas, perohistory 0
(o su equivalentefc -l 0
), solo imprime 4999 líneas.history 1 | grep
gente, 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
grep
binario externo para hacer la búsqueda, ya que esa capacidad está integrada. Tengo esta función definida en mi.zshrc
:Notas:
fc
es el zsh incorporado que controla el historial interactivo.history
es equivalente afc -l
.La
-m
bandera requiere un patrón, que debe ser citado.los
-i
bandera agrega una marca de tiempo.fc
tiene 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