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é | less | more |
|---|---|---|
| Défilement vers l’avant | Oui | Oui |
| Défilement vers l’arrière | Oui | Non |
| Navigation par touches fléchées | Oui | Limitée |
Recherche vers l’avant (/pattern) | Oui | Oui |
Recherche vers l’arrière (?pattern) | Oui | Non |
| Saut à un numéro de ligne | Oui | Non |
| Pourcentage du fichier lu | Oui | Non |
| Support des pipes | Oui | Oui |
| Ouverture de plusieurs fichiers | Oui | Non |
| Utilisation mémoire pour les grands fichiers | Constante (à la demande) | Plus élevée |
| Disponible sur les systèmes minimaux | Parfois 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] filenameVous pouvez également rediriger la sortie directement vers less via un pipe :
command | lessExemples :
less /var/log/syslog
grep "error" /var/log/nginx/access.log | less
dmesg | less
cat /etc/nginx/nginx.conf | lessLe 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.
| Touche | Action |
|---|---|
Space ou f | Défiler d’un écran complet vers l’avant |
b | Défiler d’un écran complet vers l’arrière |
Down arrow ou j | Défiler d’une ligne vers l’avant |
Up arrow ou k | Défiler d’une ligne vers l’arrière |
d | Défiler d’un demi-écran vers l’avant |
u | Défiler d’un demi-écran vers l’arrière |
g | Aller au début du fichier |
G | Aller à la fin du fichier |
nG ou ng | Aller à la ligne numéro n |
/pattern | Rechercher un motif vers l’avant |
?pattern | Rechercher un motif vers l’arrière |
n | Répéter la dernière recherche dans la même direction |
N | Répéter la dernière recherche dans la direction opposée |
q | Quitter less |
h | Afficher l’écran d’aide |
F | Mode 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.
| Option | Description |
|---|---|
-N | Afficher les numéros de ligne dans la marge gauche |
-n | Supprimer les numéros de ligne (par défaut sur certains systèmes) |
-i | Recherche insensible à la casse (ignore les majuscules/minuscules) |
-I | Recherche insensible à la casse, même pour le motif lui-même |
-S | Tronquer les longues lignes au lieu de les enrouler (utile pour les fichiers CSV larges ou les journaux) |
-p pattern | Ouvrir le fichier et sauter directement à la première occurrence du motif spécifié |
-c | Repeindre l’écran depuis le haut au lieu de défiler (réduit le scintillement sur les terminaux lents) |
-g | Mettre en surbrillance uniquement la chaîne trouvée par la recherche la plus récente, et non toutes les correspondances |
-G | Désactiver entièrement la mise en surbrillance des résultats de recherche |
-F | Quitter automatiquement si l’intégralité du fichier tient sur un seul écran |
-X | Ne pas effacer l’écran à la fermeture de less (laisse le contenu visible dans le terminal) |
-R | Afficher les séquences d’échappement de couleur ANSI (indispensable lors de la redirection de sorties colorées) |
-e | Quitter automatiquement à la deuxième fin de fichier |
+n | Démarrer à la ligne numéro n |
+/pattern | Démarrer à la première occurrence de pattern (syntaxe alternative à -p) |
-m | Afficher le pourcentage du fichier lu dans l’invite (comme more) |
-M | Afficher 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.logOuvrir un fichier et sauter directement à la première occurrence de « segfault » :
less -p "segfault" /var/log/kern.logRediriger la sortie colorée d’une commande et préserver les couleurs :
grep --color=always "FAILED" /var/log/auth.log | less -ROuvrir un fichier et quitter immédiatement s’il tient sur un seul écran :
less -F /etc/hostsRecherche 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|criticalCe 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.logUtilisez :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.logIl 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
fiLe 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énario | Outil recommandé |
|---|---|
| Afficher un grand fichier journal de manière interactive | less -NiS |
| Surveiller un fichier journal en temps réel | less +F ou tail -f |
| Afficher uniquement les N dernières lignes | tail -n N |
| Afficher uniquement les N premières lignes | head -n N |
| Rechercher et filtrer sans interaction | grep |
Afficher un fichier .gz compressé | zless ou less avec lesspipe |
| Inspecter du contenu binaire/hexadécimal | xxd ou hexdump |
| Afficher avec coloration syntaxique | bat (pager tiers) |
| Affichage rapide d’un petit fichier | cat |
Système minimal, less indisponible | more |
Points techniques essentiels à retenir
lesscharge 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
-Rest 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é detail -favec 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
greppour 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
LESSOPENpermet la décompression transparente et la conversion de format — vérifiez qu’elle est configurée sur vos serveurs. - N’utilisez jamais
catsur des fichiers volumineux lorsquelessest 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.
