Jan 292011
 

tuxIl 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:

Flattr this!

  8 Responses to “Registrare il terminale con Script”

  1. 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&gt ; /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.

  2. 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.

  3. script -t -a /tmp/mylog.out 2&> /tmp/mylog.time

    gives for me:
    Invalid null command.

  4. ttyrec > script

  5. May be
    script -t 2> demo.timing -a demo.session

Leave a Reply to Uwe Brauer Cancel reply

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

(required)

(required)

*