In alcuni casi (alcune versioni bash), eseguendo un:
$ history -c; history -w
O semplicemente
$ history -cw
Cancellerà la cronologia in memoria (le frecce su e giù non avranno comandi da elencare) e quindi scriveranno questo allo $HISTFILE
(se il file $HISTFILE
viene troncato dall'istanza bash in esecuzione).
A volte bash sceglie di non troncare il $HISTFILE
file anche con histappend
opzione non impostata e $HISFILEZIZE
impostato su 0.
In questi casi, l'opzione nuke funziona sempre:
history -c; >$HISTFILE
Che cancella l'elenco cronologico dei comandi registrati in memoria e tutti i comandi precedentemente registrati su file. Ciò assicurerà che la shell in esecuzione non abbia una cronologia registrata né in memoria né su disco, tuttavia, altre istanze in esecuzione di bash (dove la cronologia è attiva) potrebbero avere una copia completa dei comandi letti da $HISTFILE
quando bash è stato avviato (o quando un history -r
viene eseguito).
Se è anche richiedeva che nient'altro (nessun nuovo comando) della sessione attuale venisse scritto nel file della cronologia, quindi, unset HISTFILE
impedirà qualsiasi registrazione di questo tipo.
bash
ha una cronologia della sessione in memoria che viene scritta nel file se la variabile di shell HISTFILE
è impostato su un nome file quando bash
esce.
Se elimini il file indicato da HISTFILE
, annulla l'impostazione di quella variabile ed esci da bash
, allora quella sessione di shell non lascerà alcuna cronologia persistente.
Impossibile annullare l'impostazione del HISTFILE
variabile ma l'eliminazione del file svuoterebbe solo la cronologia persistente, ma la cronologia della sessione corrente verrebbe salvata all'uscita dalla shell.