Skip to content

Commandes d'affichage sous Linux

Les commandes d'affichage sont essentielles pour consulter, analyser et manipuler le contenu des fichiers sous Linux. Ces outils permettent de visualiser les données de différentes manières selon les besoins.

Vue d'ensemble des commandes d'affichage

Linux propose de nombreuses commandes pour afficher et traiter le contenu des fichiers :

  • cat : Affichage complet d'un ou plusieurs fichiers
  • less / more : Affichage paginé pour de gros fichiers
  • head : Affichage des premières lignes
  • tail : Affichage des dernières lignes
  • grep : Recherche et filtrage de contenu
  • sort : Tri des lignes
  • wc : Comptage de lignes, mots et caractères
  • cut : Extraction de sections spécifiques de lignes
  • uniq : Filtrage des lignes consécutives identiques

La commande cat

La commande cat affiche le contenu d’un fichier dans le terminal sans pagination.

Syntaxe de base

bash
cat [OPTION]... [FILE]...

Les principales options à connaître :

-n : Affiche les numéros de ligne -v : Affiche les caractères non imprimable (^M) utile pour voir si un fichier est au format DOS. -b : Numérote uniquement les lignes non vides

Affichage simple

bash
# Afficher le contenu d'un fichier
$ cat /etc/passwd
root:x:0:0::/root:/usr/bin/bash
bin:x:1:1::/:/usr/bin/nologin
daemon:x:2:2::/:/usr/bin/nologin
mail:x:8:12::/var/spool/mail:/usr/bin/nologin
...

# Afficher le contenu d'un fichier avec le numéro de ligne
$ cat -n /etc/passwd
1  root:x:0:0::/root:/usr/bin/bash
2  bin:x:1:1::/:/usr/bin/nologin
3  daemon:x:2:2::/:/usr/bin/nologin
...

# Afficher plusieurs fichiers à la suite
$ cat fichier1.txt fichier2.txt

# Concaténer des fichiers vers un nouveau fichier
$ cat fichier1.txt fichier2.txt > nouveau.txt

Création de fichiers avec cat

bash
# Créer un fichier avec du contenu
cat > nouveau_fichier.txt
# Saisir du contenu, puis Ctrl+D pour terminer

# Ajouter du contenu à un fichier existant
cat >> fichier_existant.txt
# Saisir du contenu, puis Ctrl+D pour terminer

Les commandes less et more

Affichage paginé avec less

La commande less permet de visualiser de grands fichiers page par page, avec des options de navigation avancées.

bash
# Ouvrir un fichier avec less
less fichier.txt

# Less avec numérotation des lignes
less -N fichier.txt

Navigation dans less :

  • Espace ou d ou Page Down : Page suivante
  • b ou Page Up : Page précédente
  • j ou : Ligne suivante
  • k ou : Ligne précédente
  • g : Aller au début
  • G : Aller à la fin
  • / : Cherche dans le fichier pour un motif regex
  • n : Cherche dans le fichier le prochain motif respecté (/ doit être utilisé avant)
  • N : Cherche dans le fichier le prochain motif respecté (/ doit être utilisé avant)
  • q : Quitter

Beaucoup d'autres opitons sont disponibles, consultez la page de manuel avec man less.

👁️‍🗨️ ^

Le symbole ^ indique la touche Ctrl (ex: ^G = Ctrl + G).

Affichage avec more

la commande more est une alternative plus simple à less mais moins efficace car elle charge tous le contenue du fichier en mémoire alors que less charge le fichier par page.

bash
# Affichage paginé basique
$ more fichier.txt

Navigation dans more :

  • barre d'espace : descendre d'une page
  • entrée : descendre d'une ligne
  • q : quitter

La commande head

Affichage des premières lignes

bash
# Afficher les 10 premières lignes (par défaut)
$ head fichier.txt

# Afficher les 5 premières lignes
$ head -5 fichier.txt
$ head -n 5 fichier.txt

# Afficher les 20 premiers caractères
$ head -c 20 fichier.txt

