Termtosvg: una herramienta para registrar sesiones de terminal en Linux
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.