Tengo un par de preguntas sobre el terminal o el historial de la línea de comandos que está almacenado ~/.bash_history
.
Puedo ver el archivo en el terminal con el
history
comando pero si trato de abrirlo congedit bash_history
el archivo está completamente vacío. ¿Por qué?He encontrado cómo eliminar una cierta cantidad de líneas en el archivo desde el terminal con esta línea de código:
for i in {1..N}; do history -d N; done
donde N es el número de líneas (o comandos) que desea eliminar, pero ahora el archivo de historial muestra este último comando y eso no es muy inteligente si está tratando de cubrir sus cosas. Entonces la pregunta es: ¿cómo puedo dar la última línea de código y asegurarme de que no se grabe?
command-line
bash
gedit
bash-history
no sé
fuente
fuente
Respuestas:
Acaba de olvidar el punto anterior, el comando para abrir su archivo de historial de terminal (bash) es
Este archivo solo se actualiza cuando cierra una terminal.
Para eliminar las últimas 10 líneas de este archivo y no registrar este comando, abra una nueva terminal y ejecute la siguiente cadena de comandos:
o
o
sed
ohead
respectivamente elimina las líneas seleccionadas de~/.bash_history
,history -c
borra el historial del terminal y loexit
cierra.fuente
for
+sed
:head -n -N
donde mayúsculaN
es el número de líneas que se eliminarán. stackoverflow.com/a/13380679/711006head -n -N testfile > testfile
solo borra el archivo! Agregué una solución alternativa, sin embargo, ciertamente no es más corta.head
no puede funcionar en el lugar comosed
. Principalmente buscaba un solosed
comando que reemplazara tufor
ciclo. Hay algunas opciones en la página que vinculé, pero no parecen tan comprensibles como su código.El archivo bash_history es un archivo oculto, que comienza con un punto. Necesitas hacer
Esto abrirá el archivo en gedit.
fuente
Si desea eliminar solo ciertas partes de su registro de comandos, entonces los métodos anteriores están bien. Si desea detener el registro de comandos para una sesión de bash en particular, emita el comando
Para ser más drástico, si no desea que se registre ninguno de sus comandos , puede hacerlo
Tenga en cuenta que el primer método estaría en vigor solo para una sola sesión, mientras que el segundo método detendría el registro de comandos para todas las sesiones futuras.
fuente
Me doy cuenta de que esto ya tiene una respuesta aceptada, pero así es como lo he estado haciendo desde los años 80. Es una excelente manera de ocultar sus pistas y es un enfoque de múltiples fases. En su mayor parte, es uno que no se nota a menos que uno realmente esté prestando atención. Así es como se hace.
Abra una terminal / shell / sesión y haga:
salga del shell, abra un terminal / shell / sesión y haga: Aquí hay algunas formas creativas de borrar el historial de forma permanente
1:
2 (crear un historial falso)
entonces por si acaso:
salir de la cáscara
abra un nuevo shell y escriba
lo que lo hace menos notable es que si uno hace un ls -ratl, el ~ / .bash_history eventualmente desaparecerá en el traqueteo de la lista del directorio. No aparecerá como un enlace que atraería atención innecesaria. La mayoría de las personas no hacen un -a en su raíz, lo cual es útil cuando se desea la emulación.
La desventaja de este enfoque es que pierde su capacidad de regresar y recuperar su historial. el archivo ~ / .bash_history real también podría terminar en la parte superior de una lista de directorios, ya que puede terminar con una fecha de modificación realmente antigua con el tiempo, lo que en sí mismo podría conducir al descubrimiento de que algo anda mal.
fuente
9999999 dd
para eliminar todas las líneas del archivo:%d
,:1,$d
odG
trabajas mucho mejor1) correr
sh
; esto genera una subshell de cenizas, que no registra el historial en absoluto. Editar desde allí2) Agregue la línea
HISTCONTROL=ignoreboth
a.bashrc
, y hagaexec bash
para reemplazar permanentemente el shell actual con uno reinicializado, luego realice todos los comandos que no desea que se registren con un espacio inicial.fuente
Como todavía no puedo comentar, agregaré mis comentarios como respuesta:
man history
lo responderé todo.La respuesta a # 1 es que la historia está en la memoria.
history -a
para guardar en el archivo de inmediato.history -w
también guardará pero podría estropear otras sesiones.respuesta # 2:,
history -a
gedit, borra las líneas que quieras,history -r
fuente
El historial no se guarda hasta que cierre la sesión del shell. Intente cerrar sesión en el shell y luego vuelva a mirar .bash_history. El historial de comandos debe estar allí.
fuente