Appearance
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 fichiersless/more: Affichage paginé pour de gros fichiershead: Affichage des premières lignestail: Affichage des dernières lignesgrep: Recherche et filtrage de contenusort: Tri des ligneswc: Comptage de lignes, mots et caractèrescut: Extraction de sections spécifiques de lignesuniq: 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.txtCré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 terminerLes 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.txtNavigation 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.txtNavigation dans more :
barre d'espace: descendre d'une pageentrée: descendre d'une ligneq: 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.txtExemples 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.txtLa 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.txtSuivi 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.logOptions 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.logLa 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.txtOptions 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.txtExpressions 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 chiffresegrep 👍
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.txtOptions 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" fichierRecherche 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.txtTypes 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 colonneLa 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 *.txtLa 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 espaceExtraire 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.txtLa 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.txtPratique 💃
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