Linux Tutorial · 4 min read · Sep 17, 2025

Tutorial sul comando history di Linux per principianti (8 esempi)

Se il tuo lavoro comporta l’esecuzione di strumenti e script sulla riga di comando di Linux, sono sicuro che ci siano molti comandi che esegui ogni giorno. Coloro che sono nuovi alla riga di comando dovrebbero sapere che esiste uno strumento - chiamato history - che ti fornisce un elenco dei comandi che hai eseguito in precedenza.

In questo tutorial, discuteremo le basi del comando history utilizzando alcuni esempi facili da comprendere. Ma prima di farlo, vale la pena menzionare che tutti gli esempi qui sono stati testati su una macchina Ubuntu 16.04LTS.

Comando history di Linux

Se sai come utilizzare efficacemente la cronologia della tua riga di comando, puoi risparmiare molto tempo su base quotidiana. Di seguito sono riportati alcuni esempi in stile Q&A che dovrebbero darti una buona idea di come puoi utilizzare il comando history a tuo favore.

D1. Come funziona il comando history?

L’uso di base è semplice: basta eseguire il comando ‘history’.

history

Come funziona il comando history

Quindi puoi vedere che i tuoi comandi eseguiti in precedenza sono mostrati nell’output. Nota che ho usato il comando ‘more’ per assicurarmi che la visualizzazione dell’output fosse in pausa alla prima pagina (l’output completo di ‘history’ è solitamente molto lungo).

D2. Come fare in modo che la cronologia visualizzi anche data e ora?

Se desideri che il comando history visualizzi la data e l’ora di esecuzione per ogni comando, puoi farlo esportando la variabile HISTTIMEFORMAT nel seguente modo:

export HISTTIMEFORMAT="%F %T: "

Ecco fatto. Ora, quando eseguirai il comando ‘history’, vedrai le informazioni su data e ora nell’output.

Come fare in modo che la cronologia visualizzi anche data e ora

Nel caso in cui tu veda che data e ora sono le stesse per tutti i comandi, la seguente spiegazione dovrebbe chiarire le cose:

Se imposti il HISTTIMEFORMAT in bash, i tuoi nuovi ingressi vengono memorizzati nel file di cronologia con un timestamp, i comandi più vecchi che non hanno un timestamp (quelli precedenti all'impostazione di HISTTIMEFORMAT) mostreranno uno e lo stesso timestamp (presumo quello della prima voce trovata con un timestamp reale).

Questo problema dovrebbe risolversi da solo dopo che la tua cronologia completa è stata aggiornata in pochi giorni.

Puoi guardare in ~/.bash_history per vedere qual è la prima riga che ha un timestamp. Quelle sono righe che iniziano con un # seguito da un numero (attualmente) a 10 cifre.

D3. Come fare in modo che la cronologia smetta di registrare i comandi?

Se si presenta una situazione in cui non si desidera che il sistema salvi la cronologia dei comandi, è possibile farlo utilizzando la variabile HISTSIZE. Basta esportarla con zero come valore, e sei a posto.

Guarda il seguente esempio:

Quindi puoi vedere che l’esecuzione del comando ‘history’ ora non ha prodotto alcun risultato.

Nota che c’è anche una variabile HISTFILESIZE. Ecco la differenza tra le due:

HISTSIZE è il numero di righe o comandi che vengono memorizzati in memoria in un elenco di cronologia mentre la tua sessione bash è in corso.

HISTFILESIZE è il numero di righe o comandi che (a) sono consentiti nel file di cronologia all'avvio di una sessione, e (b) sono memorizzati nel file di cronologia alla fine della tua sessione bash per l'uso in sessioni future.

D4. Come fare in modo che la cronologia non registri un singolo comando?

Questo può essere fatto impostando la variabile HISTCONTROL su ‘ignorespace’. Puoi farlo nel seguente modo:

export HISTCONTROL=ignorespace

Ora, ogni volta che esegui un comando che non vuoi venga registrato nella cronologia, basta eseguirlo con uno spazio iniziale.

D5. Come eseguire una ricerca rapida nella cronologia?

Certo, puoi usare il comando grep per cercare parole chiave specifiche o comandi nell’output prodotto dal comando history. Tuttavia, esiste anche un metodo molto più veloce: la ricerca inversa.

È piuttosto facile: tutto ciò che devi fare è premere CTRL+R mentre sei sulla riga di comando, e vedrai il tuo prompt trasformarsi in qualcosa del genere:

Ora digita la parola chiave che vuoi cercare, e vedrai suggerimenti corrispondenti dalla cronologia a destra. Ad esempio, ho digitato ‘man’ (senza virgolette), e il primo risultato che ho ottenuto è stato ‘man apropos’.

Se questo non è ciò che stai cercando, puoi ottenere il risultato corrispondente successivo premendo di nuovo CTRL+R. Quindi, nel mio caso, il risultato successivo che ho ottenuto è stato ‘man find search.’

Puoi continuare a cercare in questo modo. Una volta ottenuto il risultato desiderato, basta premere il tasto freccia destra e otterrai l’intero comando sul tuo prompt.

Ora puoi eseguire questo comando, o usarlo come vuoi.

D6. Come eseguire il comando precedente?

Ci sono due modi facili in cui puoi eseguire l’ultimo comando eseguito: premi CTRL+P, o esegui il seguente comando:

!!

Non ci credi (particolarmente nel secondo modo)? Provalo.

Nel caso in cui la necessità sia quella di eseguire rapidamente il penultimo comando, puoi farlo nel seguente modo:

!-1

E così via.

D7. Come fare in modo che la cronologia ignori le voci duplicate nell’output?

Questo può essere fatto impostando la variabile HISTCONTROL su ‘ignoreboth’ e ‘erasedups’. Puoi farlo nel seguente modo:

echo HISTCONTROL=ignoreboth:erasedups

Ora, quando eseguirai il comando history, l’output non conterrà duplicati.

D8. Come cancellare la cronologia?

Se desideri cancellare la cronologia esistente in modo da poter ricominciare da capo, usa l’opzione della riga di comando -c.

history -c

Conclusione

Probabilmente sarai d’accordo sul fatto che la cronologia è un comando molto importante di cui dovresti essere a conoscenza. In questo tutorial, abbiamo discusso diversi suggerimenti/trucchi importanti per ottenere il massimo da questo strumento. Una volta che hai praticato questi, vai alla pagina man dello strumento per ulteriori informazioni.

Share: X/Twitter LinkedIn

Ricevi i nuovi post nella tua casella di posta.

Nessuno spam. Disiscriviti in qualsiasi momento.