Graba todo lo que pasa tu terminal con los comando script y scriptreplay

Puedes grabar una sesión de tu terminal en tu sistema GNU/Linux con el comando script y después reproducirlo mediante scriptreplay

Script y scriptreplay son un par de utilidades de linux, del paquete util-linux que nos servirán para guardar una serie de comandos que ejecutemos en nuestra terminal y después poder reproducirla.

Puede servirnos a la hora de realizar tutoriales, ya que a diferencia de vídeos, con script y scriptreplay podemos copiar directamente los comandos que se ejecutan en la terminal.

Todo está realizado con texto plano, nada de vídeos. Vamos a ver cómo grabar nuestra terminal.

Este artículo está basado en un artículo en inglés escrito por Seth Kenlon publicado bajo una licencia CC 4.0 by-sa y que puedes ver en este enlace:

Grabando la terminal

Para comenzar a grabar la terminal con el comando script, necesitamos proporcionar dos archivos de destino donde se guardará lo necesario para después volver a reproducirlos.

Necesitamos proporcionar el nombre del archivo de tiempo y el archivo donde se guardará todo lo que vayamos escribiendo al grabar la sesión. Por ejemplo:

script --timing=tiempo.tm mi_script

Con esto, el script guarda el archivo de los tiempos en un archivo llamada tiempo.tm y todo lo que vayamos escribiendo en un archivo llamado mi_script. Podemos llamarlos como queramos.

Aunque tal como dice la página man de script, la opción –timing está en desuso en favor de la opción –log-timing en el que podemos guardar los tiempos en dos formatos, clásico o avanzado.

Además si no especificamos ningún otro archivo script nos creará un archivo llamado typescript. Así que el comando anterior lo podemos sustituir por este:

script --log-timing mi_script

Al ejecutar cualquiera de los comandos anteriores, se empezará a grabar en texto plano todo lo que vayas escribiendo y vaya sucediendo en tu terminal.

Para detener la grabación podemos hacerlo mediante Ctrl+D o escribiendo exit.

Reproducir un script grabado

Cuando hemos finalizado la grabación de nuestra sesión de la terminal, podremos reproducirla mediante el comando scriptreplay y dándole los archivos a reproducir como argumentos:

scriptreplay --timing=tiempo.tm mi_script

Reproducir un archivo script es totalmente seguro, es decir, los comandos que se muestran no se están ejecutando realmente. Si se está ejecutando un comando rm -Rf esto no afecta a nuestro equipo.

Simplemente se reproduce lo que se grabó, no ejecuta esos mismos comandos en nuestro equipo, así que sin problemas.

Utilizando script y scriptreplay

Desconocía este par de utilidades, pero parecen muy útiles a la hora de enseñar comandos de manera didáctica o de compartir una sesión viendo qué pasos hay que seguir para realizar cierta tarea.

A diferencia de las capturas de pantalla, con estas opciones los archivos generados son más ligeros, y son texto plano, que se puede ver que hay dentro y se tiene la opción de poder copiar un determinado comando directamente desde lo que se está reproduciendo.

¿Qué te ha parecido a ti? Si usas un equipo con GNU/Linux seguro que ya tienes instaladas estas dos utilidades, así que te animo a probarlas y darles uso.

4 comentarios sobre “Graba todo lo que pasa tu terminal con los comando script y scriptreplay

  1. Hola Victor ! Te hago una pregunta : Qué te parece Gecko Linux , me la recomiendas ? Tengo ganas de instalar la versión basada en Leap con Budgie . Perdón que me fuí de tema .
    Un abrazo !

Me gustaría saber tu opinión. Deja un comentario (Puedes usar MarkDown)

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Salir /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Salir /  Cambiar )

Conectando a %s

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.