Exemples pratiques

bash
# Voir l'en-tête d'un fichier CSV
$ head -3 donnees.csv

# Examiner plusieurs fichiers
$ head -5 *.txt

# Afficher avec nom de fichier
$ head -n 3 -v fichier1.txt fichier2.txt

La commande tail

Affichage des dernières lignes

bash
# Afficher les 10 dernières lignes (par défaut)
$ tail fichier.txt

# Afficher les 20 dernières lignes
$ tail -20 fichier.txt
$ tail -n 20 fichier.txt

# Afficher les 100 derniers caractères
$ tail -c 100 fichier.txt

Suivi en temps réel

bash
# Suivre les nouvelles lignes (très utile pour les logs)
$ tail -f /var/log/syslog
# ctrl + C pour arrêter

# Suivre avec nombre de lignes spécifique
$ tail -n 50 -f application.log

# Suivre plusieurs fichiers
$ tail -f fichier1.log fichier2.log

Options avancées

bash
# Commencer à partir de la ligne 10
$ tail -n +10 fichier.txt

# Suivre même si le fichier est recréé
$ tail -F /var/log/messages

# Arrêter le suivi après N secondes
$ timeout 30 tail -f application.log

La commande grep

La commande grep permet de rechercher des lignes de texte dans des fichiers en utilisant des expressions régulières ou des motifs de recherche.

