La cronologia dei comandi su Linux

Nel sistema operativo Linux il comando history mi permette di visualizzare la cronologia degli ultimi 500 comandi digitati dall'utenete sulla linea comandi.

history

A cosa serve?

Grazie alla cronologia dei comandi di Linux posso ripetere rapidamente un comando già eseguito, senza doverlo digitare di nuovo.

E' una funzionalità della shell molto utile, perché mi permette di risparmiare tempo.

Come funziona il comando history di Linux

Quando digito un comando sul terminale, la shell lo salva in un file di sistema.

Dov è salvata la cronologia dei comandi?

La Bash li salva nel file ~/.bash_history, mentre altre shell utilizzano per lo stesso scopo i file ~/.history oppure ~/.zsh_history.

Nota. Essendo salvati su un file fisico del disco fisso ( memoria di massa ) e non nella RAM, è possibile richiamare i comandi dalla cronologia anche nelle sessioni di lavoro successive. Non solo in quella corrente.

Un esempio pratico

Accedo alla linea di comando e digito il comando history.

history

Il sistema operativo visualizza gli ultimi cinquecento comandi che ho digitato sul terminale, anche quelli delle mie sessioni precedenti.

un esempio di funzionamento del comando history per visualizzare la cronologia dei comandi Linux

I comandi sono numerati in ordine cronologico dal più vecchio ( numero più piccolo ) al più recente ( numero più grande ).

Come ripetere un comando della cronologia

Per ripetere il comando 552 digito sulla linea comandi:

!552

La shell legge dalla cronologia il comando nella posizione 552 e lo esegue.

Nota. In questo caso il comando n. 552 è il comando "cd andrea".

Per ripetere l'ultimo comando digito

!!

Per ripetere il penultimo comando digito:

!-2

La shell individua il comando nel penultimo posto della cronologia e lo esegue.

Nota. Nella cronologia precedente il penultimo comando è il n°566 ossia "ls -l".

Per ripetere il comando più recente che inizia con il pattern c digito

!c

La shell cerca il comando più recente che inizia per "c" e lo esegue.

Nota. In questo caso si tratta del comando n°556 ossia "cat .bashrc".

E così via.

Come cercare un comando nella cronologia

Per cercare un comando particolare nella cronologia history, premo la combinazione di tasti CTRL+R.

Sul terminale appare la reverse search

il prompt della reverse search

La shell mi chiede di digitare il pattern del comando da trovare.

Digito le lettere 'al'.

digito le lettere al

La bash cerca nella cronologia i comandi più recenti che contengono il pattern 'al'.

In questo caso è il comando più recente che soddisfa la condizione è il comando alias.

un esempio di ricerca del comando nella cronologia history di Linux

Quindi mi ripropone in autocompilazione il comando più recente.

un esempio di funzionamento della reverse search nel file history

A questo punto per eseguirlo mi basta dare invio.

Attenzione. Il pattern viene cercato ovunque nella stringa dei comandi. Non solo all'inizio ma anche alla fine oppure in mezzo.

Come modificare la lunghezza della cronologia

Di default il file contiene gli ultimi 500 comandi digitati sul terminale.

La lunghezza della coda di comandi nella cronologia è definita dalla variabile $HISTSIZE.

Per conoscere la lunghezza della cronologia sul sistema basta digitare:

come visualizzare la variabile $HISTSIZE

La shell restituisce il numero di comandi registrati.

Per cambiare la lunghezza della cronologia, basta associare alla variabile $HISTSIZE un altro valore.

Ad esempio, per aumentare la cronologia da 500 a 1000 digito sulla linea di comando:

HISTSIZE=1000

Poi ripeto il comando per visualizzare la lunghezza della cronologia.

la cronologia è passata da 500 a 1000 comandi

Ora il file della cronologia salva gli ultimi mille comandi digitati.

Non più soltanto cinquecento.

 


 

Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

FacebookTwitterLinkedinLinkedin
knowledge base

Libri di approfondimento

Linux

FAQ