En el siguiente artículo vamos a echar un vistazo a ttyrec. Este es un programa que cuenta ya con unos cuantos años, pero que todavía es capaz de grabar la salida TTY de un programa en modo texto junto con marcas de tiempo y luego reproducirlo. Este programa es similar al comando script, pero además permite pausar, ralentizar o acelerar la reproducción.
Con ttrec podremos grabar todos los comandos que escribamos en el prompt de la terminal y los almacena en un archivo. Después permite reproducirlos con el comando ttyplay. Además también podremos convertir la grabación a un gif animado con ttygif. Ttrec es una bifurcación del comando script para registrar información de temporización con precisión de microsegundos.
Características generales de ttyrec
Algunas de las características que incluye son:
- ttyrec requiere menos parámetros para grabar y reproducir que otras opciones para grabar la terminal.
- Registros en un solo archivo.
- Puede grabar emacs -nw, vi, lynx o cualquier programa que se ejecute en tty.
- El archivo de salida contiene información de marca de tiempo además de los datos de la terminal.
- Vamos a poder sobrescribir o agregar contenido al archivo generado.
- Llamar automáticamente a uudecode.
- Acelera / disminuye las reproducciones.
- Permite examinar una grabación de ttyrecord en tiempo real.
- Podremos medir el tiempo de los datos grabados.
Instalar ttyrec
El programa ttyrec no está incluido por defecto en todas las distribuciones Gnu/Linux. Para instalarlo solo habrá que utilizar apt. Para instalarlo, en una terminal (Ctrl+Alt+T) tendremos que ejecutar:
sudo apt install ttyrec
Su uso es bastante sencillo, incluso más que el comando Script. Para ejecutarlo habrá que llamar al programa especificando el nombre del archivo de salida. El formato a utilizar sería algo como lo que sigue:
ttyrec < ArchivodeLog >
Cómo utilizar ttyrec
El siguiente ejemplo muestra a ttyrec grabando la sesión en un archivo llamado ttylog:
ttyrec -a ttylog
Se puede parar la grabación de la actividad de la terminal pulsando la combinación de teclas Ctrl+D. También podemos escribir exit.
Para utilizar este comando tendremos disponibles algunas opciones como:
- -a →Agrega la salida al archivo o ttyrecord, en lugar de sobrescribirla.
- -u → Con esta opción ttyrec llama automáticamente a uudecode y guarda su salida cuando los datos codificados aparecen en la sesión. Nos va a permitir transferir archivos desde el control remoto anfitrión.
- -e comando → Invoca un comando cuando se inicia ttyrec.
Para más información acerca de este programa, se puede visitar la página web del proyecto o consultar la página de manual escribiendo en la terminal (Ctrl+Alt+T):
man ttyrec
Los datos grabados se pueden reproducir con el comando ttyplay que viene incluido. Para reproducir la actividad grabada, es necesario utilizar el comando ttyplay seguido del nombre del archivo de registro:
ttyplay < ArchivodeLog >
Pasar la grabación a GIF
Vamos a poder utilizar TTYGIF para pasar la grabación a GIF. Este programa tiene el proyecto subido a GitHub con instrucciones sobre su instalación y uso.
sudo apt install imagemagick ttyrec gcc x11-apps git clone https://github.com/icholy/ttygif.git cd ttygif make sudo make install
Crear un gif es muy sencillo. Primero iniciamos la grabación con:
ttyrec ejemplo
Una vez hayamos terminado, podemos utilizar la combinación Ctrl+D en la terminal. También podemos hacerlo con la orden exit, con el inconveniente de que se grabará ese último comando en el GIF generado.
Ahora, para pasar a formato gif no hay más que utilizar un comando como el siguiente:
ttygif ejemplo
Y ya lo tenemos. Nuestro gif se habrá guardado en el fichero tty.gif. Si obtenemos un error del tipo: Error: WINDOWID environment variable was empty, será necesario configurar WINDOWID manualmente. Esto se puede hacer escribiendo en la terminal (Ctrl+Alt+T):
sudo apt-get install xdotool export WINDOWID=$(xdotool getwindowfocus)
Tras escribir los anteriores comandos, ya podemos volver a lanzar el comando ttygif para comenzar a crear el gif. La creación de este archivo puede tardar un poco.
Desinstalar
Para eliminar ttyrec de nuestro equipo solo hay que abrir una terminal (Ctrl+Alt+T) y escribir el siguiente comando:
sudo apt remove ttyrec
Programas como este son una buena opción para las grabaciones de sesiones de la terminal. Este tipo de programas son una buena opción para compartir conocimientos o tutoriales. El comando ttyrec, a pesar de que no viene instalado de manera predeterminada, es una buena opción para los usuarios que no están acostumbrados a ejecutar muchos comandos en el terminal. Esta es una más de las muchas posibilidades que existen hoy en día para grabar y reproducir la actividad de la terminal.