#howto - Asciinema: registrare il terminale
Per effettuare una registrazione del proprio terminale, salvando input e output che compaiono a schermo man mano che passa il tempo, normalmente si può ricorrere a un qualsiasi video recorder.
Tuttavia, la registrazione video di un terminale comprenderebbe unicamente dei caratteri e molto più di rado altri elementi grafici (di complessità tale da giustificare una registrazione video).
Un buon modo per registrare il terminale nel modo più semplice possibile è utilizzando Asciicinema.
Definizione
Asciinema è uno strumento che permette di semplificare e migliorare la registrazione della sessione di terminale attualmente aperta:
-
se si valuta lo spazio occupato, il formato in cui sono salvate le registrazioni di Asciinema (asciicast) è ben più “leggero”: sono salvati i caratteri, non i singoli pixel (in più, ciò consente di raggiungere un’alta compressione quando i file vengono zippati, occupando ancor meno spazio);
-
sono file testuali, prevalentemente: questo significa che non è strettamente necessario “riprodurli” (sebbene sia consigliato) ma è anche possibile leggerli manualmente, nonché effettuare operazioni sul contenuto (via grep, awk, jq, e così via);
-
sul piano delle prestazioni, Asciinema consente un consumo minimo di risorse se confrontato con una registrazione video classica;
-
inoltre le registrazioni sono facilmente modificabili: non è necessario essere degli abili video editor per effettuare dei fotomontaggi e correggere piccoli ed eventuali mancanze, o peggio dover effettuare una registrazione da capo, perché è sufficiente saper utilizzare un text editor.
Installazione
L’installazione sui sistemi operativi qui non elencati e le relative istruzioni sono disponibili sul sito ufficiale.
Ubuntu
apt install asciinema
Fedora
dnf install asciinema
Arch Linux
pacman -S asciinema
Android (via Termux)
pkg i asciinema
Via Pipx
Pipx è un’installer di programmi Python pensati per essere utilizzati via riga di comando.
Usare il ben più noto pip
funzionerebbe ugualmente, ma con qualche svantaggio:
- i vari pacchetti non sarebbero isolati gli uni dagli altri e si rischierebbe di avere versioni multiple delle stesse dipendenze;
- si ingombrerebbe la lista dei pacchetti manualmente installati con quelli delle loro relative dipendenze, installate automaticamente;
- la disinstallazione sarebbe difficoltosa a causa dei pacchetti residui che resterebbero (e che andrebbero eliminati manualmente).
Nel caso si voglia procedere utilizzando pipx, è prima necessario installarlo:
python3 -m pip install --user pipx
In seguito, non resta che installare Asciinema via pipx:
pipx install asciinema
Avviare la registrazione
Per avviare la registrazione e salvare il testo a schermo nel file registrazione.cast, è sufficiente usare il sottocomando “rec”:
asciinema rec
Al termine della registrazione, Asciinema chiederà cosa fare della registrazione: se salvarla su disco, caricarla in rete oppure scartarla.
Nel caso si decida di salvare la registrazione su disco, è bene tener presente che di default Asciinema salva la registrazione in una cartella temporanea, e perciò potrebbe essere più comodo salvarla in un percorso preimpostato, così come nel seguente esempio:
asciinema rec registrazione.cast
Suggerimento: il parametro
-i
consente di limitare il tempo perso in inattività, come ad esempio quando il terminale rimane in attesa di un nuovo input oppure mentre sta processando l’output.Ciò è particolarmente utile per limitare la durata dei tempi morti all’interno delle proprie registrazioni.
Nel seguente esempio, il tempo di inattività è limitato a 2.5 secondi:
asciinema rec -i 2.5 registrazione.cast
.
Fermare la registrazione
Per terminale la registrazione, bisogna uscire dalla shell avviatasi nel momento in cui è cominciata la registrazione.
Quando possibile, è sufficiente usare la combinazione di tasti CTRL+d
o digitare exit
.
In altre circostanze, ad esempio se si stanno usando programmi in TUI (come htop
o ncdu), allora è prima necessario terminare l’esecuzione di ciascun programma.
All’occorrenza, la registrazione può essere fermata anche da un secondo terminale: siccome Asciinema monitora il segnale di interrupt SIGINT (2), basterà inviarlo al suo processo utilizzando comandi come pkill -INT asciinema
oppure kill -INT PID
(dove PID
è l’ID del processo) o ancora si può ricorrere a htop
.
Riprodurre una registrazione
È molto semplice riprodurre una registrazione salvata su disco:
asciinema play registrazione.cast
Nel caso di una registrazione caricata online, è sufficiente sostituire il percorso al file con l’URL:
asciinema play 'https://asciinema.org/a/567970'
Nota: sono supportati gli URL sia di protocollo HTTPS che IPFS.
Analogamente al caso di registrazione, è possibile limitare la durata dei tempi di inattività anche in fase di playback:
asciinema play -i 2.5 registrazione.cast
È anche possibile riprodurre una registrazione in loop e variarne la velocità (triplicandola, ad esempio), come nel seguente caso:
asciinema play --loop --speed 3 'https://asciinema.org/a/567970'
Condividere una registrazione
Per condividere una registrazione, ci sono due modi:
-
Dopo aver avviato e terminato una registrazione mediante
asciinema rec
, basterà digitareu
per caricarla su https://asciinema.org; -
Nel caso di una registrazione già conclusa e salvata su disco, si può utilizzare
asciinema upload registrazione.cast
.
Le registrazioni caricate in rete hanno una durata limitata a una settimana, dopodiché sono automaticamente cancellate.
Per evitare che le registrazioni vengano rimosse, è necessario registrare un account sul sito ufficiale oppure, in alternativa, hostare un proprio server.
Ulteriori informazioni
La pagina del progetto è asciinema.org e la repository ufficiale si trova su GitHub.