GNU/Linux >> Tutoriels Linux >  >> Linux

Comment capturer les sessions de terminal et la sortie avec la commande de script Linux

Le script Linux La commande crée un fichier dactylographié à partir de votre session de terminal. Cela signifie que si vous invoquez le script commande, vous êtes déposé dans un sous-shell de session de terminal "surveillé et enregistré" qui est enregistré dans un fichier texte ASCII. Lorsqu'il est créé avec un fichier de synchronisation, vous pouvez rejouer la session, y compris la sortie. Le but de script est que vous pouvez facilement saisir un exemple de sortie de n'importe quelle commande via une session interactive exactement telle qu'elle est affichée dans votre terminal. Vous pouvez utiliser le retour arrière, modifier des fichiers, créer des fichiers et exécuter des commandes simples ou complexes.

[ Les lecteurs ont également aimé : Bases des commandes Linux :7 commandes pour la gestion des processus ]

La valeur du script La commande est dans sa capacité à capturer la sortie pendant votre session de terminal pour toute commande de terminal sans redirections, qui ne fonctionnent pas toujours. J'ai été frustré tant de fois en essayant de capturer la sortie d'une commande qui tournait mal jusqu'à ce que je découvre script . Avec les opérateurs de redirection standard, certaines sorties peuvent être redirigées vers un fichier, tandis que d'autres commandes n'afficheront que la sortie dans stdout ou à l'écran. La plupart des administrateurs système utilisent le script commande pour afficher la sortie lors de l'installation du logiciel, lors du dépannage ou à des fins de développement et de programmation.

Étonnamment, le script La commande ne vous aide pas à créer des scripts shell.

Options de script

Comme avec la plupart des commandes que j'utilise, je n'utilise qu'un sous-ensemble d'options disponibles pour elles. Le script La commande a plusieurs options que je n'ai jamais trouvées utiles dans mon propre travail. Les seuls que j'utilise sont :

  • -a pour ajouter de nouvelles commandes et une sortie à un fichier précédemment utilisé.
  • -q pour supprimer les instructions initiales de début et de fin lors de l'utilisation de script .
  • --t pour enregistrer les informations de synchronisation pour la lecture.

Quand j'utilise script , j'utilise toujours --t pour créer un fichier de temps et -q pour le mode silencieux. Je n'utilise que -a lorsque j'ai besoin d'ajouter plus d'informations dans un fichier de script existant, ce qui est rare.

Utilisation des scripts

Voici deux exemples standard de la façon dont j'utilise script :

$ script --t=<logfile> -q <script file>

Et, pour ajouter au script file :

$ script --t=<logfile> -q -a <script file>

logfile et script file peuvent être des noms que vous choisissez. Lorsque vous souhaitez terminer et enregistrer le fichier, utilisez Ctrl-D sur votre clavier. Vous pouvez consulter, modifier ou supprimer le fichier de script et le fichier journal à volonté. Ce sont de simples fichiers texte ASCII.

Voici un exemple :

$ script --t=script_log -q scriptfile

J'ai exécuté le ls commande, le who commande, puis j'ai terminé le script avec Ctrl-D .

$ ls
blah.txt  test1 test2 doc.txt
$ who
root     tty1         2021-01-18 09:31
khess    pts/0        2021-01-20 14:42 (192.168.0.5)
khess    pts/1        2021-01-20 14:47
$ exit

Lorsque vous appuyez sur Ctrl-D , le script se termine et affiche exit .

Utilisez le cat commande pour afficher le contenu de scriptfile .

$ ls
blah.txt  file_time   scriptfile  script.rec    shell_record1  shell_record3  time_log
file_log  record.scr  script_log  scriptrecord  shell_record2  snap           typescript
$ who
root     tty1         2021-01-18 09:31
khess    pts/0        2021-01-20 14:42 (192.168.0.5)
khess    pts/1        2021-01-20 14:47
$ exit

Script done on 2021-01-20 14:47:28-06:00

Si vous le souhaitez, vous pouvez également cat le script_log fichier.

$ cat script_log
0.088699 31
3.393729 1
0.246070 1
0.540094 2
0.003060 196
0.000195 31
2.136900 1
0.177266 1
0.179336 1
0.540818 2
0.003883 134
0.000210 31
4.676286 6

Il s'agit du fichier journal de synchronisation qui se comporte comme un journal de transactions pour votre script commandes et réponses. C'est important lorsque vous lisez le fichier, ce que je démontre dans l'article suivant, Comment rejouer les sessions de terminal enregistrées avec la commande de script Linux.

[ Apprenez les bases de l'utilisation de Kubernetes dans cet aide-mémoire gratuit. ] 

Récapitulez

Pour moi, la meilleure application du script La commande est destinée à former les nouveaux utilisateurs Linux à l'utilisation des commandes et à leur montrer la sortie attendue en temps réel, comme s'ils interagissaient eux-mêmes avec la session du terminal. Pour les utilisateurs plus expérimentés, vous pouvez créer une session de formation qui enseigne une nouvelle installation ou configuration de logiciel. La formation est l'application à laquelle je pense en raison de mon expérience avec la formation de nouveaux administrateurs système et la rédaction d'articles pratiques pour divers sites. Et puisque la sortie est dans des fichiers texte ASCII, vous pouvez modifier la sortie pour vos propres besoins et publics.


Linux
  1. Rechercher des fichiers et des répertoires sous Linux avec la commande find

  2. Copiez et collez sur la ligne de commande Linux avec xclip

  3. Comment enregistrer la sortie de la commande dans un fichier sous Linux

  4. Comment utiliser la commande Tar sous Linux

  5. Comment rejouer les sessions de terminal enregistrées avec la commande de script Linux

Comment utiliser la commande Linux head

Comment utiliser la commande Linux diff

Comment enregistrer et rejouer des sessions de terminal Linux à l'aide des commandes "script" et "scriptreplay"

Comment capturer et analyser des paquets avec la commande tcpdump sous Linux

Comment utiliser la commande Linux rm avec des exemples

Comment enregistrer la sortie de la commande dans un fichier à l'aide du terminal Linux