Eliminar el historial del terminal en Linux [cerrado]

170

Cuando usa la tecla arriba en un terminal de Linux, puede usar comandos anteriores nuevamente. Gran característica Sin embargo, comencé a registrar mysql en mysql con los detalles sensibles en el comando.

¿Cómo puedo eliminar ese historial?

Frank Vilea
fuente
Lo siento, olvidé por completo mencionar que estoy usando bash.
Frank Vilea
16
Como esta pregunta está cerrada, no puedo agregar esto como respuesta. Puede decirle a bash que no guarde ningún historial para una sesión particular con este comando:export HISTFILE=/dev/null
Chris Eberle
1
También puedo agregar esto: no ingrese información confidencial en la línea de comando - espere el aviso: D
hummingBird

Respuestas:

343

Puedes borrar tu historial de bash de esta manera:

history -cw

Eddie
fuente
44
Realmente me gusta esta respuesta: esto surte efecto de inmediato, en lugar de eliminar, lo .bash_historyque requiere que se reinicie el shell para que surta efecto.
mikemaccana
1
No funciona en mi máquina Ubuntu 14.04. La historia solo aparece con una nueva terminal. Todo lo que funcionó es >~/bash_history. Sin embargo, tengo que reiniciar el terminal para esto.
Aniket Thakur
También funciona en Mac OS X El Capitan (probado en la versión 10.11.2), pero debe agregar la siguiente línea a su ~/.bash_profile:, export SHELL_SESSION_HISTORY=0luego haga una source ~/.bash_profiley para terminar de cerrar y reiniciar su aplicación Terminal. Si desea comprender lo que hace este comando de exportación, entonces definitivamente debe verificar este siguiente enlace: superuser.com/questions/950403/…
King-Wizard
1
no es solo -c suficiente? Manuales dice -c borra la lista del historial eliminando todas las entradas. -w escribe el historial actual en el archivo de historial y lo agrega a la lista de historial. Solo -c funciona bien.
Kahn
24

Si usa bash, el historial del terminal se guarda en un archivo llamado .bash_history. Eliminarlo, y la historia se habrá ido.

Sin embargo, para MySQL el mejor enfoque es no ingresar la contraseña en la línea de comando. Si solo especifica la opción -p, sin un valor, se le solicitará la contraseña y no se registrará.

Otra opción, si no desea ingresar su contraseña cada vez, es almacenarla en un archivo my.cnf. Cree un archivo llamado ~ / .my.cnf con algo como:

[client]
user = <username>
password = <password>

Asegúrese de cambiar los permisos del archivo para que solo usted pueda leer el archivo.

Por supuesto, de esta manera su contraseña aún se guarda en un archivo de texto sin formato en su directorio de inicio, tal como se guardó anteriormente en .bash_history.

sagi
fuente
44
+1 para especificar -p. Este es el enfoque totalmente correcto para este problema
andyb
2
En realidad, en mi sistema Linux, bash recuerda el historial y recrea el archivo al cerrar sesión. Tendría que iniciar sesión, eliminar el archivo, iniciar sesión de nuevo, cerrar la sesión del primer shell, eliminar el archivo y luego cerrar la sesión del segundo shell.
cHao
Gracias por señalar eso. Pensé que estaba siendo inteligente al usar la opción -p + contraseña directamente en el comando porque era mucho más rápido presionar la flecha hacia arriba ya que tengo una contraseña muy larga. Es hora de reconsiderar ..
Frank Vilea
55
No te olvides de unset HISTFILEque no se guarde el historial actual.
Ignacio Vazquez-Abrams
Edité mi respuesta y agregué una solución que impide ingresar la contraseña cada vez.
sagi