SCRIPT(1)

NOM
script - Faire une transcription d'une session d'un terminal.

SYNOPSIS
script [options] [fichier]

DESCRIPTION
script makes a typescript of everything on your terminal session. The terminal data are stored in raw form to the log file and information about timing to another (optional) structured log file. The timing log file is necessary to replay the session later by scriptreplay(1) and to store additional information about the session.

Since version 2.35, script supports multiple streams and allows the logging of input and output to separate files or all the one file. This version also supports new timing file which records additional information. The command scriptreplay --summary then provides all the information.

If the argument file or option --log-out file is given, script saves the dialogue in this file. If no filename is given, the dialogue is saved in the file typescript.

Note that logging input using --log-in or --log-io may record security-sensitive information as the log file contains all terminal session input (e.g., passwords) independently of the terminal echo flag setting.

OPTIONS
L’argument taille ci-dessous peut être suivi des suffixes multiplicatifs KiB=1024, MiB=1024*1024, etc., pour GiO, TiO, PiO, EiO, ZiO et YiO (la partie « iB » est facultative, par exemple « K » est identique à « KiB ») ou des suffixes KB=1000, MB=1000*1000, etc., pour GO, TO, PO, EO, ZO et YO.

-a, --append
    Append the output to file or to typescript, retaining the prior contents.

-c, --commande commande
    Exécuter la commande au lieu d’un interpréteur de commandes interactif. Cela facilite la capture de sortie d'un programme qui se comporte différemment si sa sortie est un terminal ou non.

-E, --echo quand
    This option controls the ECHO flag for the pseudoterminal within the session. The supported modes are always, never, or auto. The default is auto -- in this case, ECHO is disabled if the current standard input is a terminal iin order to avoid double-echo, and enabled if standard input is not a terminal (for example pipe: echo date | script) to avoid missing input in the session log.

-e, --return
    Return the exit status of the child process. Uses the same format as bash termination on signal termination (i.e., exit status is 128 + the signal number). The exit status of the child process is always stored in the type script file too.

-f, --flush
    Flush output after each write. This is nice for telecooperation: one person does `mkfifo foo; script -f foo', and another can supervise in real-time what is being done using `cat foo'. Note that flush has an impact on performance; it's possible to use SIGUSR1 to flush logs on demand.

--force
    Allow the default output file typescript to be a hard or symbolic link. The command will follow a symbolic link.

-B, --log-io fichier
    Enregistrer l'entrée et la sortie dans le même fichier. Remarquez que cette option n'a de sens que si --log-timing est également spécifié, sinon il n'est pas possible de séparer les flux d'entrée et de sortie à partir du fichier.

-I, --log-in fichier
    Enregistrer l'entrée dans le fichier. La journalisation de la sortie est désactivée si l'option --log-in est spécifiée seule.

    Use this logging functionality carefully as it logs all input, including input when terminal has disabled echo flag (for example, password inputs).

-O, --log-out fichier
    Log output to the file. The default is to log output to the file with name typescript if the option --log-out or --log-in is not given. The log output is disabled if only --log-in specified.

-T, --log-timing fichier
    Enregistrer les informations de temps dans le fichier. Deux formats de fichiers de temps sont désormais pris en charge. Le format classique est utilisé quand seul l'enregistrement d'un flux (entrée ou sortie) est activé. Le format multi-flux est utilisé avec --log-io ou quand --log-in et --log-out sont spécifiées en même temps. Voir aussi --logging-format.

-m, --logging-format format
    Force use of advanced or classic format. The default is the classic format to log only output and the advanced format when input as well as output logging is requested.

    Le format classique

    Le journal contient deux champs séparés par des espaces. Le premier champ indique le temps passé depuis la dernière sortie. Le second champ indique le nombre de caractères ayant été sortis cette fois-ci.

    Le format avancé (multi-flux)

    The first field is an entry type identifier ('I'nput, 'O'utput, 'H'eader, 'S'ignal). The socond field is how much time elapsed since the previous entry, and the rest of the entry is type-specific data.

-o, --output-limit taille
    Limiter la taille des fichiers typescript et de temps à taille et arrêter le processus fils lorsque cette taille est dépassée. La taille du fichier calculée ne tient pas compte des messages de début et de fin ajoutés par la commande script à la sortie du processus fils. Du fait d'une mise en tampon (« buffering »), la taille du fichier final pourrait être plus grande que la valeur indiquée.

-q, --quiet
    Être silencieux (ne pas écrire les messages de départ ni de fin sur la sortie standard).

