En algunos casos (algunas versiones bash), haciendo:
$ history -c; history -w
O simplemente
$ history -cw
Borrará el historial en la memoria (las flechas hacia arriba y hacia abajo no tendrán comandos para enumerar) y luego escribirá eso al $HISTFILE
archivo (si el $HISTFILE
se trunca por la instancia de bash en ejecución).
A veces bash elige no truncar el $HISTFILE
archivo incluso con histappend
opción no establecida y $HISFILEZIZE
establecido en 0.
En tales casos, la opción nuclear siempre funciona:
history -c; >$HISTFILE
Que borre la lista histórica de comandos grabados en la memoria y todos los comandos grabados previamente en el archivo. Eso asegurará que el shell en ejecución no tenga un historial registrado ni en la memoria ni en el disco; sin embargo, otras instancias en ejecución de bash (donde el historial está activo) pueden tener una copia completa de los comandos leídos desde $HISTFILE
cuando se inició bash (o cuando un history -r
se ejecuta).
Si es también requería que no se escribiera nada más (ningún comando nuevo) de la sesión actual en el archivo de historial, entonces, unset HISTFILE
evitará cualquier tipo de registro.
bash
tiene un historial de sesiones en la memoria que se escribe en un archivo si la variable de shell HISTFILE
se establece en un nombre de archivo cuando bash
salidas.
Si elimina el archivo señalado por HISTFILE
, desactive esa variable y salga de bash
, entonces esa sesión de shell no dejará ningún historial persistente.
Error al desarmar el HISTFILE
variable, pero eliminar el archivo simplemente vaciaría el historial persistente, pero el historial de la sesión actual se guardaría cuando se cierre el shell.