Lo que he aprendido: grabando la terminal

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

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 verde1.

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 😀


  1. Tenéis una explicación mejor sobre los códigos de escape en el capítulo 13 – Customizing The Prompt de The Linux command line 
Anuncios

2 pensamientos en “Lo que he aprendido: grabando la terminal

¡Opina sin miedo! (Puedes usar Markdown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s