15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer
10.11.2023

La commande `less` sous Linux : Guide complet avec syntaxe, options et utilisation réelle

La commande less sous Linux est un utilitaire de pagination en terminal qui vous permet de visualiser le contenu de fichiers texte et les sorties de commandes de manière interactive, sans charger l’intégralité du fichier en mémoire. Contrairement aux éditeurs de texte tels que Vim ou Nano, less ouvre les fichiers en mode lecture seule et paginé, ce qui en fait l’outil de référence pour inspecter les fichiers journaux volumineux, les fichiers de configuration et les flux de sortie de commandes sur tout système de type Unix.

Pour une réponse rapide : less filename ouvre n’importe quel fichier texte dans un visualiseur interactif et défilable. Vous pouvez naviguer vers l’avant et vers l’arrière, rechercher des motifs et quitter proprement — le tout sans modifier le fichier.

Pourquoi less est essentiel pour les administrateurs système

Lors de la gestion d’un serveur Linux, vous traitez régulièrement des fichiers comportant des milliers de lignes — journaux d’application, messages du noyau, journaux d’accès Apache ou Nginx, dumps de configuration, et bien plus encore. Les ouvrir dans un éditeur complet est inefficace et comporte le risque de modification accidentelle. Le pager less charge le contenu à la demande, ce qui signifie qu’il ne lit que la portion du fichier actuellement affichée. Cela le rend exceptionnellement efficace pour les fichiers de plusieurs gigaoctets.

Ce comportement est fondamentalement différent de commandes comme cat, qui déverse l’intégralité du fichier sur la sortie standard en une seule fois, ou head/tail, qui n’affichent qu’une portion fixe. less vous offre un contrôle interactif complet sur la navigation sans aucune surcharge mémoire proportionnelle à la taille du fichier.

Si vous gérez un environnement VPS Hosting ou un Serveur Dédié, less sera l’un des outils de diagnostic les plus fréquemment utilisés dans votre flux de travail quotidien — notamment lors de l’exploration de /var/log/syslog, /var/log/auth.log, ou des répertoires de journaux spécifiques aux applications.

less vs. more : une comparaison technique

La commande more est antérieure à less et en est le prédécesseur conceptuel. Bien que les deux soient des pagers, leurs capacités diffèrent considérablement. Le nom « less » est une blague Unix délibérée : *less is more than more*.

Fonctionnalitélessmore
Défilement vers l’avantOuiOui
Défilement vers l’arrièreOuiNon
Navigation par touches fléchéesOuiLimitée
Recherche vers l’avant (/pattern)OuiOui
Recherche vers l’arrière (?pattern)OuiNon
Saut à un numéro de ligneOuiNon
Pourcentage du fichier luOuiNon
Support des pipesOuiOui
Ouverture de plusieurs fichiersOuiNon
Utilisation mémoire pour les grands fichiersConstante (à la demande)Plus élevée
Disponible sur les systèmes minimauxParfois non préinstalléPresque toujours présent

La conclusion pratique : utilisez more uniquement lorsque less est indisponible, par exemple sur des images de conteneurs extrêmement allégées ou des systèmes embarqués hérités. Dans tous les autres contextes, less est strictement supérieur.

Syntaxe de base

less [OPTIONS] filename

Vous pouvez également rediriger la sortie directement vers less via un pipe :

command | less

Exemples :

less /var/log/syslog
grep "error" /var/log/nginx/access.log | less
dmesg | less
cat /etc/nginx/nginx.conf | less

Le schéma avec pipe est particulièrement puissant. Toute commande produisant une sortie verbeuse — ps aux, netstat -tulnp, find / -name "*.conf" — devient gérable lorsqu’elle est redirigée vers less.

Raccourcis clavier de navigation par défaut

Une fois dans less, les raccourcis clavier suivants contrôlent la navigation. Ce ne sont pas des options facultatives — ce sont des commandes interactives que vous saisissez pendant que le fichier est ouvert.

