LINUX

Termtosvg: una herramienta para registrar sesiones de terminal en Linux

terminal linux registro termtosvg

Durante una presentación o un curso / tutorial, a menudo necesita presentar los resultados de los comandos ejecutados en su terminal. Cuando la audiencia está presente, es posible mostrar la salida de inmediato, pero para aquellos que no están presentes, sería interesante para ellos tener un video grabado que muestre la ejecución del comando. Esto se puede hacer con algunas herramientas, pero echaremos un vistazo en particular a termstovg, una grabadora de terminal de Linux escrita en Python que muestra el resultado como animaciones SVG.

Termstovg es una herramienta escrita en Python que permite grabar su sesión de terminal Linux. La forma interesante es el render que proporciona como animaciones SVG independientes. Luego, puede usar su navegador web para reproducir la animación después de la grabación. Esta herramienta tiene varios temas disponibles para grabar una sesión de terminal usando un tema de color específico. Es un Proyecto Github desarrollado por Nicolas Bedos lo cual es muy interesante.

Instalar termstovg

Todo lo que necesita como requisito previo es Python instalado en su computadora Linux. La buena noticia es la compatibilidad con python 3.5 y más. En Ubuntu 18.04, por ejemplo, ya ha instalado Python y la versión predeterminada es python-3.6. Puede comprobar lo siguiente:

$ dpkg -l | grep python3.6
ii libpython3.6:amd64 3.6.5-3 amd64 Shared Python runtime library (version 3.6)
ii libpython3.6-minimal:amd64 3.6.5-3 amd64 Minimal subset of the Python language (version 3.6)
ii libpython3.6-stdlib:amd64 3.6.5-3 amd64 Interactive high-level object-oriented language (standard library, version 3.6)
ii python3.6 3.6.5-3 amd64 Interactive high-level object-oriented language (version 3.6)
ii python3.6-minimal 3.6.5-3 amd64 Minimal subset of the Python language (version 3.6)

Ahora necesitas instalar también pip para python

$ sudo apt install python3-pip
Reading package lists... Done
Building dependency tree 
Reading state information... Done
The following additional packages will be installed:
...
...

Ahora instale los requisitos para termtosvg que son

  • pyte para renderizar la pantalla del terminal
  • svgwrite para crear animaciones SVG
  • python-xlib para consultar la configuración del color del servidor X y analizar los datos de Xresources
  • base16-xresources para temas de color predeterminados
$ pip3 install pyte python-xlib svgwrite
Collecting pyte
...
Collecting python3-xlib
 Downloading https://files.pythonhosted.org/packages/ef/c6/2c5999de3bb1533521f1101e8fe56fd9c266732f4d48011c7c69b29d12ae/python3-xlib-0.15.tar.gz (132kB)
....

Ahora, para los temas de color predeterminados, ejecute el siguiente comando:

$ curl https://raw.githubusercontent.com/chriskempson/base16-xresources/master/xresources/base16-default-dark-256.Xresources >> ~/.Xresources
$ xrdb -load ~/.Xresources

Un archivo ~/.Xressources ahora está presente en su hogar y puede pegar los colores termtosvg a continuación.

$ vim ~/.Xresources

termtosvg.foreground: #f8f8f2
termtosvg.background: #272822
termtosvg.color0: #272822
termtosvg.color1: #f92672
termtosvg.color2: #a6e22e
termtosvg.color3: #f4bf75
termtosvg.color4: #66d9ef
termtosvg.color5: #ae81ff
termtosvg.color6: #a1efe4
termtosvg.color7: #f8f8f2
termtosvg.color8: #75715e
termtosvg.color9: #fd971f
termtosvg.color10: #383830
termtosvg.color11: #49483e
termtosvg.color12: #a59f85
termtosvg.color13: #f5f4f1
termtosvg.color14: #cc6633
termtosvg.color15: #f9f8f5

Entonces puedes instalar termtosvg a través de pip

# pip3 install termtosvg
Collecting termtosvg
 Downloading https://files.pythonhosted.org/packages/04/43/dd755b9185f58c4a4cf49fa710a0966b32b68e930c33bab785cf926201bd/termtosvg-0.2.2-py3-none-any.whl
Collecting pyte (from termtosvg)
 Downloading https://files.pythonhosted.org/packages/66/37/6fed89b484c8012a0343117f085c92df8447a18af4966d25599861cd5aa0/pyte-0.8.0.tar.gz (50kB)
 100% |████████████████████████████████| 51kB 6.0MB/s 
Collecting python-xlib (from termtosvg)
 Downloading https://files.pythonhosted.org/packages/54/44/e56454e3ce8fd2333e635d704e157e9cc432a375ab6b680e3c98dd7c3bc0/python_xlib-0.23-py2.py3-none-any.whl (123kB)
 100% |████████████████████████████████| 133kB 5.5MB/s 
Collecting svgwrite (from termtosvg)
 Downloading https://files.pythonhosted.org/packages/9f/27/a29fc710b5fc4dc8031d55e903c1352a194df4014dccf8b507049dd754e6/svgwrite-1.1.12-py2.py3-none-any.whl (64kB)
 100% |████████████████████████████████| 71kB 6.5MB/s 
Requirement already satisfied: setuptools in /usr/lib/python3/dist-packages (from termtosvg)
Collecting wcwidth (from pyte->termtosvg)
 Downloading https://files.pythonhosted.org/packages/7e/9f/526a6947247599b084ee5232e4f9190a38f398d7300d866af3ab571a5bfe/wcwidth-0.1.7-py2.py3-none-any.whl
Requirement already satisfied: six>=1.10.0 in /usr/lib/python3/dist-packages (from python-xlib->termtosvg)
Requirement already satisfied: pyparsing>=2.0.1 in /usr/lib/python3/dist-packages (from svgwrite->termtosvg)
Building wheels for collected packages: pyte
 Running setup.py bdist_wheel for pyte ... done
 Stored in directory: /root/.cache/pip/wheels/c0/dd/4a/d0ec26b9d07a3b48e25ba3456dc9bcab875686af6da9e23fcd
Successfully built pyte
Installing collected packages: wcwidth, pyte, python-xlib, svgwrite, termtosvg
Successfully installed pyte-0.8.0 python-xlib-0.23 svgwrite-1.1.12 termtosvg-0.2.2 wcwidth-0.1.7

Grabar una sesión de terminal

Para comenzar a grabar su terminal de sesión en vivo, simplemente ejecute el termstosvg comando en su terminal y use el exit comando para finalizar el proceso de grabación.

Iniciar la grabación

$ termtosvg
Recording started, enter "exit" command or Control-D to end

Luego ingrese los comandos y trabaje. Cuando haya terminado, puede finalizar la sesión de grabación en vivo. Puede ver que indica ruta (generalmente /tmp) y el nombre del archivo grabado

$ exit
exit
Recording ended, SVG animation is /tmp/termtosvg_ksz18r3y.svg

Lea también:

Si desea ver el resultado, use su navegador web para abrir la animación. Entonces, ejecute su navegador web, presione ctrl + o y ubique el archivo de animación en el /tmp carpeta, se reproducirá automáticamente. Si tiene algún problema o tiene alguna idea para mejorar el proyecto, publique directamente su problema en el página del problema en el proyecto GitHub.

Publicaciones relacionadas

Deja una respuesta

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

Botón volver arriba
Cerrar