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 HISTCONTROL
variable. Por defecto (para root) es ignoredups:ignorespace
.
Respuesta2
Como ya se mencionó, puede usar un espacio antes de su comando, pero eso depende de HISTCONTROL
la 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_history
mientras 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 su
en 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 -9
eliminará ese proceso.