Souvent, lorsque vous travaillez 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 pour simplement enregistrer l’activité du terminal. Voici quatre manières différentes d’enregistrer le contenu du terminal dans un fichier.
Les méthodes suivantes sont applicables à toutes les distributions Linux et peuvent même être utilisées sur Mac et BSD. La seule chose à laquelle vous devez penser est de savoir quelle méthode est la meilleure pour faire le travail.
Contenu
1. Utilisation des opérateurs de redirection
La manière la plus courante et la plus basique de rediriger la sortie du terminal vers un fichier est d’utiliser les opérateurs > et >>. Ils dirigent uniquement la sortie vers un fichier texte spécifié. Ils ne redirigent pas les erreurs. Ceux-ci apparaîtront toujours dans le terminal.
L’opérateur > redirige la sortie vers un fichier et écrase le contenu de ce fichier tandis que l’opérateur >> ajoute la sortie à la fin du fichier. Voici une illustration :
Créez d’abord un fichier à l’aide de la commande tactile.
Une ligne est maintenant renvoyée à « file1.txt » à l’aide de l’opérateur >. On peut considérer cela comme le vidage de la sortie de la commande echo dans « file1.txt ».
Une autre ligne est renvoyée dans « file1.txt ».
En visualisant le contenu de « file1.txt », nous voyons que seule la deuxième ligne est stockée dans le fichier. C’est parce que l’opérateur > écrase le contenu du fichier existant.
Si nous souhaitons « ajouter » du contenu au fichier, alors l’opérateur >> doit être spécifié.
Nous pouvons voir le résultat de l’opération d’ajout réussie.
Si vous souhaitez uniquement enregistrer les erreurs, utilisez plutôt les opérateurs 2> et 2>>.
Si vous souhaitez tout enregistrer, utilisez &> et &>> pour rediriger toutes les sorties (y compris les erreurs) vers un fichier sans rien afficher dans le terminal.
2. Utilisation de la commande tee
Avec les opérateurs de redirection indiqués ci-dessus, la sortie de la commande n’est pas affichée à l’écran. Si vous souhaitez qu’il affiche la sortie sur le terminal et écrive dans un fichier, vous pouvez utiliser la commande tee.
Le symbole pipe (|) transmet la sortie de
Selon la commande illustrée ci-dessus, le texte « quatrième instruction » aurait dû être ajouté à « fichier1.txt ». La vérification à l’aide de la commande cat corrobore notre supposition.
Vous pouvez également utiliser l’opérateur |& et la commande tee pour tout afficher et le consigner également.
3. Utilisation de la commande de script
Avec la commande de script, la sortie des commandes saisies après celle-ci serait automatiquement écrite dans un fichier jusqu’à ce que vous soyez invité à cesser. Cela peut être assimilé à une session qui enregistre l’activité du terminal.
Tout d’abord, la commande de script est invoquée avec le nom du fichier pour stocker l’activité du terminal.
Un message indique que le script a démarré, puis les commandes sont saisies l’une après l’autre – ici date, pwd, ls et cal.
Pour terminer le script, la commande exit est invoquée. Il y a un message indiquant que l’opération « script » est terminée. En regardant le contenu de « script_log.txt » à l’aide de cat, nous voyons que le contenu du fichier ressemble à une réplique exacte du terminal.
Vers la fin, nous pouvons voir l’horodatage lorsque le script a été terminé. Lorsque ce fichier est affiché dans un éditeur de texte, nous pouvons voir du contenu textuel et des éléments indésirables, qui sont en fait l’invite bash dans un format compréhensible par le shell bash.
Ce n’est que lorsque ce fichier est affiché dans le shell à l’aide de la commande cat que nous obtenons des informations entièrement intelligibles.
Essayons-en un autre, en enregistrant la sortie du terminal dans « 2-script_log.txt ».
Commandspwd et ls sont tapés.
Sans taper exit, la fenêtre du terminal se ferme. Lorsque nous essayons d’afficher le contenu de « 2-script_log.txt », nous pouvons voir qu’il est vide.
Lorsqu’une session de script a été lancée, le contenu de cette session est conservé en mémoire et écrit dans le fichier uniquement lorsque la commande exit est invoquée. Ici, puisque exit n’a pas été invoqué, le contenu de cette session n’a pas été enregistré dans « 2-script_log.txt ».
Le comportement d’écrasement et d’ajout du script est similaire à celui des opérateurs tee et de redirection. Le commutateur -a ajoute le contenu d’une session à un fichier déjà existant. Ici, la sortie de la commande echo est ajoutée à « script_log.txt ».
Voyons la sortie de « script_log.txt ». Nous pouvons voir la sortie précédemment enregistrée des commandes date, pwd, ls, cal suivies de l’horodatage ; après quoi, nous trouvons les informations de la session suivante se terminant par l’horodatage.
4. Utilisation de la commande logsave
logsave se comporte de la même manière que tee – il affiche la sortie à l’écran et l’enregistre également dans un fichier. Il est utilisé comme indiqué ci-dessous :
logsave écrit la sortie de
Il y a beaucoup d’informations stockées avec le résultat d’une commande. Deux horodatages sont stockés ici : le premier est l’heure à laquelle la commande a été lancée, et le second est l’heure à laquelle la commande a terminé son exécution. Ici, les horodatages sont les mêmes. Cependant, lorsqu’une liste de répertoires récursive est lancée dans le répertoire « /home » sur un système multi-utilisateurs, la commande prendrait un certain temps à s’exécuter complètement. Dans ce cas, les horodatages de début et de fin seraient différents.
La sortie de plusieurs commandes peut être ajoutée au même fichier lorsque le commutateur -a est utilisé avec logsave.
Lorsque nous essayons d’afficher le contenu de « mylog_file.txt », nous voyons que la sortie des deux commandes saisies précédemment est délimitée par une ligne.
Les méthodes ci-dessus sont parmi les plus utiles pour enregistrer une sortie de terminal dans un fichier sous Linux. lequel préfères-tu?
En rapport:
Cet article est-il utile ? Oui Non