Comment enregistrer des commandes de terminal Linux avec un "script" - CloudSavvy IT
Agence web » Actualités du digital » Comment enregistrer des commandes de terminal Linux avec un « script »

Comment enregistrer des commandes de terminal Linux avec un « script »

Les script La commande vous permet d’enregistrer et de rejouer l’activité dans votre terminal. C’est utile lorsque vous souhaitez créer une référence des étapes que vous avez suivies ou que vous créez un didacticiel à suivre par d’autres.

script génère un script dactylographié de toutes les commandes que vous avez exécutées. Cela fonctionne en vous déposant dans un sous-shell qui enregistre tout ce que vous exécutez. Votre session sera enregistrée en texte brut lorsque vous quitterez le shell. Cela fait script plus fiable que les flux d’entrée redirigés.

Utilisation de base

Les script La commande peut être exécutée sans aucun argument :

script

Une nouvelle session de capture démarre. Votre session de terminal sera enregistrée dans ./typescript dans votre répertoire de travail. Vous pouvez spécifier un fichier différent en donnant script une dispute:

script example_session

Utilisez votre shell pour exécuter la séquence de commandes que vous souhaitez enregistrer. Lorsque vous avez terminé, appuyez sur Ctrl+D ou tapez exit pour sortir de la sous-shell. Vous retournerez à votre session shell principale.

Vous pouvez maintenant inspecter le journal de session qui a été créé :

cat example_session

Vous verrez la sortie de votre script session entrecoupée d’annotations entre crochets. Ces annotations sont utilisées par script pour enregistrer des détails sur le terminal lui-même et les événements qui s’y produisent.

Comme les fichiers journaux sont en texte brut, vous pouvez les manipuler librement dans votre éditeur préféré. Découpez simplement les lignes que vous ne voulez pas conserver ou que les autres ne devraient pas voir.

Ceci est utile si votre session génère par inadvertance des informations potentiellement sensibles ou si vous souhaitez supprimer des caractères superflus du journal. script enregistre tout ce qui se passe dans votre terminal, y compris les retours arrière, les nouvelles lignes et les caractères de contrôle, dont certains peuvent ne pas être nécessaires dans le texte dactylographié final.

script émet le nom du fichier dans lequel il écrit au début et à la fin de votre session. Vous pouvez désactiver cette sortie en ajoutant le -q flag pour activer le mode silencieux.

Les SHELL La variable d’environnement est lue lors de la détermination du shell à bifurquer pour le processus interne. Lorsque la variable n’est pas définie, script sera par défaut sh.

Ajout à un fichier existant

Il est possible d’ajouter de nouvelles commandes à un script dactylographié existant. Cela vous permet de « mettre en pause » et de « reprendre » l’enregistrement en quittant votre sous-shell et en démarrant une nouvelle session.

Ajouter le -a flag pour ajouter vos commandes au fichier spécifié. script écrasera le contenu du fichier lorsque le drapeau n’est pas donné.

script -a example_session

Ajout de données de synchronisation

Le tapuscrit de base est idéal lorsque vous souhaitez simplement enregistrer vos pas pour une lecture ou un partage ultérieur. script peut également enregistrer des données de synchronisation à côté de son journal de texte. Ces informations peuvent être utilisées pour rejouer l’intégralité de votre session de terminal avec des délais appropriés entre les commandes.

Courir script avec le -t flag pour spécifier un chemin pour écrire les timings. Les fichiers de synchronisation ont un format à deux colonnes. Chaque entrée contient le temps écoulé depuis le dernier enregistrement dans la première colonne. La deuxième colonne enregistre le nombre de caractères qui ont été saisis, permettant des relectures précises de la vitesse de frappe.

script -q -t example_session_timings example_session

Rejouer les sessions

Les scriptreplay la commande lit les scripts dactylographiés et les fichiers de synchronisation créés par script. Il rejoue leur sortie dans votre terminal. Les données de synchronisation seront utilisées pour faire correspondre la durée de chaque caractère tapé à sa longueur dans votre séquence de commandes d’origine.

scriptreplay -t example_session_timings example_session

Certains scripts dactylographiés peuvent contenir des retards indésirables ou fonctionner à une vitesse inconfortablement lente. Utilisez le -d flag pour accélérer la sortie. Tous les temps enregistrés seront divisés par le nombre que vous passez.

# Run 4 times faster
scriptreplay -d 4 -t timings typescript

Vous pouvez également utiliser le -m flag pour limiter le délai maximum entre les mises à jour individuelles. Cela vous permet de spécifier la plus longue pause autorisée en secondes avant scriptreplay passera à la commande suivante, même si le texte dactylographié spécifie un délai plus long.

# Maximum delay of 2 seconds
scriptreplay -m 2 -t timings typescript

Utilisation avec des commandes interactives

Il n’est pas recommandé d’utiliser script avec des commandes fortement interactives. Les éditeurs de texte de terminal, les applications basées sur les malédictions et les invites de dialogue sont susceptibles d’insérer des caractères indésirables polluants dans votre script dactylographié. script se concentre sur la capture d’une sortie textuelle typique, et non sur des commandes qui manipulent votre terminal pour produire une interface graphique.

script n’est pas adapté à une utilisation avec des coques non interactives car sa coque interne est toujours interactive par nature. La commande ne devrait pas non plus fonctionner avec une entrée canalisée.

Autres options

Les -c drapeau à script vous permet de spécifier une commande. Lorsque ce mode est utilisé, script exécute la commande et capture sa sortie, au lieu de créer un nouveau shell interactif. Cela peut être plus efficace pour capturer la sortie de certains processus qui se comportent différemment lorsqu’ils ne sont pas directement connectés à un TTY.

Les -f le drapeau indique script pour écrire directement dans le journal de session après chaque événement. Cela améliore la sécurité en garantissant que la sortie est capturée immédiatement.

Les script La page de manuel suggère que cet indicateur pourrait également être utilisé pour surveiller le terminal d’un utilisateur en temps réel, comme dans un scénario d’enseignant et d’étudiant. L’étudiant courrait script -f, alors l’enseignant utiliserait SSH pour se connecter et diffuser le fichier dactylographié en direct.

script n’accepte généralement pas un lien symbolique comme chemin dactylographié. Les --force flag active ce comportement, en instruisant script pour résoudre les liens matériels et mous vers leur destination.

Sommaire

script vous permet d’enregistrer vos sessions de terminal dans des fichiers texte avec des données de synchronisation précises. Vous pouvez inspecter, partager et imprimer les scripts dactylographiés manuellement, ou les rejouer dans votre terminal en utilisant scriptreplay.

Les commandes sont incluses avec les distributions Linux les plus populaires. Ils fonctionnent avec tous les types de terminaux, mais les scripts individuels peuvent ne pas être lus correctement dans un terminal différent de celui utilisé pour l’enregistrement. Pour de meilleurs résultats, exécutez scriptreplay dans le même type de terminal que vous avez utilisé avec script.

★★★★★