Elimina cronologia terminale in Linux [chiuso]


170

Quando si utilizza il tasto Su in un terminale Linux, è possibile utilizzare nuovamente i comandi precedenti. Grande caratteristica. Tuttavia, ho iniziato a registrare mysql in mysql con i dettagli sensibili nel comando.

Come posso cancellare quella cronologia?


Scusa, ho completamente dimenticato di menzionare che sto usando bash.
Frank Vilea,

16
Poiché questa domanda è chiusa, non posso aggiungerla come risposta. Puoi dire a bash di non salvare alcuna cronologia per una determinata sessione con questo comando:export HISTFILE=/dev/null
Chris Eberle,

1
Posso anche aggiungere questo: non inserire informazioni sensibili alla riga di comando - attendi il prompt: D
hummingBird

Risposte:


343

Puoi cancellare la tua cronologia bash in questo modo:

history -cw


4
Mi piace molto questa risposta - questo ha effetto immediato, piuttosto che la cancellazione .bash_historyche richiede il riavvio della shell per avere effetto.
mikemaccana,

1
Non funziona sulla mia macchina Ubuntu 14.04. La storia appare solo con il nuovo terminale. Tutto ciò che ha funzionato è >~/bash_history. Per questo è necessario riavviare il terminale.
Aniket Thakur,

Funziona anche su Mac OS X El Capitan (testato su versione 10.11.2), ma si deve aggiungere che la seguente riga al vostro ~/.bash_profile: export SHELL_SESSION_HISTORY=0, poi fare un source ~/.bash_profilee alla fine chiudere e riavviare la vostra applicazione Terminale. Se vuoi capire cosa fa questo comando di esportazione, allora dovresti assolutamente controllare questo seguente link: superuser.com/questions/950403/…
King-Wizard

1
non è solo -c abbastanza? I manuali dicono -c cancella l'elenco cronologico eliminando tutte le voci. -w riporta la cronologia corrente al file cronologico e li aggiunge all'elenco cronologico. Just -c funziona bene.
Kahn,

24

Se usi bash, la cronologia del terminale viene salvata in un file chiamato .bash_history. Eliminalo e la cronologia sparirà.

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

Un'altra opzione, se non si desidera inserire la password ogni volta, è memorizzarla in un file my.cnf. Crea un file chiamato ~ / .my.cnf con qualcosa del tipo:

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

Assicurati di modificare le autorizzazioni del file in modo che solo tu possa leggere il file.

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


4
+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 accedere, eliminare il file, accedere di nuovo, disconnettere la prima shell, eliminare il file e quindi disconnettere la seconda shell.
cHao,

Grazie per la segnalazione. Pensavo di essere intelligente usando l'opzione -p + password direttamente nel comando perché era molto più veloce premere la freccia su in quanto ho una password molto lunga. È ora di riconsiderare ..
Frank Vilea,

5
Non dimenticare di unset HISTFILEnon salvare la cronologia corrente.
Ignacio Vazquez-Abrams,

Ho modificato la mia risposta e aggiunto una soluzione che impedisce di inserire la password ogni volta.
sagi,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.