Skip to main content

Welcome to a Grasp lesson

Create a free account to keep studying and create your own study path.

Lesson 9

Visualisation de fichiers : les commandes de base

Recommended resources

Bonjour ! Dans la leçon précédente, vous avez appris à manipuler les fichiers et les dossiers, en les créant, copiant, déplaçant et supprimant. Vous savez désormais comment organiser la structure de votre système de fichiers.

Cependant, un fichier n'est utile que si l'on peut consulter son contenu. Aujourd'hui, nous allons nous concentrer sur cet aspect essentiel. L'objectif est d'apprendre à consulter le contenu des fichiers directement depuis la ligne de commande, sans avoir besoin d'une interface graphique. C'est une compétence que tout administrateur systèmes et réseaux utilise des dizaines de fois par jour, que ce soit pour lire un fichier de configuration, inspecter un script ou, surtout, analyser des fichiers de logs pour diagnostiquer un problème.

Nous allons découvrir quatre commandes fondamentales :

  • cat : Pour afficher le contenu intégral d'un fichier.
  • less : Pour parcourir de longs fichiers de manière interactive.
  • head : Pour visualiser le début d'un fichier.
  • tail : Pour visualiser la fin d'un fichier, avec une option très puissante pour le suivi en temps réel.

À la fin de cette leçon, vous saurez choisir le bon outil pour chaque situation de lecture de fichier en ligne de commande.

1. cat : L'affichage direct

La commande cat (abréviation de concatenate) est la manière la plus simple d'afficher le contenu d'un fichier. Elle lit le fichier et affiche la totalité de son contenu dans le terminal.

Essayons avec un fichier de configuration système qui est généralement court. Tapez la commande suivante dans le terminal de votre machine virtuelle :

cat /etc/os-release

Vous verrez des informations sur votre distribution Ubuntu s'afficher. Pour des fichiers courts comme celui-ci, cat est parfait.

Cependant, que se passe-t-il si le fichier est long ? Essayons avec un journal système (il se peut que vous deviez utiliser sudo si vous n'avez pas les droits de lecture) :

cat /var/log/syslog

Le texte défile à toute vitesse et vous vous retrouvez à la fin du fichier, sans avoir pu lire ce qui se trouvait au début. C'est le principal inconvénient de cat : il est inadapté aux fichiers volumineux.

Pour en savoir plus sur cat et ses options, comme la numérotation des lignes, consultez la ressource suivante.

Les commandes Linux essentielles

Ce guide de Stéphane Robert explique de manière concise l'utilisation de la commande cat et quelques-unes de ses options utiles.

Lisez la section intitulée 'cat'. Notez l'option -n qui peut être pratique pour numéroter les lignes.


2. less : Le lecteur interactif pour fichiers longs

Pour résoudre le problème des fichiers longs, nous avons des "paginations" (ou pagers). La commande la plus moderne et la plus utilisée est less. Elle vous permet de visualiser un fichier page par page et de naviguer à l'intérieur de manière interactive.

Reprenons notre fichier journal, mais cette fois avec less :

less /var/log/syslog

Le terminal affiche le début du fichier et attend vos instructions. Vous pouvez maintenant :

  • Utiliser les flèches haut et bas pour vous déplacer ligne par ligne.
  • Utiliser les touches Page Suivante (ou la barre d'espace) et Page Précédente pour naviguer plus vite.
  • Taper / suivi d'un mot (ex: /error) puis Entrée pour rechercher ce mot dans le fichier.
  • Appuyer sur la touche q pour quitter less et revenir au terminal.

Comme vous pouvez le constater, less est bien plus puissant que cat pour la lecture. Il existe un vieil adage dans le monde Linux : "less is more" (less, c'est plus), car less est une version améliorée d'une ancienne commande nommée more.

Les commandes Linux essentielles

Pour maîtriser la navigation et la recherche dans less, je vous invite à lire la section dédiée dans le même guide que précédemment.

Lisez la section 'less' et sa sous-section 'Les fonctionnalités de less'. Prenez le temps de tester les commandes de navigation et la fonction de recherche.


3. head et tail : Regarder le début et la fin

Souvent, on n'a pas besoin de lire un fichier en entier. On veut juste voir les premières lignes (par exemple, les en-têtes d'un fichier CSV) ou les dernières lignes (les événements les plus récents dans un fichier de log). C'est là que head (tête) et tail (queue) entrent en jeu.

  • head affiche les 10 premières lignes d'un fichier par défaut.
  • tail affiche les 10 dernières lignes d'un fichier par défaut.

Essayez les deux sur votre fichier journal :

head /var/log/syslog
tail /var/log/syslog

Vous pouvez facilement changer le nombre de lignes à afficher avec l'option -n. Par exemple, pour voir les 5 dernières lignes :

tail -n 5 /var/log/syslog

Cette fonctionnalité est extrêmement utile pour obtenir un aperçu rapide d'un fichier volumineux sans l'ouvrir entièrement.

Linux File Viewing Commands Overview
Cette image résume bien le rôle de chaque commande : `cat` pour tout afficher, `less` pour explorer, `head` pour le début et `tail` pour la fin.

Le super-pouvoir de tail : le suivi en temps réel

La commande tail possède une option qui est l'un des outils les plus importants pour un administrateur système : l'option -f (pour follow ou suivre).

tail -f nom_du_fichier affiche les dernières lignes du fichier, mais au lieu de s'arrêter, la commande reste active et affiche en temps réel toute nouvelle ligne ajoutée au fichier. C'est le moyen par excellence pour surveiller l'activité d'un service en direct.

Mettons cela en pratique. Vous aurez besoin d'ouvrir deux terminaux connectés à votre machine virtuelle. Placez-les côte à côte.

  1. Dans le Terminal 1, créez un fichier de log factice et commencez à le surveiller :

    cd ~
    touch mon_app.log
    tail -f mon_app.log
    

    Le curseur va clignoter, attendant de nouvelles données.

  2. Dans le Terminal 2, simulez une application qui écrit dans ce fichier de log. Utilisez la commande echo avec l'opérateur >> pour ajouter du texte à la fin du fichier :

    cd ~
    echo "10:30:00 - INFO - L'utilisateur s'est connecté." >> mon_app.log
    

    Observez le Terminal 1 : la ligne que vous venez d'ajouter apparaît instantanément !

  3. Ajoutez une autre ligne dans le Terminal 2 :

    echo "10:30:05 - ERREUR - Connexion à la base de données échouée." >> mon_app.log
    

    Encore une fois, la ligne s'affiche en temps réel dans le Terminal 1.

Pour arrêter la commande tail -f, retournez dans le Terminal 1 et appuyez sur Ctrl + C.

Cette technique est fondamentale pour le dépannage : vous lancez tail -f sur un fichier de log, puis vous effectuez l'action qui pose problème (par exemple, recharger une page web) et vous voyez les erreurs apparaître en direct.


4. Mise en pratique

Il est temps de combiner tout ce que vous avez appris.

Exercice : Analyse d'un fichier de "logs"

  1. D'abord, créons un long fichier de texte pour simuler un fichier de log. La commande suivante va lister de manière récursive le contenu du dossier /etc et enregistrer le résultat dans un fichier nommé etc_contents.txt dans votre répertoire personnel.

    cd ~
    ls -lR /etc > etc_contents.txt
    
  2. Le fichier etc_contents.txt est très long. Essayez de l'afficher avec cat. Vous verrez que ce n'est pas pratique.

  3. Utilisez head pour voir à quoi ressemblent les 15 premières lignes du fichier.

    Solution `head -n 15 etc_contents.txt`
  4. Maintenant, utilisez tail pour voir les 20 dernières lignes.

    Solution `tail -n 20 etc_contents.txt`
  5. Le fichier contient la liste de tous les fichiers de configuration. Ouvrez-le avec less et utilisez la fonction de recherche (/) pour trouver la ligne contenant le mot hosts (un fichier important pour la résolution de noms réseau).

    Solution `less etc_contents.txt`
    Puis, une fois dans `less`, tapez `/hosts` et appuyez sur `Entrée`.

Ce petit exercice simule une tâche courante : explorer un fichier volumineux pour trouver une information spécifique.


Conclusion

Félicitations ! Vous maîtrisez maintenant les commandes essentielles pour consulter des fichiers en ligne de commande, une compétence non négociable pour tout professionnel de l'IT travaillant sur Linux.

Points clés à retenir :

  • cat : Pour les fichiers courts ou pour concaténer des fichiers. Simple et direct.
  • less : L'outil par défaut pour lire des fichiers de taille moyenne à grande. Il est interactif et puissant.
  • head et tail : Parfaits pour jeter un coup d'œil rapide au début ou à la fin d'un fichier, en particulier les logs.
  • tail -f : Votre meilleur ami pour le dépannage en temps réel. Il permet de surveiller les fichiers de log au fur et à mesure qu'ils sont écrits.

Vous savez désormais naviguer dans les fichiers, les gérer et lire leur contenu. Il ne manque plus qu'une brique à notre socle de compétences : la modification.

Dans la prochaine leçon, nous aborderons justement ce sujet en apprenant à utiliser nano, un éditeur de texte simple et intuitif en ligne de commande. Vous pourrez alors modifier des fichiers de configuration, écrire des notes ou même créer vos premiers scripts.