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?


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


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.


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
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.