Comment enregistrer des commandes de terminal Linux avec “script”

0
152
fatmawati achmad zaenuri

La commande de script permet vous enregistrez et rejouez 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 que d'autres personnes pourront suivre.

script génère un 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 rend le script plus fiable que les flux d'entrée redirigés.

Utilisation de base

La commande de script 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 un argument au script :

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 quitter le sous-shell. Vous revenez à votre session shell principale.

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

cat example_session Publicité

Vous’ ; vous verrez la sortie de votre session de script entrecoupée d'annotations entre crochets. Ces annotations sont utilisées par le 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 souhaitez 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. le journal. Le 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 pourraient ne pas être nécessaires dans le script 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 l'indicateur -q pour activer le mode silencieux.

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

Ajout à un fichier existant

Il est possible d'ajouter de nouvelles commandes à un texte dactylographié existant. Cela vous permet “pause” et “reprendre” enregistrement en quittant votre sous-shell et en démarrant une nouvelle session.

Publicité

Ajoutez l'indicateur -a pour ajouter vos commandes au fichier spécifié. le script écrasera le contenu du fichier lorsque l'indicateur 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 étapes pour une lecture ou un partage ultérieur. le script peut également enregistrer des données de synchronisation avec 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.

Exécutez le script avec l'option -t pour spécifier un chemin vers lequel écrire les horaires. 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 replays de vitesse de frappe précis.

script -q -t example_session_timings example_session

Replay Sessions

La commande scriptreplay lit les scripts dactylographiés et les fichiers de synchronisation créés par le 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 peuvent contenir des retards indésirables ou s'exécuter à une vitesse inconfortablement lente. Utilisez l'indicateur -d pour accélérer la sortie. Tous les temps enregistrés seront divisés par le nombre que vous passez.

# Exécuter 4 fois plus vite scriptreplay -d 4 -t timings typescript

Vous pouvez également utiliser l'indicateur -m 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 que scriptreplay passe à la commande suivante, même si le script dactylographié spécifie un délai plus long.

# Délai maximum de 2 secondes scriptreplay -m 2 -t timings typescript

Utilisation avec des commandes interactives

Il n'est pas recommandé d'utiliser un 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é. le 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.

Publicité

le script n'est pas adapté à une utilisation avec des shells non interactifs comme son intérieur shell est toujours interactif par nature. La commande ne devrait pas non plus fonctionner avec une entrée canalisée.

Autres options

L'option -c vers le script vous permet de spécifier une commande. Lorsque ce mode est utilisé, le 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.

L'indicateur -f demande au script d'é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.

La page de manuel du script 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 exécuterait le script -f, puis l'enseignant utiliserait SSH pour se connecter et diffuser le fichier dactylographié en direct.

le script n'accepte généralement pas un lien symbolique comme chemin dactylographié. L'indicateur –force active ce comportement, en demandant au script de résoudre les liens matériels et logiciels vers leur destination.

Résumé

le script vous permet d'enregistrer vos sessions de terminal en clair 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 à l'aide de scriptreplay.

Publicité

Les commandes sont incluses avec la plupart des distributions Linux 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.