Tips en Trucs 2012

Opdrachten opnemen met Script

De script opdracht is een onderdeel van het util-linux-ng pakket en is in elke distributie standaard geïnstalleerd of ten minste eenvoudig te installeren via de standaard softwarebronnen.

Wat is script?

Script slaat alles wat in de terminal verschijnt op in een bestand. Dit is handig voor studenten die een afdruk willen maken van een interactieve sessie als bewijs voor een opdracht.

Standaard zal de opdracht script een nieuwe sessie starten en alle uitvoer naar het bestand typescript in uw Persoonlijke map schrijven.

Deze tip toont hoe je met script een sessie kunt opnemen en later terug afspelen.

Opname

Een opname start je met de opdracht:
script -a --timing=/tmp/opname.time /tmp/opname

Het argument -a (append) zorgt dat de terminal uitvoer wordt toegevoegd aan het bestaande bestand.

Met het argument --timing=/tmp/opname.time wordt de uitvoer aangevuld met tijdinformatie die in het bestand /tmp/opname.time wordt opgeslagen. Bij het afspelen wordt er rekening gehouden met deze tijdinformatie en zie je een realistischer typtempo en uitvoer vertragingen.

Het argument /tmp/opname bepaalt het bestand waarin de terminal uitvoer wordt opgeslagen.

Na deze opdracht voer je opdrachten uit in de nieuwe terminal sessie en met Ctrl-D of de opdracht exit stop je de sessie en de opname.

Afspelen

Een opname speel je af met de opdracht:
scriptreplay /tmp/opname.time /tmp/opname

Scriptreplay is de metgezel van script, hij gebruikt de door script opgeslagen uitvoer om deze opnieuw uit te voeren.

Het afspelen toont enkel de uitvoer, de programma's en opdrachten die door script werden opgenomen, worden niet opnieuw uitgevoerd. Aangezien dezelfde informatie wordt weergegeven, is de perfecte weergave door scriptreplay enkel gegarandeerd als deze op hetzelfde type terminal wordt uitgevoerd als script zelf. De door script opgeslagen stuurcodes (escape characters) worden door verschillende typen terminal anders geïnterpreteerd.