Le logiciel script n'a rien à voir avec les scripts shell.
Il peut être utilisé dans n'importe quel terminal (et non «shell») pour enregistrer les entrées et sorties de celui-ci. C'est un peu comme une capture vidéo de l'écran, sauf que là c'est une capture de terminal (caractères de contrôle compris).
Cela ne capture pas seulement les entrées/sorties des scripts, mais de tout logiciel lancé dans le terminal. C'est donc plutôt lié au terminal qu'au shell.
script -t/tmp/session.t -c alsamixer /tmp/session.s
Faire mumuse dans alsamixer, changer le volume par exemple, puis quitter avec la touche Échap.
Visionner la session :
scriptreplay -s /tmp/session.s -t /tmp/session.t
On remarquera qu'ici script et scriptreplay n'ont lancé aucun shell.
On aurait même pu se passer complètement de shell en exécutant les commandes directement dans des terminaux.
Merci au captnfab pour tout ces éclaircissements ajoutés !
SCRIPT permet d'enregistrer dans un fichier toutes les commandes que vous tapez ainsi que leurs sorties d'écran.
Le fichier résultant peut être utile dans plusieurs cas :
Pour enregistrer à partir du répertoire de destination, tapez :
script /chemin/nom-fichier
Pour ne plus enregistrer dans le fichier, il suffit de taper :
exit
contributeurs:jonesy http://wiki.slackware-fr.org
Pour contempler vos belles commandes:
cat /chemin/nom-fichier
script -tFichierTiming fichierTest # j'aurais pu aussi utiliser: # script --timing=FichierTiming fichierTest # je saisis de belles commandes exit #je sors
maintenant on replay:
scriptreplay FichierTiming fichierTest # on aurait pu aussi utiliser: # scriptreplay -tFichierTiming fichierTest
attention: scriptreplay est seulement garanti de fonctionner proprement s'il tourne sur le même type de terminal où il a été enregistré. voir
man scriptreplay
donc ce n'est pas destiné à partager une session terminal sur une autre machine ou avec quelqu'un d'autre.
Pour cela, il y a: TermRecord : publier et partager facilement une session Terminal