-t[file], --timing[=fichier]
    Afficher les données de temps sur la sortie d'erreur standard ou dans fichier s'il est indiqué. Cette option est obsolète et remplacée par --log-timing, où le paramètre fichier n'est pas facultatif.

-V, --version
    Afficher le nom et la version du logiciel et quitter.

-h, --help
    Afficher l’aide-mémoire puis quitter.

SIGNAUX
Dès la réception de SIGUSR1, script écrit immédiatement les fichiers de sortie.

ENVIRONNEMENT
Les variables d'environnement suivantes sont utilisées par script :

SHELL
    Si la variable d'environnement SHELL existe, l'interpréteur de commandes engendré par script (avec fork) sera cet interpréteur de commandes. Si SHELL n'est pas définie, l’interpréteur de commandes sera supposé de type Bourne (la plupart des interpréteurs de commandes définissent cette variable automatiquement).

NOTES
Le script s'arrête quand le sous-interpréteur de commandes exécuté se termine (un Ctrl-D pour l'interpréteur de commandes de type Bourne comme sh(1p) et exit, logout ou Ctrl-d (si ignoreeof n'est pas définie) pour les interpréteurs de commandes de type C comme csh(1)).

Certaines commandes interactives, comme vi(1), créent des parasites dans le fichier de transcription. script fonctionne mieux avec les commandes qui ne manipulent pas l'écran, les résultats cherchent à émuler un terminal brut.

Exécuter script dans des interpréteurs de commandes non interactifs n’est pas recommandé. L’interpréteur de commandes interne de script est toujours interactif, et cela pourrait avoir pour conséquence des résultats imprévus. Si vous utilisez script dans le fichier d’initialisation de l’interpréteur de commandes, évitez d’entrer dans une boucle infinie. Utilisez par exemple le fichier .profile qui n’est lu que par les interpréteurs de commandes de connexion :

    if test -t 0 ; then
        script
        exit
    fi

You should also avoid use of script in command pipes, as script can read more input than you would expect.

HISTORIQUE
La commande script est apparue pour la première fois dans BSD 3.0.

BOGUES
script place tout dans le fichier journal, dont les changements de ligne et les espaces arrière. Ce n'est pas ce à quoi un utilisateur pourrait naïvement s'attendre.

script est d'abord conçu pour des sessions de terminal interactives. Quand l'entrée standard n'est pas un terminal, (par exemple echo toto | script), la session peut se bloquer car l'interpréteur interactif dans la session de script n'a pas de EOF et script ne sait pas quand fermer la session. Voir la session REMARQUES pour plus d'informations.

VOIR AUSSI
csh(1) (pour le mécanisme d’historique), scriptreplay(1), scriptlive(1),

DISPONIBILITÉ
La commande script fait partie du paquet util-linux, elle est disponible sur l’archive du noyau Linux (https://www.kernel.org/pub/linux/utils/util-linux/).

TRADUCTION
La traduction française de cette page de manuel a été créée par Christophe Blaess <ccb@club-internet.fr>, Michel Quercia <quercia AT cal DOT enst DOT fr>, Thierry Vignaud <tvignaud@mandriva.com>, Frédéric Delanoy <delanoy_f@yahoo.com>, Thierry Vignaud <tvignaud@mandriva.com>, Christophe Sauthier <christophe@sauthier.com>, Sébastien Blanchet, Jérôme Perzyna <jperzyna@yahoo.fr>, Aymeric Nys <aymeric AT nnx POINT com>, Alain Portal <aportal@univ-montp2.fr>, Thomas Huriaux <thomas.huriaux@gmail.com>, Yves Rütschlé <l10n@rutschle.net>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Philippe Piette <foudre-blanche@skynet.be>, Jean-Baka Domelevo-Entfellner <domelevo@gmail.com>, Nicolas Haller <nicolas@boiteameuh.org>, Sylvain Archenault <sylvain.archenault@laposte.net>, Valéry Perrin <valery.perrin.debian@free.fr>, Jade Alglave <jade.alglave@ens-lyon.org>, Nicolas François <nicolas.francois@centraliens.net>, Alexandre Kuoch <alex.kuoch@gmail.com>, Lyes Zemmouche <iliaas@hotmail.fr>, Florentin Duneau <fduneau@gmail.com>, Alexandre Normand <aj.normand@free.fr>, David Prévot <david@tilapin.org> et Jean-Philippe MENGUAL <jpmengual@debian.org> Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE. Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à <debian-l10n-french@lists.debian.org>.