GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo capturar sesiones de terminal y salida con el comando de script de Linux

El script de Linux El comando crea un archivo mecanografiado desde su sesión de terminal. Esto significa que si invoca el script comando, se lo lleva a una subcapa de sesión de terminal "observada y registrada" que se guarda en un archivo de texto ASCII. Cuando se crea con un archivo de tiempo, puede reproducir la sesión, incluida la salida. El propósito de script es que puede obtener fácilmente resultados de muestra de cualquier comando a través de una sesión interactiva exactamente como se muestra en su terminal. Puede utilizar la tecla de retroceso, editar archivos, crear archivos y ejecutar comandos simples o complejos.

[ A los lectores también les gustó: Conceptos básicos de los comandos de Linux:7 comandos para la gestión de procesos]

El valor del script El comando tiene la capacidad de capturar la salida durante su sesión de terminal para cualquier comando de terminal sin redireccionamientos, que no siempre funcionan. Me frustré muchas veces al intentar capturar la salida de un comando que de alguna manera estaba saliendo mal hasta que descubrí script . Con los operadores de redirección estándar, algunos resultados se pueden redirigir a un archivo, mientras que otros comandos solo mostrarán el resultado en la salida estándar o en la pantalla. La mayoría de los administradores de sistemas usan el script Comando para mostrar el resultado durante la instalación del software, al solucionar problemas o con fines de desarrollo y programación.

Sorprendentemente, el script El comando no lo ayuda a crear scripts de shell.

Opciones de guión

Como con la mayoría de los comandos que uso, solo uso un subconjunto de opciones disponibles para ellos. El script El comando tiene varias opciones que nunca he encontrado útiles en mi propio trabajo. Los únicos que uso son:

  • -a para agregar nuevos comandos y resultados a un archivo usado anteriormente.
  • -q para eliminar las declaraciones iniciales y finales al usar script .
  • --t para guardar información de tiempo para la reproducción.

Cuando uso script , siempre uso --t para crear un archivo de tiempo y -q para el modo silencioso. Solo uso -a cuando necesito agregar más información en un archivo de script existente, lo cual es raro.

Uso de secuencias de comandos

Los siguientes son dos ejemplos estándar de la forma en que uso script :

$ script --t=<logfile> -q <script file>

Y, para agregar a script file :

$ script --t=<logfile> -q -a <script file>

Donde logfile y script file pueden ser nombres que tu elijas. Cuando desee finalizar y guardar el archivo, use Ctrl-D en tu teclado. Puede mirar, editar o eliminar el archivo de secuencia de comandos y el archivo de registro a voluntad. Son archivos de texto ASCII simples.

Aquí hay un ejemplo:

$ script --t=script_log -q scriptfile

Ejecuté el ls comando, el who y luego terminé el script con Ctrl-D .

$ ls
blah.txt  test1 test2 doc.txt
$ who
root     tty1         2021-01-18 09:31
khess    pts/0        2021-01-20 14:42 (192.168.0.5)
khess    pts/1        2021-01-20 14:47
$ exit

Cuando presionas Ctrl-D , el script sale y muestra salir .

Usa el cat comando para mostrar el contenido de scriptfile .

$ ls
blah.txt  file_time   scriptfile  script.rec    shell_record1  shell_record3  time_log
file_log  record.scr  script_log  scriptrecord  shell_record2  snap           typescript
$ who
root     tty1         2021-01-18 09:31
khess    pts/0        2021-01-20 14:42 (192.168.0.5)
khess    pts/1        2021-01-20 14:47
$ exit

Script done on 2021-01-20 14:47:28-06:00

Si quieres, también puedes cat el script_log archivo.

$ cat script_log
0.088699 31
3.393729 1
0.246070 1
0.540094 2
0.003060 196
0.000195 31
2.136900 1
0.177266 1
0.179336 1
0.540818 2
0.003883 134
0.000210 31
4.676286 6

Este es el archivo de registro de tiempo que se comporta de manera similar a un registro de transacciones para su script comandos y respuestas. Es importante cuando reproduce el archivo, lo cual demuestro en el siguiente artículo, Cómo reproducir sesiones de terminal grabadas con el comando de secuencia de comandos de Linux.

[ Aprenda los aspectos básicos del uso de Kubernetes en esta hoja de trucos gratuita. ] 

Resumir

Para mí, la mejor aplicación del script command es para capacitar a los nuevos usuarios de Linux sobre cómo usar los comandos y mostrarles el resultado esperado en tiempo real, como si estuvieran interactuando con la sesión de la terminal ellos mismos. Para usuarios más experimentados, puede crear una sesión de capacitación que enseñe una nueva instalación o configuración de software. La capacitación es la aplicación en la que pienso debido a mi historial de capacitación de nuevos administradores de sistemas y redacción de artículos de procedimientos para varios lugares. Y dado que la salida está en archivos de texto ASCII, puede cambiar la salida para sus propias necesidades y audiencias.


Linux
  1. Encuentra archivos y directorios en Linux con el comando de búsqueda

  2. Copie y pegue en la línea de comandos de Linux con xclip

  3. Trabajar con entrada, salida y redirección de errores en Linux

  4. Cómo usar el comando Tar en Linux

  5. Cómo reproducir sesiones de terminal grabadas con el comando de script de Linux

Cómo usar el comando de cabeza de Linux

Cómo usar el comando diff de Linux

Cómo grabar y reproducir sesiones de terminal de Linux usando los comandos 'script' y 'scriptreplay'

Cómo capturar y analizar paquetes con el comando tcpdump en Linux

Cómo usar el comando rm de Linux con ejemplos

Cómo guardar la salida del comando en un archivo usando la terminal de Linux