Bash history y autocompletado: Navegar por el historial de comandos

Bash history y autocompletado: Navegar por el historial de comandos

¿Qué es el bash history?

Cuando se escriben comandos en la terminal (en el prompt) un historial de la lista de comandos que se van invocando es guardado en un historial llamado bash history. Existen diferentes razones para esto, como razones de seguridad, ya que provee una forma sencilla de saber que comandos se han ejecutado en el sistema. De igual forma sirve como asistente para autocompletar los comandos, ya sea para ahorrar clics en el teclado o recordar la sintaxis de algún comando. El historial de comandos del bash es almacenado dentro del directorio HOME del usuario pero como un archivo oculto llamado .bash_history.

¿Cómo ver el archivo historial del bash history?

Para visualizar el archivo .bash_history podemos usar el comando less que nos irá mostrando el historial de comandos en ambas direcciones.

$ less .bash_history

Para mover el contenido del archivo nos deslazamos hacia arriba o hacia abajo con las teclas PageUp/PageDown, y salimos del visualizador con la tecla q.

¿Cómo invocar el último comando ingresado en la terminal Linux?

Para invocar el último comando ingresado en la terminal se utiliza la tecla flecha arriba, de igual forma si queremos navegar esta lista de comandos previos en sentido inverso usamos flecha-abajo. Una ves localizado el comando a ejecutar basta dar clic a la tecla Enter.

¿Cómo modificar el límite del historial del bash history?

Existen algunas otras variables que controlan la funcionalidad del historial del bash, para visualizar el límite máximo del history_bash existe la variable HISTFILESIZE.

$ echo $HISTFILESIZE
10000

En este ejemplo el límite máximo del historial es de 10 mil comandos en el historial. En un ambiente seguro lo ideal es que este valor sea 0, de forma que no se tenga acceso al historial de comandos ejecutados, en especial por el administrador.

¿Cómo obtener información detallada del bash history?

Otra variable de entorno importante es HISTCONTROL, esta variable provee información adicional del bash y como la historia de este es mantenida.

Un comando útil para la consulta del historial es el comando history por sí mismo. Este imprime el contenido del .bash_history y cada comando tiene en este listado un índice numérico a su izquierda. Para ejecutar un comando de esta lista basta utilizar !(numero), por ejemplo.

68 pwd
69 ls

Para el anterior listado si deseamos ejecutar pwd

$ !68
$ pwd

La consola autocompletará el comando y solo requerimos presionar enter.

¿Cómo utilizar autocompletado en la línea de comandos de Linux?

Otra forma de autocompletar que es muy utilizada es el uso de la tecla TAB, solo es necesario ingresar algunas letras del comando que se desea utilizar y presionar un par de ocasiones la tecla TAB para que el comando se autocomplete. Lo mismo ocurre cuando deseamos proveer parámetros en algunos comandos como el cd o el ls, si ingresamos las primeras letras del nombre del directorio, veremos que se van autocompletando los nombres y la ruta de estos.