Ubuntu: eliminar parte de root .bash_history sin rastros

Ubuntu: eliminar parte de root .bash_history sin rastros

El archivo .bash_history de root puede verse así:

line 1
line 2
line 3
line 4

Ahora borro las lineas 3 y 4

su
vim ~/.bash_history

#delete line 3 und 4 with dd
line 1
line 2

:wq

ENTER
CTRL + D

Pero si ahora miro .bash_history:

su
cat ~/.bash_history

#.bash_history
line 1
line 2
vim ~/.bash_history

Entonces, ¿cómo puedo eliminar solo una parte del historial sin que la última línea muestre que edité el archivo?

Gracias

Respuesta1

Usar:

su
 vim ~/.bash_history

El historial no guarda el comando si tiene unespacioen frente de eso.


Esto depende de la HISTCONTROLvariable. Por defecto (para root) es ignoredups:ignorespace.

Respuesta2

Como ya se mencionó, puede usar un espacio antes de su comando, pero eso depende de HISTCONTROLla variable. Aquí hay algunas alternativas -

De hecho, puedes decirle al terminal que se detenga y comience a grabar el historial. Se puede hacer usando estos comandos:

set +o history      #stop recording history
set -o history      #start recording history

Si ya ejecutó algunos comandos y olvidó detener la grabación o usar el espacio, aún puede evitar que se escriba .bash_historymientras la sesión aún esté abierta. Se escribe en el archivo cuando cierra la sesión del terminal. Por lo tanto, puede eliminar el historial de la sesión actual justo antes de cerrar la sesión (antes de salir suen su caso). Se puede hacer usando este comando:

history -c

Una opción extrema sería finalizar el proceso del terminal cuando haya terminado de ejecutar todos los comandos. Básicamente, matas el proceso antes de que pueda escribir el historial en el archivo.

kill -9 $$

$$dará la identificación del proceso terminal actual y kill -9eliminará ese proceso.

información relacionada