ToucheAction
Space ou fDéfiler d’un écran complet vers l’avant
bDéfiler d’un écran complet vers l’arrière
Down arrow ou jDéfiler d’une ligne vers l’avant
Up arrow ou kDéfiler d’une ligne vers l’arrière
dDéfiler d’un demi-écran vers l’avant
uDéfiler d’un demi-écran vers l’arrière
gAller au début du fichier
GAller à la fin du fichier
nG ou ngAller à la ligne numéro n
/patternRechercher un motif vers l’avant
?patternRechercher un motif vers l’arrière
nRépéter la dernière recherche dans la même direction
NRépéter la dernière recherche dans la direction opposée
qQuitter less
hAfficher l’écran d’aide
FMode suivi — comme tail -f, diffuse le nouveau contenu

La touche F (mode suivi) mérite une attention particulière. Elle transforme less en moniteur de journaux en direct, équivalent à tail -f, mais avec la possibilité supplémentaire d’appuyer sur Ctrl+C pour arrêter le suivi, puis de naviguer en arrière dans le contenu déjà chargé. C’est quelque chose que tail -f ne peut pas faire.

Référence des options de ligne de commande

Ces options sont passées lors de l’invocation de less depuis la ligne de commande, modifiant son comportement avant l’ouverture du fichier.

OptionDescription
-NAfficher les numéros de ligne dans la marge gauche
-nSupprimer les numéros de ligne (par défaut sur certains systèmes)
-iRecherche insensible à la casse (ignore les majuscules/minuscules)
-IRecherche insensible à la casse, même pour le motif lui-même
-STronquer les longues lignes au lieu de les enrouler (utile pour les fichiers CSV larges ou les journaux)
-p patternOuvrir le fichier et sauter directement à la première occurrence du motif spécifié
-cRepeindre l’écran depuis le haut au lieu de défiler (réduit le scintillement sur les terminaux lents)
-gMettre en surbrillance uniquement la chaîne trouvée par la recherche la plus récente, et non toutes les correspondances
-GDésactiver entièrement la mise en surbrillance des résultats de recherche
-FQuitter automatiquement si l’intégralité du fichier tient sur un seul écran
-XNe pas effacer l’écran à la fermeture de less (laisse le contenu visible dans le terminal)
-RAfficher les séquences d’échappement de couleur ANSI (indispensable lors de la redirection de sorties colorées)
-eQuitter automatiquement à la deuxième fin de fichier
+nDémarrer à la ligne numéro n
+/patternDémarrer à la première occurrence de pattern (syntaxe alternative à -p)
-mAfficher le pourcentage du fichier lu dans l’invite (comme more)
-MAfficher une invite plus détaillée incluant les numéros de ligne et le pourcentage

Combinaisons d’options pratiques

Afficher un fichier journal avec numéros de ligne, recherche insensible à la casse et sans retour à la ligne :

less -NiS /var/log/apache2/error.log

Ouvrir un fichier et sauter directement à la première occurrence de « segfault » :

less -p "segfault" /var/log/kern.log

Rediriger la sortie colorée d’une commande et préserver les couleurs :

grep --color=always "FAILED" /var/log/auth.log | less -R

Ouvrir un fichier et quitter immédiatement s’il tient sur un seul écran :

less -F /etc/hosts

Recherche dans less : techniques avancées

La fonctionnalité de recherche dans less prend en charge les expressions régulières, pas seulement les chaînes littérales. C’est une distinction essentielle que de nombreux utilisateurs négligent.

/error|warning|critical

Ce motif correspond à toute ligne contenant « error », « warning » ou « critical » — en utilisant la syntaxe regex étendue POSIX standard. Combiné à -i pour l’insensibilité à la casse, cela devient un puissant outil d’analyse de journaux en ligne sans avoir besoin de grep comme préprocesseur.

Recherche dans plusieurs fichiers :

less file1.log file2.log file3.log

Utilisez :n pour passer au fichier suivant et :p pour revenir au précédent. La recherche /pattern s’applique uniquement au fichier courant, mais vous pouvez la répéter manuellement sur les autres fichiers.

Travailler avec plusieurs fichiers et les pipes nommés

less peut ouvrir plusieurs fichiers en séquence :

