Afficher des fichiers avec head, tail et cat

LinuxBeginner
Pratiquer maintenant

Introduction

Bienvenue dans le monde de l’affichage des fichiers Linux. Dans le module précédent, vous avez appris à organiser les fichiers. Il est maintenant temps de les ouvrir et d’en lire le contenu.

Dans ce laboratoire, vous apprendrez trois façons fondamentales d’examiner le contenu d’un fichier :

  1. cat : lit le fichier entier en une seule fois. Idéal pour les petites notes.
  2. head : lit uniquement le début du fichier. Idéal pour vérifier rapidement son contenu.
  3. tail : lit uniquement la fin du fichier. Idéal pour consulter les dernières mises à jour d’un fichier journal.

Vous apprendrez également une astuce particulière pour surveiller les mises à jour d’un fichier en temps réel.

Il s’agit d’une étape importante dans l’apprentissage de Linux. Dans les modules précédents, vous avez appris comment les fichiers sont organisés. Vous commencez maintenant à interagir avec leur contenu. Sur les systèmes réels, une grande partie de l’administration consiste à savoir lire le bon fichier texte de la bonne manière.

Afficher un fichier entier (cat)

La commande cat permet de demander : « Affichez-moi tout le contenu de ce fichier. »

Elle est particulièrement adaptée aux petits fichiers. Si vous l’utilisez sur un fichier volumineux, le texte défilera trop rapidement pour être lu.

Le nom cat est l’abréviation de concatenate, car cette commande a été conçue à l’origine pour concaténer et afficher le contenu de fichiers. Beaucoup de débutants la découvrent comme outil d’affichage, mais elle faisait historiquement partie d’une approche plus large du traitement de texte.

Nous avons préparé un petit fichier nommé sample.txt.

Commencez par accéder à votre dossier de projet :

cd ~/project

Affichez maintenant le contenu du fichier dans le terminal :

cat sample.txt

L’intégralité du contenu s’affiche immédiatement :

Line 1: This is a sample file.
Line 2: It is used to demonstrate the cat command.
Line 3: The cat command displays the full content.
Line 4: This file is short enough to read easily.
Line 5: End of the sample file.

Pour les fichiers plus volumineux, nous avons besoin d’outils mieux adaptés.

Afficher le début d’un fichier (head)

Vous avez parfois seulement besoin de vérifier le titre ou les premières lignes d’un fichier. C’est là que head intervient. Cette commande affiche la « tête », c’est-à-dire le début d’un fichier.

Par défaut, head affiche les 10 premières lignes.

Ce comportement est utile, car le début d’un fichier contient souvent des informations de contexte : un en-tête, des commentaires, les noms des colonnes ou les premiers enregistrements. Autrement dit, head permet d’échantillonner rapidement un fichier.

Examinez le fichier /etc/passwd. Il s’agit d’un fichier système volumineux qui contient des informations sur les utilisateurs.

head /etc/passwd

Seules les 10 premières lignes doivent s’afficher.

Personnaliser l’affichage

Que faire si vous souhaitez afficher uniquement les 5 premières lignes ? Vous pouvez indiquer à head le nombre exact de lignes à afficher à l’aide de l’option -n (number).

head -n 5 /etc/passwd

C’est une excellente manière d’échantillonner un fichier sans en lire tout le contenu.

Afficher la fin d’un fichier (tail)

Si head affiche le début, tail affiche la fin. La commande tail affiche les dernières lignes d’un fichier.

Sous Linux, les journaux sont écrits de manière séquentielle. L’entrée la plus récente se trouve toujours en bas du fichier. Ainsi, si un problème survient à l’instant, le message d’erreur se trouvera à la fin.

C’est pourquoi tail est si étroitement associé aux opérations et à l’administration des systèmes. Les journaux grandissent souvent par ajout de nouvelles lignes ; la fin du fichier est donc la partie la plus susceptible d’expliquer un problème actuel.

Examinez le journal système /var/log/syslog.

tail /var/log/syslog

Les 10 dernières entrées s’affichent.

Comme avec head, vous pouvez limiter le nombre de lignes affichées. Pour voir les 5 derniers événements :

tail -n 5 /var/log/syslog

C’est une commande essentielle pour les administrateurs système. Lorsqu’un serveur tombe en panne, la première commande saisie est souvent tail.

Surveiller les journaux en direct (tail -f)

Les fichiers statiques sont peu interactifs ; les données en direct sont plus intéressantes. La commande tail possède l’option -f, qui signifie follow.

Avec -f, tail attend. Si un programme écrit une nouvelle ligne dans le fichier, tail la détecte et l’affiche immédiatement. C’est comparable au suivi d’un fil d’actualité en direct.

C’est l’un des premiers exemples où le terminal devient interactif plutôt que statique. Au lieu de lire un fichier terminé, vous observez les événements apparaître au fur et à mesure qu’un programme les produit.

Essayez cette fonctionnalité avec deux terminaux.

Terminal 1 (le surveillant)

Commencez à surveiller le fichier journal :

tail -f ~/project/app.log

Le curseur reste en attente. Le terminal semble « bloqué », mais il est en réalité à l’écoute des nouvelles lignes.

Terminal 2 (l’émetteur)

Ouvrez un deuxième terminal (cliquez sur le bouton + situé à côté des onglets). Vous allez écrire dans le journal :

echo "New log entry at $(date)" >> ~/project/app.log

Revenez rapidement au Terminal 1. Le message doit apparaître.

Retournez au Terminal 2 et générez d’autres événements :

echo "Another event happened" >> ~/project/app.log
echo "System is running smoothly" >> ~/project/app.log

Dès que vous appuyez sur Entrée dans le Terminal 2, le texte apparaît dans le Terminal 1. C’est ainsi que les ingénieurs surveillent les serveurs en direct.

Pour terminer, revenez au Terminal 1. Appuyez sur Ctrl+C pour arrêter le suivi et retrouver l’invite de commande.

Résumé

Félicitations ! Vous disposez maintenant des outils de base pour examiner les fichiers sous Linux.

  • cat : lit le fichier entier. Convient aux petits fichiers.
  • head : lit le début du fichier. Convient aux vérifications rapides.
  • tail : lit la fin du fichier. Convient aux journaux.
  • tail -f : surveille un fichier en temps réel.

Ces commandes vous permettent de répondre à la question : « Que contient ce fichier ? »