Le terminal est le cœur d’un système Linux. Chaque programme qui s’exécute sous Linux s’exécute sous une ligne de commande de terminal. Cela inclut les programmes volumineux, tels que les navigateurs Web et même les programmes simples tels que les éditeurs de texte. En tant que tel, être capable d’utiliser correctement le terminal est une étape importante si vous souhaitez comprendre le fonctionnement du système d’exploitation.

Avec cela, tout en travaillant sur le terminal Linux, vous souhaiterez peut-être enregistrer la sortie du terminal d’une commande dans un fichier. Ce fichier peut être utilisé comme information pour une autre opération ou simplement pour enregistrer l’activité du terminal. Cet article enseigne cinq façons d’enregistrer la sortie du terminal dans un fichier.

1. Utiliser des terminaux spécifiques

La première façon de gérer cela consiste à utiliser un terminal qui prend en charge l’enregistrement de la sortie dans un fichier. Par exemple, le Console Le terminal fourni avec une installation standard de KDE inclut une option pour écrire la sortie dans un fichier.

Pour ce faire, appuyez sur le bouton « Fichier » dans la barre de menu et cliquez sur « Enregistrer la sortie sous… »

Fichier de sortie du terminal 05 Konsole Enregistrer la sortie sous

Cela ouvrira une fenêtre de dialogue dans laquelle vous pourrez enregistrer la sortie du terminal. À partir de là, vous pouvez choisir où vous souhaitez enregistrer le fichier.

Vous pouvez également enregistrer la sortie d’une commande dans le terminal GNOME. Faites simplement un clic droit sur le terminal et appuyez sur « Copier la sortie au format HTML ». Cela chargera ensuite le texte du terminal dans votre presse-papiers. À partir de là, vous pouvez le coller dans n’importe quel éditeur de texte.

Fichier de sortie du terminal 06 Gnome Copier la sortie Html

2. Redirection de sortie

Une autre façon de traiter cela est d’utiliser le opérateurs intégrés du shell UNIX. Ce sont des fonctions par défaut sous Linux et peuvent rediriger la sortie texte d’un programme vers un fichier. Il y a trois opérateurs qui peuvent le faire :

  • le > créera ou remplacera le contenu d’un fichier par la sortie de votre programme. Ceci est utile si vous souhaitez vider et afficher le résultat actuel de votre programme dans le même fichier.
  • le >> L’opérateur créera également un fichier avec la sortie de votre programme. Cependant, cet opérateur ajoutera uniquement la sortie au lieu de la remplacer. Ceci est utile si vous souhaitez vider le résultat de votre programme en continu dans un seul fichier.
  • Enfin, le 2> L’opérateur est un type spécial d’opérateur qui imprimera les erreurs qui seront rapportées. Ceci est très utile lors du débogage, car il montre le problème que le programme a rencontré avant de planter.
Exemple de redirection du fichier de sortie du terminal 07

Sachant cela, vous utilisez ces opérateurs en les ajoutant à la fin de votre programme. Considérez l’exemple suivant :

j’ai chargé le echo programme pour afficher le mot « maketecheasier », puis ajouté le > opérateur ainsi qu’un nom de fichier. Cela a dit au shell UNIX d’écrire la sortie dans le fichier « hello.txt » au lieu de l’afficher à l’écran.

Fichier de sortie du terminal 08 Hello Txt

3. Té

Outre la redirection de sortie, vous pouvez également enregistrer la sortie d’une commande de terminal en utilisant un programme appelé tee. Il s’agit d’un programme GNU qui vous permet de lire et d’écrire sur l’entrée standard. Utilisez ce programme avec des tubes UNIX pour écrire la sortie d’une commande dans un fichier.

Considérez l’exemple suivant :

Terminal Output File 09 Té Exemple

Ici, au lieu d’utiliser la redirection de sortie, j’ai canalisé (|) la sortie vers tee.

Noter: Un tube prend la sortie d’un programme et l’injecte dans l’entrée d’un autre. Cela vous permet de coller plusieurs programmes ensemble, tant qu’ils utilisent tous des entrées et des sorties standard.

4. Scénario

Une autre façon de tirer la sortie du terminal consiste à scriptun programme Linux intégré qui enregistre tout ce que vous tapez dans le terminal ainsi que sa sortie.

Vous pouvez utiliser un script pour enregistrer le journal de votre session de terminal dans un format texte analysable. Ceci est très utile si vous souhaitez envoyer un journal d’erreurs en ligne pour obtenir de l’aide d’autres personnes.

Pour l’utiliser, exécutez la commande suivante :

Fichier de sortie du terminal 11 Exemple de script de démarrage

Cela démarrera un environnement de script dans lequel vous pourrez simplement commencer à exécuter des commandes. Une chose importante à noter, cependant, est que le script capture tout ce que vous faites dans cette session. Considérez l’exemple suivant :

Le script comprend toutes les touches et les caractères de contrôle sur lesquels vous appuyez. Dans mon cas, il comprenait toutes les touches « invisibles » sur lesquelles j’ai appuyé, y compris Languette et Retour arrière touches enfoncées.

