Grabar sesiones de terminal en Linux usando Asciinema

Asciinema es una utilidad de línea de comandos gratuita y de código abierto que se puede utilizar para grabar sesiones de terminal en distribuciones de Linux. Puede capturar comandos y su salida en alta calidad, y produce texto nítido y claro, mejor que otras herramientas de grabación de pantalla y transmisión de pantalla utilizadas para capturar una sesión de escritorio completa.

Características principales de Ascinema

Además de grabar la salida de texto visible en un emulador de terminal, Asciinema también puede agregar una sesión de grabación en curso a una salida previamente grabada, lo que permite a los usuarios crear una transmisión continua a partir de múltiples transmisiones.

La salida capturada por Asciinema se puede reproducir en cualquier momento en su instalación de Linux. También puede cargar la salida capturada en el sitio web de Asciinema y compartirla con otros. Si tiene un sitio web o una aplicación web, puede incrustar el resultado capturado y reproducirlo en un navegador web o en un contenedor de aplicación web.

Tenga en cuenta que la salida capturada no se procesa en formatos de video como mp4 y webm. Se presenta en un formato personalizado llamado «asciicast» y solo Asciinema puede reproducirlo. Un reproductor basado en Javascript para reproducir la salida asciicast capturada en los navegadores web está disponible en el sitio web de Asciinema.

Instalación de Ascinema en Linux

Puede instalar Asciinema en la última versión de Ubuntu ejecutando el siguiente comando:

$ sudo apt install asciinema

También puede instalarlo usando el administrador de paquetes pip en Ubuntu y otras distribuciones de Linux. Para hacerlo, ejecute los siguientes dos comandos en Ubuntu:

$ sudo apt install python3-pip

$ pip3 install asciinema

Más paquetes y más instrucciones de instalación específicas de distribución están disponibles aquí .

Usando Ascinema en Linux

Para comenzar a registrar la salida del terminal, ejecute el comando Asciinema en el siguiente formato:

$ asciinema rec

Asciinema comenzará a registrar la salida del shell tan pronto como ejecute el comando. Le mostrará un mensaje en la terminal, como se muestra en la siguiente captura de pantalla:

Como puede ver en el resultado anterior, Asciinema ha comenzado a grabar un asciicast que se almacenará en la carpeta «/tmp» una vez que finalice la grabación. Cualquier cosa que escriba o ejecute en la terminal una vez que haya comenzado la grabación, se capturará y guardará en un archivo «.cast». La grabación se puede detener presionando la tecla <Ctrl+D> o escribiendo el comando «salir».

Una vez que haya detenido la grabación en curso, se le pedirá que la guarde en su disco duro local o que la cargue en el sitio web oficial de Asciinema. Puede presionar la tecla <Entrar> para cargar el asciicast capturado en línea o puede presionar el atajo de teclado <Ctrl+C> para guardarlo en el disco local (como se muestra en la captura de pantalla a continuación):

Por defecto, Asciinema guarda la salida capturada en la carpeta «tmp». Para guardar un asciicast en una ubicación personalizada en un disco de almacenamiento local sin cargarlo en línea, proporcione una ruta de archivo al comando «rec». Aquí hay un comando de ejemplo:

$ asciinema rec » $INICIO /Descargas/archivo.cast»

Para cargar manualmente un asciicast capturado en el sitio web de Asciinema, ejecute un comando en el siguiente formato (reemplace la ruta del archivo según sea necesario):

$ asciinema upload / full / path / to / file.cast

Para agregar una nueva grabación a un asciicast existente, use el comando «agregar» siguiendo el formato (se iniciará una nueva sesión de grabación y la salida se agregará al archivo «.cast» suministrado):

$ asciinema rec –append / full / path / to / file.cast

Una vez que haya capturado un archivo «.cast», puede reproducirlo con el siguiente comando (reemplace la ruta del archivo según sea necesario):

$ asciinema play full /ruta/a/archivo.cast _ _ _

Aquí hay una pequeña demostración que muestra Asciinema asciicast en acción:

Tenga en cuenta que esta es una animación GIF reducida, no muestra la salida capturada en su máxima calidad en alta definición. Tiene que reproducir el archivo «.cast» usted mismo en su distribución de Linux para verlo en calidad total o tiene que incrustar la salida capturada en un sitio web y luego reproducirla usando la biblioteca Asciinema Javascript. También puede ver un asciicast en alta calidad después de cargarlo en el sitio web de Asciinema.

Aquí hay una muestra de asciicast de alta definición que puede ver en un navegador web visitando el sitio web oficial de Asciinema .

Para obtener más información sobre la utilidad de línea de comandos de Asciinema, ejecute los siguientes dos comandos:

$ hombre asciinema

$ asciinema – ayuda

También puede buscar documentación oficial en línea desde aquí .

Incrustación de Asciicast en su propio sitio web o aplicación web

Si solo desea compartir una sesión capturada en línea y no tiene su propio sitio web o aplicación web, el mejor método es cargarlo en línea en el sitio web oficial de Asciinema utilizando los comandos explicados anteriormente y luego compartir el enlace URL con otros.

Para incrustar un asciicast en su propio sitio web o aplicación web, deberá agregar la secuencia de comandos del reproductor Asciinema a su archivo html visitando la página donde su asciicast se cargó en línea. Por ejemplo, para insertar la muestra de Asciinema vinculada anteriormente , haga clic en el botón «Compartir» en la página web de asciicast para obtener el código de inserción. Aquí hay una captura de pantalla que muestra esto:

Si un archivo html muy simple contiene el siguiente código:

< p > Este es un asciicast de muestra. < / p >

< script id = «asciicast-335480» src = «https://asciinema.org/a/335480.js» async>< / script >

Verá un reproductor incrustado en su página web como este:

Conclusión

Asciinema proporciona un método para capturar resultados basados ​​en texto en alta calidad. A diferencia de otros métodos de grabación y captura de video, Aciinema guarda los datos sin procesar de una sesión capturada en un archivo de texto y los reproduce poco a poco. Esto produce un texto nítido y claro como si hubiera estado ejecutando los comandos y obteniendo la salida de texto en su propio hardware en tiempo real.