Présentation, cours

Niveau : Star Star Empty Empty Empty
Résumé : script, scriptreplay

Vous voulez préparer un cours ou une présentation à base de ligne de commande, espionner quelqu'un ... ?

Ça vous ennuie de taper les commandes en direct ?

J'ai la solution : script.

Script

Script est une commande qui crée un faux terminal virtuel et duplique tout ce qui s'y passe dans un fichier typescript.

Exemple :

$ script
# on est ici dans un terminal
$ echo coucou
> coucou
$ exit
# on est sorti du terminal
$ cat typescript
> $ echo coucou
> coucou
> $ exit

Dit comme ça, ça ne semble pas très utiles mais 2 choses vont tout changer. La première c'est que script fait un vrai terminal virtuel et pas seulement une redirection, ce qui veut dire que contrairement aux pipe (|) et autres redirections (>), il est capable d'enregistrer ce qui va sur le terminal (Il est important de savoir faire la différence entre le terminal et stdout).

Exemple : la commande time. Cette commande écrit le temps d'exécution directement sur le terminal et pas dans la sortie standard, on ne peut donc pas la récupérer facilement, script le peut.

Scriptreplay

La 2e commande qui va tout changer : scriptreplay.

Maintenant faites le même test mais enregistrez vos commande avec le paramètre -t (la sortie de -t va dans stderr, ça pourrait être mieux, mais c'est comme ça) :

$ script -t 2> timer

Et cette fois utilisez scriptreplay pour lire ce qui a été généré :

$ scriptreplay timer typescript

Et là vous avez out ce qu'il faut pour faire une présentation qui dure exactement le même temps que celui qui vous a été nécessaire pour taper les commandes.

Si vous voulez adapter les timer vous pouvez, le script est éditable, mais bon à la main c'est un peu chiant. Par contre vous pouvez utiliser ctrl-s (pause) et ctrl-q (unpause) pour contrôler l'exécution du rendu.

PS : pour ceux qui suivent, il est possible de remplacer mon ssh -t de l'article sur le test de bootloader par une commande script, ce qui est un peu plus propre.

Tags:,
Vus : 403
Publié par Peck : 100