Guardar la sesión de Mac Terminal en un archivo de texto

2

¿Hay alguna forma de guardar el historial de terminal de un script en un archivo? Sé que puedo hacer esto por Shell > Exportar texto como ... pero ¿hay un comando (Bash) para hacer esto?

    
pregunta Ali Gul 12.12.2017 - 14:15

1 respuesta

5

Esto se puede hacer con el comando estándar de Unix script(1) aunque requiere ejecutar una subshell bajo el shell actual . Es decir, inicie un terminal y ejecute script , emita los comandos que deban registrarse y salga de ese shell:

$ script
Script started, output file is typescript
$ uptime
11:30  up 22 days, 16:15, 1 user, load averages: 1.43 1.37 1.38
$ exit

Script done, output file is typescript
$ 

Luego, en el archivo de salida typescript debería haber un registro de la sesión de shell ejecutada en script(1) .

Pero espera, hay más! Con expect , también se puede guardar una sesión y, posiblemente, reproducirla. Esto requiere la instalación de expect desde un sistema de puertos (Fink, Homebrew o aquí MacPorts) que debe instalar autoexpect :

$ port installed | grep expect
  expect @5.45.3_0 (active)
$ which autoexpect
/opt/local/bin/autoexpect
$ autoexpect $SHELL
autoexpect started, file is script.exp
$ uptime
 6:47  up 23 days, 11:32, 1 user, load averages: 1.37 1.39 1.33
$ exit
autoexpect done, file is script.exp
$ 

Hacer algo útil con script.exp a su vez probablemente requiere el conocimiento de expect y TCL, por lo que esta es una opción más avanzada. ( expect en particular tiene una opción log_file que se puede activar para guardar todo, pero luego se escribiría todo en TCL y no bash ...)

De lo contrario, el propio terminal debe guardar la sesión; iTerm.app probablemente tenga más opciones para esto (Sesión - > Log - > Inicio) que Terminal.app .

    
respondido por el thrig 12.12.2017 - 20:32

Lea otras preguntas en las etiquetas