Il comando script è parte del pacchetto util-linux-ng, e quindi dovrebbe essere disponibile già installato in qualsiasi distribuzione, o si dovrebbe essere in grado di aggiungerlo facilmente.
Cos’è script ?
Dalla sua Man page:
Script fa un dattiloscritto di tutto ciò che viene stampato sul vostro terminale. E’ utile per gli studenti che hanno bisogno di una registrazione cartacea di una sessione interattiva come prova di una sessione, in quanto il file della registrazione può essere stampato in un secondo momento con lpr.
uso base, da un terminale scrivere script
questo farà partire una nuova sessioen e tutto ciò che verrà digitato sarà salvato nel file typescript (nella vostra home).
Ma adesso vedremo come utilizzarlo per registrare una intera sessione e poi ripeterla:
record
script -t -a /tmp/mylog.out 2&> /tmp/mylog.time; |
Opzioni:
-a appende l’output dei comandi nel file
-t temporizzazione dell’output su standard error. Questo file contiene due campi, separati da uno spazio. Il primo campo indica il tempo trascorso dalla precedente uscita. Il secondo campo indica quanti caratteri sono stati emessi questa volta in uscita. Queste informazioni possono essere utilizzate per fare un replay con la digitazione realistica e ritardi in uscita.
Dopo questo comando fare la sessione di lavoro e terminarla con un ^D (ctrl-D) o exit.
Ora troverete in /tmp i 2 file mylog.out e mylog.time.
Replay
scriptreplay /tmp/mylog.time /tmp/mylog.out |
Sciptreplay è il compagno di script, prende come input l’output prodotto con script ed esegue un replay della sessione.
Il replay mostra semplicemente di nuovo le informazioni, i programmi che sono stati eseguiti quando script veniva registrata non sono eseguiti di nuovo. Dal momento che la stessa informazione viene semplicemente visualizzata, scriptreplay è garantito per funzionare correttamente solo se lanciato sullo stesso tipo di terminale da cui è stata registrata la sessione. In caso contrario, tutti i caratteri di escape nello script possono essere interpretati in modo diverso dal terminale al quale scriptreplay invia il suo output.
Tutto insieme:
% script -t 2&> demo.timing -a demo.session Script started, file is demo.session % % exit Script done, file is demo.session % scriptreplay demo.timing demo.session |
Esempio di scriptreplay:
Popular Posts:
- None Found
Hello
I am on Kubuntu 9.04. I have script installed but
util-linux-ng seems not to exist.
When I use your command
script -t -a /tmp/mylog.out 2> ; /tmp/mylog.time ;
I obtain an error
gt: Command not found.
Thanks for the feedback, wrong encoding after publishing the article 🙁
The correct command is:
script -t -a /tmp/mylog.out 2&> /tmp/mylog.time
Fixed also in the article.
If you start the script command in the home directory, then yes, typescript will be written to the home directory, otherwise it will be written to the directory where you start the script command.
You can always specify the filename, and location that the output will be written:
script ~/capture.txt
This will write the output to capture.txt in your home directory.
Thanks for the correction Rick.
script -t -a /tmp/mylog.out 2&> /tmp/mylog.time
gives for me:
Invalid null command.
ttyrec > script
Just tested, ttyrec it’s really easy to use.
May be
script -t 2> demo.timing -a demo.session