bash
grep [options] motif [fichiers...]
  • motif : Le texte ou l’expression régulière à rechercher.
  • fichiers : Liste optionnelle de fichiers à analyser. En l'absence de fichiers spécifiés, grep traite l'entrée standard (données provenant du clavier ou d'une autre commande via un pipe). Nous verrons cela plus tard.

Recherche de base

bash
# Recherche simple
$ grep "motif" fichier.txt

# Recherche insensible à la casse
$ grep -i "motif" fichier.txt

# Recherche dans plusieurs fichiers
$ grep "erreur" *.log

# Recherche récursive dans les sous-répertoires
$ grep -r "configuration" /etc/

# Affiche uniquement le motif trouvé
$ grep -o "motif" fichier.txt

Options de contexte

bash
# Afficher N lignes avant la correspondance
$ grep -B 3 "erreur" log.txt

# Afficher N lignes après la correspondance  
$ grep -A 2 "warning" log.txt

# Afficher N lignes avant et après
$ grep -C 2 "exception" log.txt

Expressions régulières

bash
# Recherche avec regex de base
$ grep "^erreur" fichier.txt        # Ligne commençant par "erreur"
$ grep "\.txt$" fichier.txt         # Ligne se terminant par ".txt"

# Regex étendues
$ grep -E "(erreur|error)" fichier.txt     # OU logique
$ grep -E "[0-9]+" fichier.txt             # Un ou plusieurs chiffres

egrep 👍

la commande egrep est une version de grep qui utilise par défaut les expressions régulières étendues (option -E). Elle est équivalente à grep -E.

bash
# Exemple avec egrep
$ egrep "(erreur|error)" fichier.txt

Options utiles

bash
# Compter les occurrences
$ grep -c "motif" fichier.txt

# Afficher seulement les noms de fichiers
$ grep -l "motif" *.txt

# Afficher les numéros de ligne
$ grep -n "motif" fichier.txt

# Inverser la recherche (lignes qui ne contiennent pas)
$ grep -v "motif" fichier.txt

# Recherche de mot entier uniquement
$ grep -w "mot" fichier.txt

# Coloriser les résultats si ce n'est pas déjà activé par défaut
$ grep --color "motif" fichier

Recherche dans la sortie d'une autre commande

bash
# Afficher tous les fichiers contenant le mot "erreur" 
# dans un répertoire et les afficher
$ find /var/log -type f -exec grep -l "erreur" {} \;

La commande sort

La commande sort trie les lignes d'un fichier ou de l'entrée standard selon différents critères.

bash
sort [OPTION]... [FICHIER]...

Tri de base

bash
# Tri alphabétique standard
$ sort fichier.txt

# Tri et sauvegarde
$ sort fichier.txt > fichier_trie.txt

# Tri en place (modifie l'original)
$ sort -o fichier.txt fichier.txt

Types de tri

bash
# Tri numérique
$ sort -n nombres.txt

# Tri inverse (décroissant)
$ sort -r fichier.txt

# Tri numérique inverse
$ sort -nr nombres.txt

# Tri aléatoire
$ sort -R fichier.txt

# Tri unique (supprime les doublons)
$ sort -u fichier.txt

# Tri par clé spécifique pour les fichiers structurés
$ sort -k2 fichier.txt  # Tri par la 2e colonne

La commande wc

La commande wc (word count) est utilisée pour compter les lignes, les mots et les caractères dans un fichier.

bash
wc [OPTION]... [FICHIER]...

Comptages divers

bash
# Compter lignes, mots et caractères
$ wc fichier.txt

# Compter seulement les lignes
$ wc -l fichier.txt

# Compter seulement les mots
$ wc -w fichier.txt

# Compter seulement les caractères
$ wc -m fichier.txt

# Compter plusieurs fichiers
$ wc *.txt

La commande cut

La commande cut est utilisée pour extraire des sections spécifiques de chaque ligne d'un fichier ou de l'entrée standard. Elle est particulièrement utile pour manipuler des fichiers structurés, comme les fichiers CSV ou les fichiers délimités par des tabulations.

bash
cut [OPTION]... [FICHIER]...

Options principales

-d : Spécifie le délimiteur de champ (par défaut, c'est la tabulation). -f : Indique les champs à extraire (numéros de champ séparés par des virgules ou des plages). -c : Indique les positions de caractères à extraire.

bash
# Extraire des champs délimités par un caractère spécifique
$ cut -d',' -f1,3 fichier.csv  # Extrait les colonnes 1 et 3 d'un fichier CSV

$ cut -d$'\t' -f2 fichier.txt  # Extrait la 2e colonne d'un fichier tabulé
# Le $ dans est utilisé pour créer une séquence d'échappement.

$ cut -d':' -f1 /etc/passwd     # Extrait les noms d'utilisateur du fichier passwd

$ cut -d' ' -f1,4 fichier.txt   # Extrait les colonnes 1 et 4 d'un fichier espace

Extraire par position de caractère

bash
# Extraire les caractères de la position 1 à 5
$ cut -c1-5 fichier.txt 
# Extraire les caractères de la position 3 à la fin
$ cut -c3- fichier.txt
# Extraire les caractères aux positions 1, 3 et 5
$ cut -c1,3,5 fichier.txt

La commande uniq

La commande uniq est utilisée pour filtrer les lignes consécutives identiques dans un fichier ou l'entrée standard. Elle est souvent utilisée en combinaison avec la commande sort, car uniq ne supprime que les doublons adjacents.

bash
uniq [OPTION]... [FICHIER]...

Options principales

-c : Préfixe chaque ligne avec le nombre d'occurrences. -d : Affiche uniquement les lignes qui sont dupliquées. -u : Affiche uniquement les lignes uniques (non dupliquées). -i : Ignore la casse lors de la comparaison des lignes.

Exemples d'utilisation

bash
# Supprimer les lignes consécutives identiques
$ uniq fichier.txt
# Compter les occurrences de chaque ligne
$ uniq -c fichier.txt
# Afficher uniquement les lignes dupliquées
$ uniq -d fichier.txt
# Afficher uniquement les lignes uniques
$ uniq -u fichier.txt
# Ignorer la casse lors de la comparaison
$ uniq -i fichier.txt

Pratique 💃

Pour pratiquer ces commandes, utilisez les fichiers de données fournis dans le répertoire donnees/ du dépôt GitLab suivant :

https://gitlab.com/16d/420-16d-exercices/-/tree/main/commandes-affichage

Cloner le dépôt avec :

bash
$ git clone https://gitlab.com/16d/420-16d-exercices.git
$ cd 420-16d-exercices/commandes-affichage

.