Salva la sessione del terminale Mac in un file di testo

2

C'è un modo per salvare la cronologia del terminale di uno script da archiviare? So che posso farlo con Shell > Esporta testo come ... ma c'è un comando (Bash) per fare questo?

    
posta Ali Gul 12.12.2017 - 14:15
fonte

1 risposta

5

Questo può essere fatto con il comando standard unix script(1) sebbene richieda l'esecuzione di una sotto-shell sotto la shell corrente . Cioè, avvia un terminale ed esegui script , emetti i comandi che devono essere registrati, quindi esci da quella 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
$ 

Quindi nel file output% co_de ci dovrebbe essere un record della sessione della shell eseguita sotto typescript .

Ma aspetta, c'è dell'altro! Con script(1) si può anche salvare una sessione ed eventualmente riprodurla. Ciò richiede l'installazione di expect da un sistema di porte (Fink, Homebrew o qui MacPorts) che dovrebbe installare expect :

$ 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
$ 

Fare qualcosa di utile con autoexpect a sua volta richiede probabilmente la conoscenza di script.exp e TCL, quindi questa è un'opzione più avanzata. ( expect in particolare ha un'opzione expect che può essere attivata per salvare tutto, ma poi dovresti scrivere tutto in TCL e non log_file ...)

Altrimenti il terminale stesso deve salvare la sessione; bash probabilmente ha più opzioni per questo (Session - > Log - > Start) di iTerm.app .

    
risposta data 12.12.2017 - 20:32
fonte

Leggi altre domande sui tag