Une fois que vous avez terminé la session, tapez exit. Cela mettra fin au programme Script et écrira tout le journal dans le fichier que vous avez spécifié.

Fichier de sortie du terminal 12 Script Cat

5. Capture du terminal Framebuffer

Enfin, vous pouvez également obtenir la sortie du terminal en tirant depuis le Tampon de trame Linux. Ceci est utile si vous travaillez directement sur un télétype et souhaitez capturer la sortie d’un programme.

Pour capturer le périphérique framebuffer, exécutez la commande suivante dans le téléscripteur :

Fichier de sortie du terminal 13 Capture Framebuffer Raw

Une chose importante à noter est que capturer le périphérique framebuffer de cette manière signifie que vous videz les octets bruts du framebuffer dans un fichier. Pour afficher ce fichier, vous devez le charger dans un éditeur d’images et ajuster manuellement la couleur et la profondeur de bits. Non seulement ce processus prend du temps, mais il est également facile de le faire mal.

En tant que tel, une façon de gérer cela consiste à utiliser un programme tiers, tel que fbgrab. Cela saisira l’écran de télétype actuel du périphérique framebuffer et le videra dans un fichier PPM ou PNG.

L’installation de fbgrab est également relativement simple. Dans les distributions basées sur Debian et Ubuntu, vous pouvez utiliser apt :

Pour Arch Linux, exécutez pacman :

Fichier de sortie du terminal 14 Installation de Fbcat

Utilisation de fbgrab pour capturer la sortie du terminal

Une fois installé, passez au télétype en appuyant sur Contrôler + Changement + Autre + F3puis exécutez soit fbcat ou fbgrab.

Fbcat est un programme plus simple qui saisit l’écran actuel du framebuffer et l’enregistre dans une image PPM. Il s’agit d’un format d’image brute de bas niveau que vous pouvez charger dans un éditeur d’images pour convertir en PNG. Fbcat est principalement utile si vous essayez de capturer un affichage à faible profondeur de bits qui nécessite un format d’image brute pour une capture correcte.

Pour capturer à l’aide du programme fbcat, exécutez la commande suivante :

Fichier de sortie du terminal 15 ppm de capture

Cela saisira l’écran actuellement affiché et videra le contenu dans un fichier capture.ppm.

Fbgrab, d’autre part, est un programme plus complexe conçu pour capturer des affichages à plus grande profondeur de bits. Pour la plupart, vous l’utiliserez pour capturer votre écran de télétype. Il prend en charge l’enregistrement au format PNG par défaut et a la possibilité de sélectionner un télétype différent à capturer.

Pour capturer à l’aide du programme fbgrab, exécutez la commande suivante :

Fichier de sortie du terminal 16 Exemple Fbgrab

Cela saisira le troisième écran de télétype et l’enregistrera dans un fichier capture.png.

Si vous recherchez plus de guides pour le terminal Linux, consultez qui traite de l’envoi d’un e-mail à partir de la ligne de commande.

Questions fréquemment posées

1. Au secours ! Fbgrab ne fonctionne pas ; l’image est juste noire ou vide.

C’est probablement parce que fbgrab utilise un autre périphérique de tampon de trame pour capturer la sortie du terminal. Vérifiez le périphérique framebuffer actuel utilisé par le système en répertoriant le dossier « / dev ».

À partir de là, recherchez un périphérique « /dev/fbX ». Normalement, Linux utilise « /dev/fb0 » pour son framebuffer. Cependant, si votre système utilise un framebuffer différent, tel que « /dev/fb1 », vous pouvez passer la commande suivante pour dire à fbgrab de tirer à partir de ce framebuffer à la place :

2. Est-il possible de récupérer le contenu d’un fichier que j’ai écrit en entrée d’un programme ?

Oui! Outre les trois opérateurs décrits ci-dessus, vous pouvez également utiliser le < opérateur pour extraire des données d’un fichier. Le shell traitera alors ceci comme une entrée pour un programme.

En procédant de cette façon, vous n’avez plus besoin de compter sur d’autres programmes pour imprimer le texte à votre place. Considérez les exemples suivants :

  • Le premier exemple appelle le programme cat pour charger le texte, puis charge un opérateur pipe avec la sortie de cat et le dirige vers votre programme.
  • D’autre part, le second exemple appelle immédiatement votre programme, puis sélectionne le < qui traite l’argument suivant comme son entrée.

3. Existe-t-il un moyen de forcer le script à ne capturer que la sortie d’une commande ?

Oui, il est possible de ne scripter que pour une seule commande. Ceci est très utile lors du dépannage lorsque vous souhaitez simplement capturer la sortie d’un seul programme. Pour ce faire, exécutez la commande suivante :

le -c flag indique au programme de script de n’exécuter que le programme : votre-commande. À partir de là, il écrira ensuite sa sortie dans un fichier texte appelé test.txt.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici