DOKK / manpages / debian 12 / manpages-fr / script.1.fr
SCRIPT(1) Commandes de l'utilisateur SCRIPT(1)

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

script [options] [fichier]

script effectue un tapuscrit de tout ce qu'il se passe dans la session de votre terminal. Les données du terminal sont stockées sous une forme brute dans le fichier journal et les informations de temps le sont dans un fichier journal structuré (optionnel). Le fichier journal de temps est nécessaire pour répéter la session, plus tard, avec scriptreplay(1) et pour stocker des informations supplémentaires sur la session.

Depuis la version 2.35, script prend en charge plusieurs flux et permet d'enregistrer l'entrée et la sortie dans des fichiers séparés ou dans un seul fichier. Cette version gère aussi un nouveau fichier de temps qui enregistre des informations supplémentaires. La commande scriptreplay --summary fournit ensuite toutes les informations.

Si le paramètre fichier ou l'option --log-out fichier est fourni, script sauvegarde l’affichage dans ce fichier. Si aucun nom de fichier n'est fourni, l’affichage est sauvegardé dans le fichier typescript.

Remarquez que l'enregistrement des saisies avec --log-in ou --log-io peut être une opération sensible au plan de la sécurité, puisque le fichier journal contient toute la saisie de la session en terminal (cela veut dire y compris les mots de passe) indépendamment du positionnement du drapeau ECHO du terminal.

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

Ajouter la transcription à la fin du fichier ou de typescript, en conservant le contenu précédent du fichier.

-c, --command 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

Cette option contrôle le drapeau ECHO pour l'extrémité esclave du pseudo-terminal de la session. Les modes pris en charge sont always, never ou auto.

Le mode par défaut est auto — dans ce cas, ECHO est activé pour l'esclave du pseudo-terminal. Si l'entrée standard actuelle est un terminal, ECHO est désactivé afin d’empêcher un double affichage. Si ce n'est pas un terminal (par exemple un tube : echo date | script), alors garder ECHO activé pour l'esclave du pseudo-terminal permet d'afficher les données d'entrée sur l'écran tandis qu'elles sont en même temps enregistrées dans le journal de la session.

Remarquez que le mode « never » affecte le contenu du journal de sortie de la session parce que l'entrée des utilisateurs n'est pas reprise sur la sortie.

-e, --return

Renvoyer le code de retour du processus enfant. Le format utilisé est le même que celui de sortie de bash quand il reçoit un signal de fin (c'est-à-dire quand le code de retour est 128 + le numéro du signal). Le code de retour du processus enfant est également toujours stocké dans le fichier typescript.

-f, --flush

Vider la sortie après chaque demande d'écriture. C'est pratique pour une coopération à distance : une personne exécute « mkfifo toto; script -f toto » et une autre peut superviser en temps réel ce qui se passe avec « cat toto ». Remarquez que ce vidage peut impacter les performances, il est possible d'utiliser SIGUSR1 pour vider les journaux à la demande.

--force

Permettre à la destination par défaut, c'est-à-dire le fichier typescript, d'être un lien direct ou symbolique. La commande suivra le lien symbolique.

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

Soyez prudent avec cette fonctionnalité de journalisation, car elle enregistre toutes les entrées, y compris lorsque le terminal a le drapeau ECHO désactivé (par exemple lors de la saisie d'un mot de passe).

-O, --log-out fichier

Enregistrer la sortie dans le fichier. Par défaut, l'enregistrement de la sortie se fait dans un fichier typescript si l'option --log-out ou --log-in n'est pas donnée. L'enregistrement de la sortie est désactivé si --log-in est spécifiée seule.

-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

Forcer l'utilisation du format advanced ou classic. Par défaut, le format classique est utilisé pour n'enregistrer que la sortie et celui avancé l'est quand on veut enregistrer l'entrée et la sortie.

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)

Le premier champ est l'identifiant du type d'entrée ('I’nput, 'O’utput, 'H’eader, 'S’ignal). Le deuxième champ est la durée écoulée depuis la saisie précédente, et le reste de l’entrée contient des données spécifiques au type.

-o, --output-limit taille

Limiter la taille des fichiers typescript et de temps à taille et arrêter le processus enfant 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 enfant. Du fait d'une mise en tampon (« buffering »), la taille finale du fichier 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.

-h, --help

Afficher l’aide-mémoire puis quitter.

-V, --version

Afficher la version puis quitter.

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

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

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

Vous devriez aussi éviter l’utilisation de script dans les tubes de commande, car script peut lire plus d’entrées que vous pourriez en attendre.

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

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 section REMARQUES pour plus d'informations.

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

Pour envoyer un rapport de bogue, utilisez le système de gestion des problèmes à l'adresse <https://github.com/util-linux/util-linux/issues>.

La commande script fait partie du paquet util-linux, qui peut être téléchargé de Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.

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>, Jean-Philippe MENGUAL <jpmengual@debian.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>

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.

4 août 2022 util-linux 2.38.1