Solía pensar que borrar mi historial de bash era suficiente para borrar mi historial de bash, pero ayer mi gato estaba jugando en el lado derecho de mi teclado y cuando volví a mi computadora vi algo que escribí hace un mes, luego comencé a presione todas las teclas como loco buscando lo que podría haberlo activado. Resulta que la tecla ARRIBA muestra mi historial de bash incluso después de eliminar .bash_history.
¿Cómo puedo eliminar mi historial de bash de verdad?
~/.bash_history
realmente elimina~/.bash_history
... pero (a menos que tome medidas para evitarlo, como borrar el historial en memoria ejecutándosehistory -c
justo antes de cerrar sesión o configurarloHISTFILE=/dev/null
o simplementeunset
iniciarlo) bash simplemente guardará su historial actual nuevamente cuando salga . Por cierto,HISTSIZE
env var le dice a bash cuántas líneas del historial se deben guardar en la memoria, yHISTFILESIZE
le dice a bash el número máximo de líneas del historial para guardar. ambos se pueden configurar en, por ejemplo, su~/.bashrc
. PD: tu gato merece una segunda recompensa por enseñarte una valiosa lección :)Respuestas:
En algunos casos (algunas versiones bash), hacer un:
O simplemente
Borrará la historia en la memoria (hacia arriba y flecha hacia abajo tendrá ningún comando a la lista) y luego escribir que el
$HISTFILE
archivo (si el$HISTFILE
se trunca por la instancia de fiesta en ejecución).A veces, bash elige no truncar el
$HISTFILE
archivo incluso con lahistappend
opción sin configurar y$HISFILEZIZE
establecida en 0.En tales casos, la opción nuclear siempre funciona:
Eso borra la lista del historial 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 grabado en la memoria o 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
que se inició bash (o cuandohistory -r
se ejecuta a) .Si también se requiere que nada más (sin comandos nuevos) de la sesión actual se escriba en el archivo de historial,
unset HISTFILE
evitará dicho registro.fuente
history -c && history -r
reemplazaría su historial actual con un historial modificado manualmente. En algunos casos, eso puede ser mejor que tirar toda la historia.bash
tiene un historial de sesión en la memoria que se escribe en el archivo si la variable de shellHISTFILE
se establece en un nombre de archivo cuandobash
sale.Si elimina el archivo señalado por
HISTFILE
, desactive esa variable y salgabash
, esa sesión de shell no dejará ningún historial persistente.Si no se desarma la
HISTFILE
variable pero se elimina el archivo, se vaciaría el historial persistente, pero el historial de la sesión actual se guardaría cuando salga el shell.fuente
history -c; history -w
borrará la memoria y el historial de archivos. Desarmar HISTFILE solo es necesario si no se deben registrar más comandos en el historial (no es exactamente lo que se le pidió IMhO)."¿Cómo puedo borrar mi historial de bash de verdad?"
Salga de bash, inicie un shell diferente, elimine el archivo de historial de bash.
o
cerrar sesión, iniciar sesión en una cuenta diferente que tenga permiso de escritura en el archivo de historial, eliminar el archivo de historial.
fuente
Mientras abandonas el caparazón, hazlo todo de una vez, como
fuente