Recherche de site Web

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' suivant sera stocké sous le nom /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

Articles connexes: