Script es una utilidad de Unix presente en la mayoría de distribuciones GNU/Linux, que nos permite grabar todas las operaciones ejecutadas en la terminal. Va más allá de lo que ofrece el comando history, ya que también nos proporciona todas las salidas de los diferentes comandos y operaciones que realicemos.
La forma más sencilla de iniciarlo es abrir una terminal y escribir
script
que automáticamente nos crea un fichero llamado typescript y empieza a grabar el contenido de la sesión, con los diversos comandos que vayamos ejecutando.
Podemos parar esa captura en cualquier momento, haciendo Crlt+D o escribiendo
exit
Si no nos gusta ese nombre de typescript o queremos diferenciar entre sesiones le podemos dar otro cualquiera. Por ej
script registro.txt
Por defecto cada vez que ejecutamos el comando si tenemos un archivo de logs anterior con el mismo nombre lo sobreescribe. Pero tenemos la opción de utilizar el parámetro -a para anexar nuevo contenido a dicho archivo (en este caso, al archivo por defecto typescript) y evitar borrar el viejo.
script -a
Como habréis deducido el archivo resultante lo podemos examinar con cualquier editor de texto (geany, gedit, nano, kate, etc.), pero vamos a ir un poco más allá y ver como examinarlo desde la terminal a la velocidad de ejecución original.
Primero lanzamos el programa, añadiéndole ahora un nuevo elemento: un archivo que nos marca los tiempos de script.
Utilizando el archivo por defecto typescript ejecutaríamos
script -t=tiempo.txt
Si utilizamos un nombre de archivo diferente al predeterminado typescript, quedaría algo así:
script -t=tiempo.txt registro.txt
en cualquiera de los dos caso para finalizar la grabación hacemos Ctrl + D o escribimos:
exit
Ahora llega la parte más divertida, la de reproducir el archivo desde la shell con el comando scriptreplay:
scriptreplay -t=tiempo.txt
De nuevo retomando el ejemplo anterior (registro.txt), si utilizáis un fichero diferente a typescript varía ligeramente la sintaxis:
scriptreplay -t=tiempo.txt registro.txt
Otros programas interesantes a la hora de guardar y reproducir sesiones de terminal –especialmente si os apetece compartir vuestro trabajo– son asciinema o Termrecord, que crean archivos html que se pueden incrustar en páginas web.
Magnífica tip!
No lo conocía y me va a ir de lujo, muchas gracias!
Sólo una cosa, el signo del igual (-t=tiempo.txt) creo que sobra.
Lo he usado y me ha creado el fichero «=tiempo.txt».
Parece que sería más bien: «-ttiempo.txt»
Al menos en la versión que tengo instalada en mi LinuxMint 17.3:
$ script –version
script de util-linux 2.20.1
Saludos!
Gracias a ti Abel, por pasarte y comentar!
Y si! tienes razón! el signo igual no es imprescindible se puede poner todo junto.
Un Saludo!
anda que bueno!!! 🙂
MUY interesante!!
gracias colega!
Muchas gracias, información excelente, con mucha claridad, saludos cordiales y bendiciones