Una cosa lleva a la otra y mostrar aquí cómo funciona Yokadi me hizo aprender a grabar lo que iba escribiendo en la terminal. Voy a hablaros de dos programillas:

script , que localizó mi hermano y creador de este simpático blog

, que localizó mi hermano y creador de este simpático blog asciinema , que me recomendó victorhck, máximo comentarista de este blog

Script

Script es una herramienta de UNIX que nos permite grabar una sesión de la terminal en un archivo que después podemos reproducir. Es muy fácil de utilizar, empezamos a grabar con script y paramos con exit o Ctrl+D . Si no le damos un nombre de archivo, creará uno llamado typescript :

ondiz@slimbook101:~$ script Script iniciado; el fichero es typescript ondiz@slimbook101:~$ echo 'Hola!' Hola! ondiz@slimbook101:~$ exit Script terminado; el fichero es typescript ondiz@slimbook101:~$

Para reproducir lo que hemos grabado usaremos el comando scriptreplay . Para ello necesitamos también el archivo de con los tiempos que generamos así con script :

script -t 2> tiempos

scriptreplay da por hecho que el archivo que tiene que leer se llama typescript (podemas darle otro tras -s ) y solo necesita que especifiquemos el archivo con los tiempos:

scriptreplay tiempos

Esto nos repetirá lo que habíamos guardado.

Aquí tenéis su manual para que le deis caña.

Asciinema

Asciinema va un paso más allá y nos genera un vídeo en su web, que luego podemos compartir mediante la URL. Digamos que es como un gist de vídeo.

Si he entendido bien, lo que hace por dentro es grabar lo que vamos escribiendo en un archivo JSON (asciicast) que envía a la web y luego su reproductor interpreta. Este reproductor interpreta los códigos de escape ANSI, las secuencias con las que se controla el formato y movimiento en la terminal. Por ejemplo, si ve un \033[5A mueve el cursor hacia arriba cinco líneas y con \033[0;32m pone el texto de color verde.

Vamos a ver cómo se usa. Como no lo tenía en los repositorios, lo instalé con pip3 :

sudo pip3 install asciinema

Iniciamos la grabación con asciinema rec , nos mostrará este mensaje:

ondiz@slimbook101:~$ asciinema rec ~ Asciicast recording started. ~ Hit Ctrl-D or type "exit" to finish.

Paramos de grabar escribiendo exit o con Ctrl+D , al igual que script . Nos mostrará un mensaje explicando cómo hacer para subir la grabación a la web o matarla:

~ Asciicast recording finished. ~ Press to upload, to cancel.

Si le damos un nombre de archivo a asciinema rec , nos guardará el JSON, que tiene esta pinta.

Este archivo podemos reproducirlo en la terminal con asciinema play o subirlo a la web con asciinema upload .

Podéis leer más sobre asciinema en su documentación. Los frikazos hasta podéis hurgar en el código.

Espero que grabéis muchas cosas ahora 😀