2011-07-15 30 views
166

Quando si utilizza la chiave su in un terminale Linux, è possibile utilizzare nuovamente i comandi precedenti. Grande funzionalità. Tuttavia, ho iniziato a registrare mysql in mysql con i dettagli sensibili nel comando.Elimina la cronologia del terminale in Linux

Come posso cancellare quella cronologia?

+1

Quale shell –

+0

Siamo spiacenti, ho completamente dimenticato di dire che sto usando bash. –

+16

Poiché questa domanda è chiusa, non posso aggiungerla come risposta. Puoi dire a bash di non salvare alcuna storia per una particolare sessione con questo comando: 'export HISTFILE =/dev/null' –

risposta

339

È possibile cancellare la cronologia bash in questo modo:?

history -cw

+4

Piace molto a questa risposta - questa ha effetto immediatamente, piuttosto che cancellare '.bash_history' che richiede il riavvio della shell per avere effetto. – mikemaccana

+1

Non funziona sulla mia macchina Ubuntu 14.04. La storia appare solo con un nuovo terminale. Tutto ciò che ha funzionato è '> ~/bash_history'. Devo riavviare il terminale per questo però. –

+0

Funziona anche su Mac OS X El Capitan (testato sulla versione 10.11.2), ma devi aggiungere quella seguente alla tua ~ ~/.bash_profile': 'export SHELL_SESSION_HISTORY = 0', quindi fai un' source ~ /. bash_profile' e per finire chiudere e riavviare l'app Terminale. Se vuoi capire cosa fa questo comando di esportazione, allora dovresti assolutamente controllare questo link: http://superuser.com/questions/950403/bash-history-not-preserved-between-terminal-sessions-on-mac –

23

Se si utilizza bash, la cronologia del terminale viene salvata in un file denominato .bash_history. Cancellalo e la cronologia sparirà.

Tuttavia, per MySQL l'approccio migliore non è inserire la password nella riga di comando. Se si specifica solo l'opzione -p, senza un valore, verrà richiesta la password e non verrà registrato.

Un'altra opzione, se non si desidera immettere la password ogni volta, è quella di memorizzarla in un file my.cnf. Creare un file denominato ~/.my.cnf con qualcosa di simile:

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

Assicurarsi di modificare i permessi dei file in modo che solo è possibile leggere il file.

Ovviamente, in questo modo la password viene ancora salvata in un file di testo normale nella home directory, proprio come è stata precedentemente salvata in .bash_history.

+3

+1 per specificare '-p'. Questo è totalmente l'approccio corretto per questo problema – andyb

+2

In realtà, sul mio sistema Linux, bash ricorda la cronologia e ricrea il file al logout. Dovresti effettuare il login, eliminare il file, accedere di nuovo, disconnettere la prima shell, eliminare il file e quindi scollegare la seconda shell. – cHao

+0

Grazie per avermelo fatto notare. Pensavo di essere intelligente usando l'opzione -p + password direttamente nel comando perché era molto più veloce premere semplicemente la freccia su perché ho una password molto lunga. Tempo di riconsiderare. –

Problemi correlati