GNU/Linux >> Linux Esercitazione >  >> Linux

perché eliminare la cronologia di bash non è sufficiente?

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.


Linux
  1. Comando non trovato in Bash risolto

  2. Perché la sostituzione del processo Bash non funziona con alcuni comandi?

  3. Perché Bash non memorizza i comandi che iniziano con spazi?

  4. Perché `esce &` non funziona?

  5. Procedura:cronologia Bash/shell illimitata?

Comando della cronologia in Linux (Cronologia di Bash)

Pulizia automatica della cronologia di Bash?

Array in Bash non trovato

bash sh - comando non trovato

Reimposta la posizione di ricerca della cronologia di bash

Perché Bash è ovunque (nella maggior parte se non in tutte le distribuzioni Linux)?