less /var/log/syslog /var/log/kern.log /var/log/auth.log

Il fonctionne également correctement avec les pipes nommés (FIFOs) et la substitution de processus, ce qui est utile dans les scripts shell avancés :

less <(journalctl -u nginx --since "1 hour ago")

Cela ouvre la sortie de journalctl comme s’il s’agissait d’un fichier, avec un défilement arrière complet — ce qu’un simple pipe ne permettrait pas pour la navigation arrière dans tous les environnements shell.

Cas limites réels et pièges à éviter

Fichiers binaires : Exécuter less sur un fichier binaire (exécutables compilés, archives compressées) affichera des caractères illisibles et peut déclencher un avertissement. Utilisez less -f pour forcer l’ouverture, mais la sortie sera largement illisible. Pour l’inspection binaire, xxd ou hexdump est l’outil approprié.

Lignes très larges : Les fichiers journaux générés par certains frameworks Java ou des applications à forte utilisation de JSON contiennent souvent des lignes individuelles extrêmement longues. Sans -S, less enroule ces lignes, les rendant difficiles à lire. L’option -S active le défilement horizontal avec les touches fléchées, ce qui est bien plus pratique.

Fichiers compressés : Sur les systèmes avec lesspipe configuré (courant sur Debian/Ubuntu), less peut ouvrir de manière transparente les fichiers .gz, .bz2, .zip et d’autres formats compressés. Vérifiez s’il est activé avec echo $LESSOPEN. Si ce n’est pas configuré, utilisez zless (un script wrapper) pour les fichiers compressés avec gzip.

Couleurs perdues dans les pipes : Lors de la redirection de la sortie d’outils comme grep --color, ls --color ou diff, les codes de couleur sont des séquences d’échappement ANSI. Sans -R, less les affiche comme des caractères d’échappement bruts. Utilisez toujours less -R lors de la redirection de sorties colorées.

LESSOPEN et LESSCLOSE : Ces variables d’environnement définissent des scripts de prétraitement et de post-traitement que less exécute sur les fichiers avant de les afficher. Sur un système correctement configuré, cela permet à less d’afficher de manière transparente le contenu d’archives, de PDF et même d’images (en art ASCII). Il s’agit d’une fonctionnalité sous-utilisée avec une utilité diagnostique significative.

Configuration persistante de less avec la variable d’environnement LESS

Plutôt que de saisir des options à chaque fois, vous pouvez définir des options par défaut via la variable d’environnement LESS dans votre profil shell (~/.bashrc ou ~/.zshrc) :

export LESS="-NiRMS"

Cela applique -N (numéros de ligne), -i (recherche insensible à la casse), -R (rendu des couleurs), -M (invite détaillée) et -S (pas de retour à la ligne) à chaque invocation de less automatiquement. C’est une pratique standard sur les serveurs de production où l’analyse de journaux est fréquente.

Utilisation de less dans les scripts shell et l’automatisation

Bien que less soit principalement interactif, il s’intègre proprement dans les scripts d’administration. Un schéma courant consiste à l’invoquer conditionnellement uniquement lors de l’exécution dans un terminal interactif :

if [ -t 1 ]; then
    some_command | less -R
else
    some_command
fi

Le test -t 1 vérifie si la sortie standard est connectée à un terminal. Cela empêche less de bloquer les pipelines non interactifs ou les tâches cron.

less dans le contexte de la gestion de serveurs

Sur un VPS avec cPanel ou tout environnement géré par un panneau de contrôle, less reste indispensable pour l’administration via SSH même lorsqu’une interface graphique est disponible. Les panneaux de contrôle exposent des vues de journaux limitées ; l’accès SSH direct avec less vous offre une visibilité non filtrée et en temps réel sur le comportement du système.

Lors du provisionnement de Serveurs Dédiés pour des applications à fort trafic, les flux de travail d’analyse de journaux structurés autour de less, grep, awk et sed constituent l’épine dorsale de la réponse aux incidents. Savoir naviguer efficacement dans un journal d’accès de 2 GB sans le charger en mémoire est une compétence fondamentale d’administrateur système.

