En la terminal, puedo escribir Ctrl+ Rpara buscar un comando coincidente escrito previamente en BASH. Por ejemplo, si escribo Ctrl+ Rluego grep
, aparece mi último grep
comando y puedo presionar Enter para usarlo. Sin embargo, esto sólo da una sugerencia. ¿Hay alguna forma de recorrer otros comandos coincidentes escritos previamente?
Respuesta1
Si entiendo la pregunta correctamente, debería poder recorrer las alternativas presionando Ctrl+ repetidamente R.
P.ej:
- Ctrl+R
grep
- Ctrl+R
- Ctrl+ R ...
Que busca hacia atrás a través de tu historia. En su lugar, para buscar hacia adelante, use Ctrl+ S, pero es posible que deba haber configurado: stty -ixon
(ya sea manualmente .bash_profile
o de forma manual) antes de eso para deshabilitar la función XON/XOFF que toma el control de Ctrl+ S. Si sucede de todos modos, use Ctrl+ Qpara volver a habilitar la salida de pantalla (Más detallesaquí.)
Respuesta2
Si cree que el comando se utilizará con frecuencia, puede agregar una etiqueta
command #useful
Entonces
Ctrl+R #useful
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, quedará registrado en el historial y, por tanto, se podrá buscar.
Respuesta3
También puedes configurar las flechas hacia arriba y hacia abajo para realizar una búsqueda ligeramente diferente agregando estas líneas a ~/.inputrc:
"\e[A": history-search-backward
"\e[B": history-search-forward
En lugar de buscar una subcadena en cualquier parte del comando (comoCtrl-r) buscará un comandocomenzando con el texto a la izquierda del cursor. Por ejemplo, si ejecuto estos comandos:
$ ls bart
$ ls fools
luego escriba ls
y presione Updos veces, se mostrará ls bart
el cursor en el mismo lugar. Compare con Ctrl- r, donde encontraría ls
dos veces en la última línea, por lo que tendría que presionarlo una vez más para encontrar la línea anterior.
Ambos enfoques tienen sus puntos fuertes y ambos pueden ahorrar mucho tiempo.
Respuesta4
Hay un reemplazo para el incorporado Ctrl + Rllamadohstr. 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 usando las teclas de flecha:
Aquí hay unscreencast de demostración.
Se puede instalar en un sistema operativo de la familia Debian como:
add-apt-repository ppa:ultradvorka/ppa
apt-get update
apt-get install hstr
hstr --show-configuration >> ~/.bashrc
Y luego usar Ctrl + R(después de volver a abrir la terminal).