69 - Grabar el terminal

69 - Grabar el terminal

En este episodio del podcast te explico algunas razones para grabar el terminal, y que herramientas tienes disponibles para hacerlo de forma sencilla.

1:25
-3:15

Hasta la fecha no he utilizado ninguna aplicación para grabar el terminal. A lo mejor te preguntas que para que quiero grabar el terminal. La cuestión es que entre artículos, tutoriales, y otras publicaciones en la página web, al final le dedico mucho tiempo a trascribir las instrucciones que utilizo. El problema es que en ocasiones, o me equivocado al hacerlas o bien me olvido de alguna parte. Es posible que tu mismo, en alguna ocasión te hayas puesto en contacto conmigo para corregir algún artículo o tutorial.

Grabar el terminal

Grabar el terminal

¿porque grabar el terminal?

Además de grabar el terminal para poder utilizarlo en tus artículos o publicaciones, también te puede ser interesante hacerlo por otras razones. Así por ejemplo para tomar tus notas de como hacer una determinada instalación. Otra razón podría ser la de llevar un registro de todo lo que realizas en una determinada sesión.

También para hacer demostraciones del funcionamiento de una aplicación o incluso el desarrollo de una aplicación. Una demostración que haciéndola de esta manera estás seguro que no tendrá ningún problema.

Probando diferentes herramientas

Para decidirme por una u otra opción, además de leer sobre cada una de ellas, las he instalado en mi equipo y probado. Sin embargo, en esta ocasión, me he acordado y he utilizado docker. Ya en el tutorial sobre el terminal recomendé el uso de docker para no teber que preocuparte de lo que haces en el terminal. Como si borras todo el sistema operativo.

En este caso, al probar casi una docena de soluciones, no quería llenar mi recién instalado Ubuntu de archivos que no volvería a utilizar con casi toda probabilidad. Así que he levantado un docker de Ubuntu para realizar allí todas las pruebas. Es una solución realmente cómoda y sobre todo sencilla. De esta manera una vez has terminado, tan solo tienes que borrar imágenes y contendores y punto pelota.

En los siguientes apartados encontrarás una descripción de las diferentes herramientas que he probado. Además de la descripción he incluido como instalarla, y unas instrucciones básicas para su uso.

script

script es la herramienta de referencia a la hora de grabar sesiones de terminal. Viene instalado por defecto en la mayoría de distribuciones, y es tremendamente sencillo de utilizar.

El uso es muy sencillo, tan solo tienes que ejecutar script y comenzará a grabar. Todo se graba en un archivo llamado typescript. Pero puedes grabar en cualquier otro archivo, ejecutando para ello script grabacion.txt, por ejemplo. Tienes algunas opciones interesantes, como

  • -a para añadir a un arhivo anterior
  • -o te permite limitar el archivo de salida
  • -t guarda la información de tiempos en un archivo

Para salir tienes que utilizar el atajo de teclado Ctrl+D

Para reproducir tienes que utilizar la herramienta scriptreplay, que te permite reproducir lo que has grabado previamente utilizando para ello la información de tiempos. Pero además tiene algunas opciones muy interesantes para mejorar la reproducción, como son,

  • -d permite aumentar la velocidad de reproducción
  • -m te permite configurar el tiempo máximo de espera

asciinema

asciinema te permite no solo grabar tus sesiones con el terminal, sino, además compartirlas con otros usuarios.

Respecto al funcionamiento de esta herramienta indicarte que funciona como un pseudo-terminal de forma que lo que tu escribes no lo estás haciendo directamente en el terminal. Primero va a asciinema y esto luego lo manda al shell.

Por otro lado, asciinema guarda en bruto todo lo que se produce en el terminal. Tanto el texto como las secuencias de control. Así, cuando reproduces una grabación, no es vía imprimir directamente lo que se ha guardado, sino que se debe interpretar.

Instalación

asciinema se encuentra en los repositorios oficiales de Debian, Ubuntu, Raspbian, etc, con lo que la instalación es tan sencilla como, ejecutar la siguiente instrucción en un terminal,

sudo apt install asciinema

Uso y funcionamiento

El uso es muy sencillo. Así tienes las siguientes opciones a utilizar,

  • rec para grabar. Tan sencillo como asciinema rec grabacion.cast.
  • play para reproducir. Indicar que tiene dos opciones interesantes para modificar la reproducción. Por un lado -i que te permite definir el máximo tiempo de inactividad en segundos. Por otro lado tienes también la opción de definir la velocidad de reproducción. Es tan sencillo de usar como asciinema play grabacion.cast.
  • cat muestra todo lo que se ha grabado directamente en el terminal. Por supuesto lo puedes guardar directamente en un archivo de texto con asciinema cat grabacion.cast > grabacion.txt.

Además asciinema tiene asociado un servicio en la nube, donde puedes subir tus grabaciones, no solo para compartirlas con otros, sino también para reproducirlas directamente allí.

Además también existen otras herramientas que te permitirán guardar tu grabación en otros formatos. Algunas opciones son asciicast2gif para guardar como imagen Gif o asciicast-to-svg. O incluso que termosvg sobre el que comentaré mas adelante.

termosvg

termosvg es una herramienta implementada en Python que te permite grabar todo lo que sucede en tu terminal y guardarlo como una animación SVG. Puedes ver algunos ejemplos de las animaciones que se pueden obtener.

La ventaja de esta aplicación es que el resultado generado es una animación que puedes insertar en cualquier página.

