Come cancellare completamente la cronologia di bash?

219

Voglio cancellare tutti i precedenti comandi dalla cronologia del mio server. Ho usato history -c e sembra che tutte le cose siano state cancellate, ma quando ho ssh sul server, tutti i comandi sono ancora lì.

Come posso eliminarli definitivamente?

    
posta hd. 23.09.2012 - 07:44

8 risposte

285

Il file ~/.bash_history contiene la cronologia.

Per cancellare completamente la cronologia di bash sul server, apri il terminale e digita

cat /dev/null > ~/.bash_history

Un altro modo alternativo è quello di collegare ~/.bash_history a /dev/null

Tuttavia,

Un fastidioso effetto collaterale è che le voci della cronologia hanno una copia nella memoria e tornerà al file quando esci .

Per risolvere il problema, usa il seguente comando (ha funzionato per me):

cat /dev/null > ~/.bash_history && history -c && exit
    
risposta data devav2 23.09.2012 - 07:51
115

Che cosa fare:

In ogni open bash shell (potresti avere più terminali aperti):

history -c
history -w

Perché: Come notato sopra, history -c svuota il file ~/.bash_history . È importante notare che bash shell non scarica immediatamente la cronologia nel file bash_history. Quindi, è importante (1) scaricare la cronologia sul file e (2) cancellare la cronologia, in tutti i terminali . Questo è ciò che fanno i comandi precedenti.

Riferimento: link

    
risposta data callpraths 11.04.2013 - 22:55
43

esegui i seguenti comandi per cancellare la cronologia per sempre

history -c && history -w

buona fortuna!

    
risposta data Edwin Jose 12.08.2013 - 14:39
19

Ne esiste un altro molto più semplice: eseguire history -c sul prompt del terminale e scompaiono tutte le voci nel file bash_history .

    
risposta data Peter Eijlander 10.03.2013 - 19:10
10

Un altro modo per farlo è eliminare il file ~/.bash_history usando il comando rm ~/.bash_history . Quando accedi un'altra volta, il file .bash_history verrà creato automaticamente.

    
risposta data Anwar 23.09.2012 - 08:18
5

Cancella la cronologia della shell corrente:

history -c

Quando esci, la cronologia della tua shell corrente viene aggiunta a ~ / .bash_history, che è una cache delle precedenti cronologie delle shell, fino a un numero massimo (vedi HISTFILESIZE in "man bash").

Se si desidera rimuovere completamente la cronologia, in pratica è necessario svuotare ~ / .bash_history che molte delle voci sopra hanno suggerito. Ad esempio:

history -c && history -w

Questo cancella la cronologia della shell corrente e quindi forza la cronologia della shell corrente (vuota) per sovrascrivere ~ / .bash_history .... o per essere più accurato, obbliga a sovrascrivere HISTFILE (che di default è ~ / .bash_history) .

Spero che questo aiuti.

    
risposta data mobiGeek 10.07.2014 - 19:05
5
rm ~/.bash_history; history -c; logout

Ora riaccedi e attendi che la tua freccia non ti dà nulla.

    
risposta data stolsvik 01.10.2013 - 21:16
0

Prova questo

modifica il .profile e aggiungi la riga in basso alla fine del file

rm -f .bash_history

in questo modo, ogni volta che effettui il login, cancellerà automaticamente il tuo file .bash_history per te. L'aggiunta dell'opzione di rimozione ricorsiva sembra pericolosa e non necessaria.

    
risposta data Mixed IT Prof 30.08.2014 - 20:06

Leggi altre domande sui tag