Ricerca nel sito web

Come eseguire un comando Linux senza salvarlo nella cronologia


Per impostazione predefinita, ogni comando che esegui sul tuo terminale viene memorizzato dalla shell (interprete dei comandi) in un determinato file chiamato file storia o cronologia dei comandi della shell. In Bash (la shell più popolare sui sistemi Linux), per impostazione predefinita, il numero di comandi persistenti nella cronologia è 1000 e alcune distribuzioni Linux ne hanno 500.

Per controllare la dimensione della tua cronologia in Bash, esegui questo comando:

echo $HISTSIZE

Per vedere i comandi più vecchi che hai eseguito, puoi utilizzare il comando History per visualizzare la cronologia dei comandi della shell:

history

A volte, potresti voler disabilitare la shell dalla registrazione dei comandi nella sua cronologia dei comandi. Puoi farlo come segue.

Elimina un comando Linux dalla cronologia dopo l'esecuzione

Puoi eliminare un comando immediatamente dalla cronologia della shell dopo averlo eseguito sulla riga di comando aggiungendovi il comando history -d $ (history 1).

Il sottocomando $ (history 1) recupera l'ultima voce nella cronologia nella sessione del terminale corrente, dove 1 è l'offset e -d L'opzione aiuta a eliminarlo.

Qualsiasi comando eseguito normalmente viene salvato nella cronologia della shell.

echo "This command is saved in history"
history | tail

Tuttavia, quando aggiungi il comando history -d $ (history 1) a una riga di comando, viene immediatamente eliminato dalla cronologia della shell, come mostrato nello screenshot seguente:

echo "This command is not saved in history";history -d $(history 1)
history | tail

Un altro modo per impedire alla shell di salvare un comando nella cronologia è prefissare il comando con uno spazio. Ma questo dipende interamente dal valore della variabile di shell $HISTCONTROL definita nel file di avvio Bash ~/.bashrc. Dovrebbe essere impostato su uno di questi valori: ignorespace o ignoreboth, affinché questo metodo funzioni.

Puoi controllare il valore della variabile $HISTCONTROL come mostrato.

echo $HISTCONTROL
OR
cat ~/.bashrc | grep $HISTCONTROL

Se la suddetta variabile di shell è impostata, qualsiasi comando preceduto da uno spazio non viene salvato nella cronologia:

echo "This command is not prefixed with space, it will be saved in history!"
echo "This command is prefixed with space, it will not be saved in history!"

Ecco alcuni altri articoli interessanti sui comandi history e history di Bash:

  • 2 modi per rieseguire gli ultimi comandi eseguiti in Linux
  • Come cancellare la cronologia della riga di comando BASH in Linux
  • Imposta data e ora per ogni comando che esegui nella cronologia di Bash

Per ora è tutto! Utilizza il modulo di commento qui sotto per condividere con noi i tuoi pensieri su questo argomento. Alla prossima, resta con noi.