Además admite plantillas, lo que facilita la personalización de colores, el aspecto del terminal y el control de las animaciones.

Por último es compatible con el formato de grabación de asciinema, que te he comentado anteriormente. Lo cual es realmente interesante, porque te permite hacer tu grabación en texto, para posteriormente pasarla a SVG. De esta forma tienes lo mejor de los dos mundos.

Instalación

La instalación la tienes que realizar a través de pip3, porque no existe paquete disponible para Ubuntu. Pero es igual de sencillo que en otras ocasiones.

sudo apt install python3-pip
sudo pip3 install pyte python-xlib svgwrite
sudo pip3 install termtosvg

Con la primera línea instalas pip3, en el caso que no lo tengas instalado. Con la segunda línea instalas las dependencias para el correcto funcionamiento de esta herramienta.Y finalmente, con la tercera línea instalas la aplicación necesaria.

Uso y funcionamiento

Como el resto de herramientas que has visto hasta el momento, termtosvg es muy sencilla de utilizar. Así, para grabar un terminal tan solo tienes que ejecutar la siguiente instrucción,

termtosvg animacion.svg

En el caso de que quisieras utilizar una plantilla

termtosvg -t ~/plantillas/plantilla.svg

Pero tal y como te he comentado anteriormente, esta herramienta te permite grabar en formato asciinema. Esto es tan sencillo como

termtosvg record grabacion.cast

En el caso de que posteriormente lo quisieras transformar en una animación,

termtosvg render grabacion.cast animacion.svg

Por supuesto es posible configurar mediante parámetros determinados aspectos de la grabación. Así puedes definir la máxima o mínima duración de un frame, la geometría, la plantilla, y mucho mas.

showterm

showterm se trata de una herramienta un tanto curiosa, porque lo que hace es graba una sesión y la sube directamente a internet, indicándote la dirección donde puedes consultarla. Eso si, no puedes editarla

Instalación

sudo apt install rubygems
sudo gem install showterm

Uso

Para grabar, simplemente tienes que ejecutar la sigueinte instrucción,

showterm

ttyrec

Se trata de una aplicación derivada de script. Se encuentra en los repositorios oficiales de Ubuntu.

Uso ttyrec te permite grabar todo lo que sucede en el terminal. Para detener la grabación utilizar el atajo de teclado Ctrl+D.

Para reproducir lo que has grabado ttplay mas algunas opciones, como puede ser -s2 para reproducir a doble de velocidad. Pero también mientras estás reproduciendo puedes aumentar o disminuir la velocidad de reproducción utilizando las teclas + y - respectivamente.

shelr

shelr es una herramienta te permite grabar y reproducir todo lo que haces en el terminal. No solo esto, si no que además te permite publicarlo. Es una aplicación implementada en Ruby y el paquete está disponible para la mayoría de las distribuciones linux. No solo esto sino que también la tienes disponible para MacOSX

Instalación

shelr se encuentra en los repositorios oficiales de Ubuntu. Incluso existe una PPA desde donde descargarte la última versión. Así, para instalarla tan solo tienes que ejecutar,

sudo apt install shelr

Uso

Para grabar

shelr record

Para ver todas las grabaciones que tienes disponibles

shelr list

Para reproducir la última grabación

shelr play last

Terminalizer

terminalizer es una herramienta con la que grabar tu terminal y generar gif animados. Se trata de una herramienta altamente personalizable y multipltaforma. Permite configurar tanto las fuentes coleres y estilos mediante CSS.

Instalación

npm install -g terminalizer

Utilización

Para grabar,

terminalizer record <nombre-de-la-grabación>

Para reproducir

terminalizer play <nombre-de-la-grabación>

Para crear tu propio gif animado

terminalizer render demo

El problema es que utiliza una librería externa para crear el gif animado. Pero tiene algunas características interesantes como,

  • puedes definir la calidad de la imagen renderizada
  • es posible reducir el número de frames
  • puedes configurar la velocidad de grabación y reproducción

ttystudio

ttystudio Aplicación implementada en Node.js que te permite grabar el terminar y guardarlo con formato GIF o APNG. Tiene la ventaja de que no necesita de dependencias externas.

Instalación

npm install -g ttystudio

Utilización

ttystudio output.gif

Para terminar la grabación solo tienes que utilizar el atajo de teclado Ctrl+Q.

Termrecord

Instalación

TermRecord, como todas las herramientas que te he comentado hasta el momento, se trata de una herramienta super simple que te permite grabar el terminal. Sin embargo, la diferencia respectoa a otras es que lo guarda directamente en HTML

Esta aplicación utiliza script junto con la información relativa al tiempo y crea una página web autocontenida que te permite reproducir de forma sencilla la sesión que has grabado, sin necesidad de cargar nada mas.

A efectos demostrativos es perfecta. De esta manera te evitas que durante la demostración haya algún error. Cosa que como sabes sucede de forma habitual.

Instalación

sudo apt install python-pip
sudo pip install TermRecord

Utilización

Tan sencillo como ejecutar la siguiente instrucción

TermRecord -o sesion.html

Conclusión

Como te he comentado en el podcast, yo me he decantado por asciinema. Pero te recomiendo que las pruebes, para sacar tus propias conclusiones. Igualmente, te recomiendo que estas pruebas las hagas con docker para evitar llenar tu equipo de aplicaciones que nunca utilizarás.


Más informacion,

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *