En Linux, cada comando que escribes se guarda en el archivo de historial. El comando historial te permite ver y reutilizar esos comandos sin tener que volver a escribirlos. Puedes navegar por la lista del historial usando las teclas Arriba y Abajo. Sin embargo, puede haber ocasiones en las que quieras borrar algunos comandos del historial o desactivar permanentemente la función de guardado del historial.
Afortunadamente, Linux te permite controlar las características del registro de comandos, como desactivarlo temporal o permanentemente, borrar todo el historial o evitar que ciertos comandos se guarden en la lista del historial. Veamos cómo.
Borrar todo el historial de comandos en Linux
Para borrar todo el historial de comandos en Linux desde el principio, utiliza el comando history con la opción -c:
history -c
Esto borrará todo el historial de los comandos que hayas ejecutado previamente.
Borrar Comandos Específicos del Historial
A veces, en lugar de borrar todo el historial, puede que desee eliminar comandos específicos. En este caso, necesita determinar el número asociado con ese comando en particular en la lista del historial. Puede hacerlo simplemente escribiendo
history
O también puede enviar la salida del historial a grep para encontrar la información deseada más fácilmente:
history | grep ifconfig
Una vez que haya encontrado el número de comando, puede borrarlo utilizando el comando history con la opción -d seguida del número de comando:
history -d <número_de_comando>
Ejecutar un comando sin incluirlo en el historial
Para ejecutar un comando sin que quede registrado en el historial, basta con añadir un Espacio antes del comando. Sin embargo, para que esta función funcione, deberá establecer la variable de entorno HISTCONTROL en ignorespace mediante el siguiente comando:
export HISTCONTROL=ignorespace
Este cambio no persiste después de un reinicio. Para hacerlo permanente, añádalo a su archivo .bashrc utilizando el siguiente comando:
echo 'HISTCONTROL=ignorespace' >> ~/.bashrc
Al habilitar esta función, Bash no registrará en el archivo de historial los comandos que comiencen con un carácter de espacio.
Por ejemplo, el siguiente comando no será registrado por el shell:
[espacio] echo 'hola, esta es la primera línea'
Si ejecutas el mismo comando sin espacio, Bash lo registrará en el historial:
echo 'hola, esta es la primera línea'
Del mismo modo, también puedes dejar que Bash elimine los comandos duplicados consecutivos del historial con:
echo 'HISTCONTROL=ignoredups' >> ~/.bashrc
Esta función almacenará los duplicados consecutivos sólo una vez en la lista del historial.
Cómo Activar/Desactivar el Historial de Comandos en Linux
Aunque el método anterior puede evitar que el shell registre comandos en el historial, puede no ser práctico cuando se trata de un gran número de comandos.
Insertar un espacio antes de cada comando puede volverse monótono y pesado. En tal caso, puede desactivar temporalmente el historial del shell ejecutando el siguiente comando:
set +o historial
Para volver a activarlo, utilice el siguiente comando:
set -o history
Para desactivar permanentemente el historial de comandos de Linux, utilice:
echo 'set +o history' >> ~/.bashrc
Ignorar ciertos comandos del historial
Puede haber ciertos comandos que desee excluir, ya que pueden saturar la lista del historial y dificultar la navegación. Algunos ejemplos comunes son pwd, ls, man, cat, y el comando cd ya que puede ser repetitivo y superfluo.
Mediante la variable de entorno HISTIGNORE, puede controlar qué comandos no deben añadirse a la lista del historial. Por ejemplo, para excluir ciertos comandos como history, pwd y cat de la lista del historial, sepárelos con dos puntos y enciérrelos entre comillas dobles como se indica a continuación:
export HISTIGNORE="history:pwd:cat"
Para que el cambio sea permanente, añada el comando al archivo .bashrc mediante:
echo 'HISTIGNORE="history:pwd:cat"' >> .bashrc
Controla tu historial de comandos Bash en Linux
Linux ofrece un amplio control sobre la gestión del historial de la línea de comandos, permitiendo a los usuarios especificar qué comandos guardar en el historial, borrar comandos específicos del historial, activar o desactivar el historial temporalmente o incluso borrar todo el historial.
Esto no sólo ayuda a proteger la privacidad del usuario, sino que también evita que comandos irrelevantes o repetitivos saturen el historial de Bash.
Una forma aún mejor de acceder al historial de la línea de comandos es utilizar McFly, un sustituto de la búsqueda inversa por defecto en Linux basado en redes neuronales.