2011-07-15 19 views
166

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

¿Cómo puedo eliminar ese historial?

+1

Qué cáscara –

+0

Lo siento, me olvidé por completo mencionar que estoy usando bash. –

+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 en particular con este comando: 'export HISTFILE =/dev/null' –

Respuesta

339

Puede borrar el historial de fiesta de la siguiente manera:?

history -cw

+4

Realmente me gusta esta respuesta: esto tiene efecto inmediatamente, en lugar de eliminar '.bash_history' que requiere que el shell se reinicie para que tenga efecto. – mikemaccana

+1

No funciona en mi máquina Ubuntu 14.04. La historia simplemente aparece con una nueva terminal. Todo lo que funcionó es '> ~/bash_history'. Sin embargo, tengo que reiniciar la terminal para esto. –

+0

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 = 0', luego haga una 'fuente ~ /. bash_profile' y para terminar, salga y reinicie su aplicación Terminal. Si quiere entender lo que hace este comando de exportación, entonces definitivamente debe verificar este siguiente enlace: http://superuser.com/questions/950403/bash-history-not-preserved-between-terminal-sessions-on-mac –

23

Si usa bash, entonces el historial del terminal se guarda en un archivo llamado .bash_history. Eliminarlo, y el historial 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 pedirá 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. Crear un archivo llamado ~/.my.cnf con algo como:

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

Asegúrese de cambiar los permisos de archivo para que sólo se puede leer el archivo.

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

+3

+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 lo recrea al cerrar la sesión. Tendría que iniciar sesión, eliminar el archivo, iniciar sesión de nuevo, cerrar sesión en el primer shell, eliminar el archivo y luego cerrar la sesión del segundo shell. – cHao

+0

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 ... –

Cuestiones relacionadas