Cómo buscar hacia atrás (y hacia adelante) en el historial de Linux

El historial de la consola puede volverse muy grande y recorrerlo línea por línea cuando recordamos parte del comando ejecutado no vale la pena.

Suponiendo que al ingresar el comando history en la consola obtenemos:

1 cat ~/.bashrc
2 ls -la
3 head ~/.bash_history
4 pwd
5 top
6 tail ~/.bash_history

Para realizar un búsqueda hacia atrás en el historial (Reverse I Search) presionamos Ctrl + R y el prompt cambia a:

(reverse-i-search)`':

A medida que escribimos parte del comando que recordamos, se presentará la línea más reciente del historial que coincida con el texto ingresado.

Por ejemplo, si escribimos «bash» veremos:

(reverse-i-search)`bash': tail ~/.bash_history

  • Al presionar Enter, ejecutamos el comando.
  • Al presionar la tecla de flecha izquierda o derecha, editamos antes de ejecutarlo.

Si volvemos a presionar Ctrl + R, seguiremos buscando coincidencias hacia atrás; en nuestro caso si lo hacemos 2 veces obtendríamos:

(reverse-i-search)`bash': cat ~/.bashrc

 

En caso de que deseemos cambiar el sentido de la búsqueda hacia adelante  (Forward I Search) presionamos Ctrl + S y el prompt cambia a:

(i-search)`bash': cat ~/.bashrc

Si volvemos a presionar Ctrl + S, seguiremos buscando coincidencias hacia adelante; en nuestro caso obtendríamos:

(i-search)`bash': head ~/.bash_history

Desactivar XOFF

Da la casualidad que Ctrl + S por defecto sirve para indicar el carácter de control que pausa la transmisión de datos en la consola (XOFF) – y Ctrl + Q para continuarla (XON).

Para desactivar este comportamiento, desde la consola ejecutamos:

$ stty -ixoff

o bien, podemos agregar esta línea al archivo de configuración de la consola (~/.bashrc) así aplica a las futuras sesiones.