Oggi vi parlo di come creare un “diario” dei comandi lanciati sul terminale. Sappiamo tutti che col comando history
possiamo vedere i comandi lanciati di recente, e che esiste anche un file (.bash_history o .zsh_history, in base a quale shell si utilizza); ma, spesso si vuole avere solo una porzione della history.
Più precisamente, si vuole creare quello che in altri linguaggi e su altre piattaforme si chiama diary, ovvero specificare “ok, da qui in poi registra i comandi che scrivo e salvameli in un altro file”. Spesso si usa per avere traccia di un lavoro, di una analisi, oppure per conservare il lavoro fatto in un giorno ecc.
Questo, al momento, non si può fare col terminale. Per questo motivo ho deciso di creare una coppia di funzioni che ci permette di fare questo: diarystart e diaryend.
Vediamo come funzionano.
Diarystart
Questa funzione va lanciata quando si vuole iniziare a registrare i comandi successivi.
La sua forma è molto semplice: diarystart filename
. Il filename è il nome del file nel quale verranno salvati i comandi (può anche contenere un path) e deve essere sempre specificato.
In questo momento il file non viene ancora creato.
Ci sono 2 cose da tenere in considerazione:
A questo punto, si è liberi di eseguire i comandi di interesse e lavorare sul terminale.
Diaryend
Una volta che si è finito di lavorare e si vuole salvare la history dei comandi successivi a diarystart, si lancia il comando diaryend
da solo. Questa funzione creerà un file (quello specificato in diarystart) nella quale ci sarà l’elenco dei comandi utilizzati.
Una peculiarità di questa coppia di funzioni è che se ci si dimentica di lanciare diaryend alla fine della giornata, lo si può lanciare tranquillamente all’inizio del giorno successivo.
Esempio
Di seguito un piccolo esempio del funzionamento di queste funzioni:
Come possono tornare utili?
Ecco alcuni utilizzi che mi sono venuti in mente quando ho deciso di creare queste funzioni:
Potete scaricare queste funzioni dal mio github.