Pour les équipes gérant une infrastructure d’Hébergement Email, less est l’outil standard pour inspecter les journaux de messagerie Postfix (/var/log/mail.log) et les journaux d’authentification Dovecot, où la navigation arrière ligne par ligne est essentielle pour retracer les échecs de livraison.

Matrice de décision rapide

Utilisez cette matrice pour décider quel outil utiliser lors de la consultation du contenu d’un fichier :

ScénarioOutil recommandé
Afficher un grand fichier journal de manière interactiveless -NiS
Surveiller un fichier journal en temps réelless +F ou tail -f
Afficher uniquement les N dernières lignestail -n N
Afficher uniquement les N premières ligneshead -n N
Rechercher et filtrer sans interactiongrep
Afficher un fichier .gz compressézless ou less avec lesspipe
Inspecter du contenu binaire/hexadécimalxxd ou hexdump
Afficher avec coloration syntaxiquebat (pager tiers)
Affichage rapide d’un petit fichiercat
Système minimal, less indisponiblemore

Points techniques essentiels à retenir

  • less charge le contenu des fichiers à la demande — l’utilisation mémoire n’évolue pas avec la taille du fichier, ce qui le rend sûr pour les fichiers de plusieurs gigaoctets.
  • L’option -R est obligatoire lors de la redirection de sorties colorées ; son omission produit des séquences d’échappement illisibles.
  • Le mode suivi (touche F) fournit la fonctionnalité de tail -f avec la possibilité supplémentaire de défiler en arrière dans le contenu mis en mémoire tampon.
  • Les expressions régulières sont prises en charge nativement dans les motifs de recherche — inutile de préfiltrer avec grep pour la correspondance de motifs.
  • Définissez export LESS="-NiRMS" dans votre profil shell pour appliquer des paramètres par défaut sensés globalement.
  • Utilisez less <(command) avec la substitution de processus pour une navigation interactive complète de la sortie des commandes, y compris le défilement arrière.
  • La variable LESSOPEN permet la décompression transparente et la conversion de format — vérifiez qu’elle est configurée sur vos serveurs.
  • N’utilisez jamais cat sur des fichiers volumineux lorsque less est disponible ; cela sature le tampon du terminal et ne fournit aucune capacité de navigation.

Foire aux questions

Quelle est la différence entre less et cat sous Linux ?

cat envoie l’intégralité du contenu du fichier sur la sortie standard en une seule fois, sans interactivité ni pagination. less ouvre le fichier dans un pager interactif où vous pouvez défiler, rechercher et naviguer. Pour tout fichier plus long que la hauteur de votre terminal, less est l’outil approprié.

less peut-il modifier des fichiers ?

Non. less est strictement un visualiseur en lecture seule. Il ne modifie les fichiers en aucune circonstance. Pour éditer, utilisez vim, nano ou un autre éditeur de texte.

Comment rechercher un mot dans less ?

Lorsque le fichier est ouvert dans less, tapez /word et appuyez sur Entrée pour rechercher vers l’avant. Utilisez ?word pour rechercher vers l’arrière. Appuyez sur n pour passer à la correspondance suivante et sur N pour revenir à la précédente. Les recherches prennent en charge les expressions régulières.

Pourquoi less affiche-t-il des caractères illisibles lorsque je redirige une sortie colorée ?

Les séquences d’échappement de couleur ANSI ne sont pas rendues par défaut. Passez l’option -R — soit sous la forme less -R, soit en définissant export LESS="-R" dans votre profil shell — pour afficher les couleurs correctement.

less est-il disponible sur toutes les distributions Linux ?

less est inclus par défaut sur pratiquement toutes les distributions Linux majeures, notamment Debian, Ubuntu, CentOS, RHEL, Fedora et Arch Linux. Sur les images de base Docker minimales ou Alpine Linux, il peut nécessiter une installation explicite avec apk add less ou la commande équivalente du gestionnaire de paquets.

15%

Économisez 15% sur tous les services d'hébergement

Testez vos compétences et obtenez Réduction sur tout plan d'hébergement

Utilisez le code :

Skills
Commencer