los script
mando le posibilita grabar y reproducir la actividad en su terminal. Es útil cuando desea crear una referencia de los pasos que tomó o está creando un tutorial para que otros lo sigan.
script
genera un texto mecanografiado de todos los comandos que ha ejecutado. Funciona colocándote en un sub-shell que registra todo lo que ejecutas. Su sesión se guardará como texto sin formato cuando salga del shell. Esto hace script
más confiable que los flujos de entrada redirigidos.
Uso básico
los script
El comando se puede ejecutar sin ningún argumento:
script
Comenzará una nueva sesión de captura. Su sesión de terminal se guardará en ./typescript
en su directorio de trabajo. Puede especificar un archivo distinto dando script
un argumento:
script example_session
Utilice su shell para ejecutar la secuencia de comandos que desea grabar. Cuando finalices, presiona Ctrl+D
o escriba exit
para salir del sub-shell. Volverá a su sesión de shell principal.
Ahora puede inspeccionar el registro de sesión que se ha creado:
cat example_session
Verá la salida de su script
sesión intercalada con anotaciones entre corchetes. Estas anotaciones son utilizadas por script
para registrar detalles sobre la propia terminal y los eventos que ocurren dentro de ella.
Como los archivos de registro son texto sin formato, puede manipularlos libremente en su editor favorito. Simplemente corte las líneas que no desee retener o que otros no deberían ver.
Esto es útil si su sesión genera inadvertidamente información potencialmente sensible o si desea borrar caracteres extraños del registro. script
registra todo lo que sucede en su terminal, incluidas las pulsaciones de retroceso, nuevas líneas y caracteres de control, algunos de los cuales pueden no ser necesarios en el texto mecanografiado final.
script
emite el nombre del archivo en el que está escribiendo al inicio y al final de su sesión. Puede deshabilitar esta salida agregando el -q
bandera para habilitar el modo silencioso.
los SHELL
La variable de entorno se lee al determinar el shell a bifurcar para el procedimiento interno. Cuando la variable no está configurada, script
por defecto a sh
.
Agregar a un archivo existente
Es factible agregar nuevos comandos a un texto mecanografiado existente. Esto le posibilita «pausar» y «reanudar» la grabación saliendo de su sub-shell e iniciando una nueva sesión.
Añade el -a
flag para agregar sus comandos al archivo especificado. script
sobrescribirá el contenido del archivo cuando no se proporcione la bandera.
script -a example_session
Agregar datos de tiempo
El texto mecanografiado básico es ideal cuando simplemente desea registrar sus pasos para leerlos o compartirlos más tarde. script
además puede guardar datos de tiempo junto con su registro de texto. Esta información se puede usar para reproducir toda su sesión de terminal con los retrasos adecuados entre los comandos.
Correr script
con el -t
marca para especificar una ruta para escribir tiempos. Los archivos de tiempo disponen un formato de dos columnas. Cada entrada contiene el tiempo transcurrido desde el último registro en la primera columna. La segunda columna registra la cantidad de caracteres que se escribieron, lo que posibilita repeticiones con velocidad de escritura precisa.
script -q -t example_session_timings example_session
Reproducir sesiones
los scriptreplay
comando lee mecanografiados y archivos de tiempo creados por script
. Reproduce su salida en su terminal. Los datos de tiempo se utilizarán para hacer coincidir la extensión de cada carácter escrito con su longitud en su secuencia de comando original.
scriptreplay -t example_session_timings example_session
Algunos scripts pueden contener retrasos no deseados o ejecutarse a una velocidad incómodamente lenta. Usar el -d
bandera para acelerar la salida. Todos los tiempos registrados se dividirán por el número que pase.
# Run 4 times faster scriptreplay -d 4 -t timings typescript
Además puede usar el -m
marca para limitar el retraso máximo entre actualizaciones individuales. Esto le posibilita especificar la pausa más larga permitida en segundos antes scriptreplay
pasará al siguiente comando, inclusive si el texto mecanografiado especifica un retraso mayor.
# Maximum delay of 2 seconds scriptreplay -m 2 -t timings typescript
Uso con comandos interactivos
No se recomienda utilizar script
con comandos muy interactivos. Es probable que los editores de texto de terminal, las aplicaciones sustentadas en maldiciones y los mensajes de diálogo inserten caracteres basura contaminantes en su texto mecanografiado. script
se centra en capturar la salida típica basada en texto, no en comandos que manipulan su terminal para producir una interfaz gráfica.
script
no es adecuado para su uso con shells no interactivos dado que su shell interno es siempre interactivo por naturaleza. El comando no debería ser se espera que funcione con entrada canalizada.
Otras opciones
los -c
bandera a script
le posibilita especificar un comando. Cuando se utiliza este modo, script
ejecuta el comando y captura su salida, en lugar de bifurcar un nuevo shell interactivo. Esto puede ser más efectivo para capturar la salida de algunos procesos que se comportan de manera distinto cuando no están conectados de forma directa a un TTY.
los -f
bandera instruye script
para escribir de forma directa en el registro de sesión después de cada evento. Esto mejora la seguridad al garantizar que la salida se capture de inmediato.
los script
página de manual sugiere esta bandera además podría usarse para monitorear el terminal de un usuario en tiempo real, como en un escenario de profesor y estudiante. El estudiante correría script -f
, posteriormente el maestro usaría SSH para conectarse y transmitir el archivo mecanografiado en vivo.
script
no suele aceptar un link simbólico como una ruta mecanografiada. los --force
bandera habilita esta conducta, instruyendo script
para solucionar links duros y blandos a su destino.
Resumen
script
le posibilita grabar sus sesiones de terminal en archivos de texto sin formato con datos de tiempo precisos. Puede inspeccionar, compartir e imprimir los guiones mecanografiados manualmente o reproducirlos en su terminal usando scriptreplay
.
Los comandos se incluyen con las distribuciones de Linux más populares. Funcionan con todos los tipos de terminales, pero es factible que los scripts individuales no se reproduzcan correctamente en un terminal distinto al que se utiliza para la grabación. Para obtener mejores resultados, ejecute scriptreplay
en el mismo tipo de terminal que utilizaste con script
.