Enregistrer et rejouer une session de terminal avec Asciinema sous Linux
Introduction
Asciinema est une alternative légère et très efficace à un enregistreur de session de terminal Script. Il vous permet d’enregistrer, de rejouer et de partager vos enregistrements de session de terminal au format JSON.
Le principal avantage par rapport aux enregistreurs de bureau tels que Recordmydesktop, Simplescreenrecorder, Vokoscreen ou Kazam est qu’Asciinema enregistre toutes les entrées, sorties et erreurs standard du terminal sous forme de texte ASCII brut a
avec code d’échappement ANSI .
Par conséquent, la taille du fichier au format JSON est minuscule, même pour une session de terminal plus longue. De plus, le format JSON donne à l’utilisateur la possibilité de partager le fichier de sortie JSON d’Asciinema via un simple transfert file
, sur le site Web public dans le cadre d’un code HTML intégré ou de le partager sur Asciinema.org en utilisant le compte asciinema. Enfin, si vous avez fait une erreur pendant votre session de terminal, votre session de terminal
enregistrée peut être modifiée rétrospectivement à l’aide de n’importe quel éditeur de texte, c’est-à-dire si vous connaissez la syntaxe du code d’échappement ANSI.
Difficulté
FACILE
Conventions
- # – nécessite que les commandes Linux données soient exécutées avec les privilèges root, soit directement en tant qu’utilisateur root, soit en utilisant la commande
sudo - $ – nécessite que des commandes Linux données soient exécutées en tant qu’utilisateur régulier non privilégié
Installation d’un référentiel standard
Il est très probable qu’asciinema soit installable dans le cadre de votre dépôt de distribution. Cependant, si Asciinema n’est pas disponible sur votre système ou si vous souhaitez installer la dernière version, vous pouvez utiliser le gestionnaire de paquets
Linuxbrew pour effectuer l’installation d’Asciinema comme décrit ci-dessous dans la section « Installation à partir des sources ».
Arch Linux
pacman -S asciinema
Debian
apt install asciinema
Ubuntu
sudo apt install asciinema
Chapeau mou
sudo dnf install asciinema
Installation à partir de la source
La manière la plus simple et recommandée d’installer la dernière version d’Asciinema à partir des sources est d’utiliser le gestionnaire de paquets Linuxbrew.
Conditions préalables
La liste suivante de prérequis répond aux exigences de dépendance pour Linuxbrew et Asciinema.
- git
- gcc
- faire
- rubis
Avant de procéder à l’installation de Linuxbrew, assurez-vous que les paquets ci-dessus sont intégrés à votre système Linux.
Arch Linux
pacman -S git gcc make ruby
Debian
apt install git gcc make ruby
Ubuntu
sudo apt install git gcc make ruby
Chapeau mou
sudo dnf install git gcc make ruby
CentOS
yum install git gcc make ruby
Installation de Linuxbrew
Le gestionnaire de paquets Linuxbrew est un fork du populaire gestionnaire de paquets Homebrew utilisé sur le système d’exploitation MacOS d’Apple. Homebrew est connu pour sa facilité d’utilisation, ce qui sera visible sous peu, lorsque nous utiliserons
Linuxbrew pour installer Asciinema. Exécutez la commande ci-dessous pour installer Linuxbrew sur votre distribution Linux :
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install)"
Linuxbrew est maintenant installé sous votre $HOME/.linuxbrew/. Il ne vous reste plus qu’à l’intégrer à votre variable d’environnement exécutable PATH.
echo 'export PATH="$HOME/.linuxbrew/bin:$PATH"' >>~/.bash_profile
. ~/.bash_profile
Pour confirmer l’installation de Linuxbrew, vous pouvez utiliser la commande brew pour interroger sa version :
brew --version
Homebrew 1.1.7
Homebrew/homebrew-core (git revision 5229; last commit 2017-02-02)
Installation d’Asciinema
Avec le Linuxbrew maintenant installé, l’installation d’Asciinema devrait être simple en une seule ligne :
brew install asciinema
Vérifiez les corrects de l’installation d’asciinema :
asciinema --version
asciinema 1.3.0
Enregistrement de la session du terminal
Après tout ce travail acharné avec l’installation, il est enfin temps de s’amuser. Asciinema est un logiciel extrêmement facile à utiliser. En fait, la version actuelle 1.3 n’a que quelques options en ligne de commande
disponibles et l’une d’entre elles est --help.
Commençons par enregistrer une session de terminal à l’aide de l’option rec. La commande linux suivante commencera à enregistrer votre session terminal
, après quoi vous aurez la possibilité de supprimer votre enregistrement ou de le télécharger sur asciinema.org site Web pour référence future.
asciinema rec
Une fois que vous avez exécuté la commande ci-dessus, vous serez informé que votre session d’enregistrement asciinema a commencé et que l’enregistrement peut être arrêté en entrant CTRL+D key sequence ou execution
de la commande exit. Si vous êtes sur Debian/Ubuntu/Mint Linux, vous pouvez essayer ceci comme premier enregistrement d’asciinema :
su
Password:
apt install sl
exit
sl
Une fois que vous avez entré la dernière commande de sortie, il vous sera demandé :
exit
~ Asciicast recording finished.
~ Press <Enter> to upload, <Ctrl-C> to cancel.
https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4
Si vous n’avez pas envie de télécharger vos compétences super secrètes en ligne de commande de kung-fu sur asciinema.org, vous avez la possibilité de stocker l’enregistrement d’Asciinema sous forme de fichier local au format JSON. Par exemple, l'/tmp/my_rec.json :
asciinema rec /tmp/my_rec.json
Une autre caractéristique extrêmement utile de l’asciinema est le découpage du temps. Si vous écrivez lentement ou si vous faites du multitâche, le temps entre la saisie et l’exécution de vos commandes peut
s’étirer considérablement. Asciinema enregistre vos frappes en temps réel, ce qui signifie que chaque pause que vous faites se répercutera sur la durée de votre vidéo résultante. Utilisez l’option -w pour raccourcir le temps entre
vos frappes. Par exemple, la commande linux suivante réduit le temps entre vos frappes à 0,2 seconde :
asciinema rec -w 0.2
Rejouer la session de terminal enregistrée
Il existe deux options pour rejouer vos sessions de terminal enregistrées. Tout d’abord, jouez à votre session de terminal directement à partir de asciinema.org. C’est-à-dire, à condition que vous ayez préalablement téléchargé votre enregistrement sur
asciinema.org et que vous disposiez d’une URL valide :
asciinema play https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4
Vous pouvez également utiliser votre fichier JSON stocké localement :
asciinema play /tmp/my_rec.json
Utilisez la commande wget pour télécharger l’enregistrement précédemment téléchargé. Il vous suffit de .json ajouter à votre URL existante :
wget -q -O steam_locomotive.json https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4.json
asciinema play steam_locomotive.json
Intégration de la vidéo au format HTML
Enfin, Asciinema est également livré avec un lecteur JavaScript autonome. Ce qui signifie qu’il est facile de partager les enregistrements de vos sessions de terminal sur votre site Web. Les lignes ci-dessous illustrent cette idée avec a
code index.html simple. Tout d’abord, téléchargez toutes les pièces nécessaires :
cd /tmp/
mkdir steam_locomotive
cd steam_locomotive/
wget -q -O steam_locomotive.json https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4.json
wget -q https://github.com/asciinema/asciinema-player/releases/download/v2.4.0/asciinema-player.css
wget -q https://github.com/asciinema/asciinema-player/releases/download/v2.4.0/asciinema-player.js
Ensuite, créez un nouveau fichier /tmp/steam_locomotive/index.html avec le contenu suivant :
<html>
<head>
<link rel="stylesheet" type="text/css" href="./asciinema-player.css" />
</head>
<body>
<asciinema-player src="./steam_locomotive.json" cols="80" rows="24"></asciinema-player>
<script src="./asciinema-player.js"></script>
</body>
</html>
Une fois prêt, ouvrez votre navigateur Web, appuyez sur CTRL+O et ouvrez votre fichier /tmp/steam_locomotive/index.html nouvellement créé. Le résultat doit ressembler à l’exemple de vidéo ci-dessous :
Conclusion
Comme mentionné précédemment, le principal avantage pour l’enregistrement de vos sessions de terminal avec l’enregistreur Asciinema est le fichier de sortie minuscule qui rend vos vidéos extrêmement faciles à partager. L’exemple ci-dessus
produit un fichier contenant 58 472 caractères, soit 58 Ko pour une session vidéo de 22 secondes. Lorsque l’on examine le fichier JSON de sortie, même ce nombre est considérablement gonflé, principalement en raison du fait que nous avons
vu une locomotive à vapeur se précipiter sur notre terminal. Une session de terminal normale de cette durée devrait produire un fichier de sortie beaucoup plus petit.
Ensuite, lorsque vous êtes sur le point de poser une question sur les forums à propos de votre problème de configuration Linux et que vous avez du mal à expliquer comment reproduire votre problème, exécutez simplement :
asciinema rec
et collez l’URL résultante dans votre message de forum.
Dépannage
asciinema a besoin d’un UTF-8
Message d'erreur:
asciinema needs a UTF-8 native locale to run. Check the output of `locale` command.
Solution :
Générer et exporter des paramètres régionaux UTF-8. Par exemple:
localedef -c -f UTF-8 -i en_US en_US.UTF-8
export LC_ALL=en_US.UTF-8