Como controlar el historial de comandos de bash.
Bash guarda la historia de comandos en el archivo .bash_history ubicado en nuestro $HOME, pero ese archivo se escribe hasta el exit del bash.
Es posible mandar a escribir prematuramente el archivo de history mediante
history -w
También es posible limpiar completamente el buffer de comandos en la sesión de bash actual:
history -c
Dentro de bash podemos consultar la historia mediante el comando history la cual incluye tanto los comandos del archivo como los que hemos dado en la sesion actual.
Como corolario de lo anterior si tenemos varias sesiones de bash abiertas la salida del comando history difiere entre ellas
La variable de entorno HISTFILE indica al bash en que archivo guardar el history al salir.
Una forma de evitar se guarden los comandos en el archivo history es cambiar la variable por ejemplo mandarlo al dispositivo nulo o eliminar la variable
HISTFILE=/dev/null
O eliminando la variable
unset HISTFILE
Esto también lo podemos usar cuando queremos realizar un procedimiento especifico y documentar todo lo que hemos hecho, si todo se realiza en una única sesión de bash, entonces podemos mandar los comandos ejecutados a un archivo de registro, esto funcionara bien siempre y cuanto lo hagamos antes del exit del bash:
HISTFILE=comandos_proceso_X
Si lo que deseamos es borrar un comando especifico del history, lo podemos hacer con el número con el que aparece en la salida del comando history por ejemplo borrar el comando 325
history -d 325
El número de lineas que el archivo de historia guarda esta determinado por la variable de entorno HISTFILESIZE
El número de lineas cargadas en el buffer del comando history esta determinado por la variable de entorno HISTSIZE
Para evitar que un comando ingrese en la historia basta con comenzar el comando dejando un caracter de espacio, esto funciona aún cuando la variable de control HISTIGNORE="" (el valor por default), por lo que si no deseamos que el comando se incluya en el history basta empezarlo dejando un espacio:
echo "in history" echo "not in history"
No hay comentarios.:
Publicar un comentario