En la terminal, puedo escribir CTRL-Rpara buscar un comando coincidente previamente escrito en BASH. Por ejemplo, si escribo, CTRL-Rentonces grepaparece mi último grepcomando, y puedo presionar enter para usarlo. Sin embargo, esto solo da una sugerencia. ¿Hay alguna forma de recorrer otros comandos de coincidencia previamente escritos?
444

CTRL+SHIFT+rno funciona para mí.[[ $- == *i* ]] && stty -ixona su .bashrc y luegoCTRL+sfuncionará como el reverso deCTRL+rSi cree que el comando se usará con frecuencia, puede agregar una etiqueta
Entonces
Esto funciona porque
#es un delimitador de comentarios, es decir, todo lo que viene después del símbolo no se interpreta como un comando. Sin embargo, se registrará en el historial y, por lo tanto, se puede buscar.fuente
También puede configurar las flechas hacia arriba y hacia abajo para hacer una búsqueda ligeramente diferente agregando estas líneas a ~ / .inputrc:
En lugar de buscar una subcadena en cualquier parte del comando (como Ctrl-r ), buscará un comando que comience con el texto a la izquierda del cursor . Por ejemplo, si ejecuto estos comandos:
luego escriba
lsy presione Updos veces, se mostraráls barty el cursor en el mismo lugar. Compare con Ctrl- r, donde encontraría ellsdoble en la última línea, por lo que tendría que presionarlo una vez más para encontrar la línea anterior.Estos enfoques tienen sus puntos fuertes, y ambos pueden ahorrar mucho tiempo.
fuente
~/.inputrcy agregar esas dos líneas.~/.inputrclas dos líneas, incluida la búsqueda de historial- *Hay un reemplazo para el incorporado Ctrl + Rllamado hstr . Permite buscar el historial de comandos que coincida con todos los tokens de búsqueda al mismo tiempo (entre otras cosas), y recorrer los resultados con las teclas de flecha:
Aquí hay un screencast de demostración .
Se puede instalar en un sistema operativo de la familia Debian como:
Y luego usar Ctrl + R(después de volver a abrir la terminal).
fuente