El comando history en Linux: cómo usar y gestionar tu historial de comandos

Introducción

El comando history es una herramienta fundamental en cualquier entorno Linux que permite revisar, reutilizar y gestionar los comandos que has ejecutado previamente en la terminal. Conocer su funcionamiento no solo mejora la productividad, sino que también ayuda a evitar errores al repetir tareas complejas o a auditar lo que se ha hecho en el sistema.

¿Qué es el comando history?

En esencia, history es un built‑in de la mayoría de los shells (bash, zsh, etc.) que mantiene un archivo donde se guarda cada línea de comando introducida. Por defecto, este historial se almacena en ~/.bash_history para bash y se carga al iniciar una nueva sesión. Cada entrada recibe un número secuencial que facilita su referencia directa.

Sintaxis básica

La forma más simple de invocarlo es escribir history en el prompt. Esto mostrará una lista numerada de los comandos más recientes. Algunas opciones útiles son:

  • history -c : borra todo el historial de la sesión actual.
  • history -d : elimina la entrada número .
  • history -a : anexa el historial de la sesión actual al archivo ~/.bash_history.
  • history -n : carga las nuevas líneas desde el archivo al historial de la sesión actual.
  • history -r : lee el archivo de historial y lo carga en la sesión actual.
  • history -w : escribe el historial actual en el archivo.

Ejemplos de uso

  1. Ver los últimos 20 comandos: history | tail -20
  2. Buscar todos los comandos que contengan la palabra «git»: history | grep git
  3. Ejecutar nuevamente el comando número 134: !134
  4. Ejecutar el último comando que comenzó con «ssh»: !ssh
  5. Ejecutar el último comando que contenía «apt-get update»: !?apt-get update?
  6. Reutilizar el último argumento del comando anterior: sudo !$

Gestionar el tamaño del historial

Las variables de entorno HISTSIZE y HISTFILESIZE controlan cuántas líneas se mantienen en memoria y en el archivo, respectivamente. Por ejemplo, añadir a ~/.bashrc:

export HISTSIZE=10000
export HISTFILESIZE=20000

Esto guardará hasta 10 000 comandos en la sesión y hasta 20 000 en el archivo. También puedes evitar que se guarden comandos duplicados o que empiecen con un espacio usando:

export HISTCONTROL=ignoredups:ignorespace

Búsqueda en el historial

Además de grep, el propio history permite búsquedas interactivas con Ctrl+r. Al pulsar esa combinación, aparecen las coincidencias más recientes a medida que escribes. Puedes repetir Ctrl+r para retroceder en el historial y Enter para ejecutar el comando encontrado. Esta técnica es muy útil cuando no recuerdas el número exacto pero sí parte del texto.

Borrar o modificar entradas

Si necesitas eliminar una línea específica porque contiene información sensible, usa:

history -d 57

Después de eliminar, es recomendable volver a escribir el archivo con:

history -w

Para editar una entrada, puedes borrarla y luego volver a introducir el comando corregido, o bien usar la expansión de historial con sustitución:

^foo^bar^

Este comando reemplaza “foo” por “bar” en el último comando y lo vuelve a ejecutar.

Conclusión

Dominar el comando history transforma la forma en que interactúas con la terminal. Desde volver a ejecutar tareas frecuentes hasta auditar acciones pasadas, su correcta configuración y uso son habilidades esenciales para cualquier administrador de sistemas, desarrollador o usuario avanzado de Linux. Investiga las opciones de tu shell específico y adapta el historial a tus flujos de trabajo para ganar eficiencia y seguridad.

Esta obra está bajo una Licencia Creative Commons Atribución 4.0 Internacional para Francesc Roig francesc@vivaldi.net .

EspañolesEspañolEspañol