Comment utiliser la commande less sous Linux

La commande moins vous permet de feuilleter un fichier texte, en affichant à chaque fois un écran de texte. Cela semble être l'une des commandes Linux les plus simples à première vue, mais il y a beaucoup plus à moins qu'il n'y paraît.
L'histoire du moins
Tout dans Linux - et Unix - a une histoire, sans jeu de mots. Le programme less est basé sur le programme more, initialement publié en 1978 dans la version 3.0 de Berkeley Software Distribution Unix (3.0BSD). more vous permettait de parcourir progressivement un fichier texte, en affichant un écran de texte à la fois.
La nécessité étant la mère de l'invention, c'est l'incapacité des premières versions de more à faire défiler un fichier vers l'arrière qui a incité Mark Nudelman à développer less et à surmonter ce problème spécifique. Ce travail a commencé en 1983 et la première version a été publiée en dehors de l'entreprise pour laquelle il travaillait en 1985. Depuis octobre 2019, il est toujours le responsable de less.
Je me demande s'il y a un utilisateur Linux qui n'a pas utilisé less ? Même s'ils ne l'ont pas utilisé pour parcourir un fichier texte choisi, il y a de fortes chances qu'ils aient utilisé la commande man. Et man appelle less dans les coulisses pour afficher les pages man.
C'est une commande avec beaucoup d'astuces dans sa manche.
Pourquoi moins vaut mieux que plus
moins a été ajouté régulièrement au fil des ans. Il a une quantité stupéfiante d'options de ligne de commande et de frappes de commande dans l'application. Faites une comparaison rapide de la page de manuel pour less et de la page de manuel pour more , et vous commencerez à voir à quel point less domine absolument more.
more a surmonté son défaut initial de ne pas pouvoir revenir en arrière dans le texte, mais uniquement pour les fichiers. Il ne peut pas revenir en arrière via une entrée canalisée. Vous pouvez le faire avec moins.
Grâce à sa flexibilité dans la navigation dans les fichiers, l'affichage de plusieurs fichiers, la recherche de texte, la suppression et le retour aux signets et la gestion des entrées canalisées, moins gagne haut la main. Utilisez less au lieu de more .
Lire un fichier avec moins
Pour charger un fichier dans less, indiquez le nom du fichier sur la ligne de commande :
less Dr-Jekyll-and-Mr-Hyde-001.txt
Le fichier est chargé et affiché. Le début (ou début) du fichier est affiché dans la fenêtre du terminal. Vous pouvez utiliser la molette de défilement de votre souris pour faire défiler le texte vers l'avant et vers l'arrière.
Sur le clavier, utilisez la barre d'espace ou la touche Page suivante pour avancer dans le texte d'un écran de texte à la fois.
Page Up vous fera reculer dans le fichier (vers le début du fichier). Les touches Home et End vous amèneront directement au début et à la fin du fichier texte, respectivement.

Le nom du fichier s'affiche dans le coin inférieur gauche de l'écran. Lorsque vous commencez à vous déplacer dans le fichier, la ligne du bas est effacée. Il est utilisé pour vous afficher des messages et pour vous permettre d'entrer des commandes.
Appuyez sur q pour quitter less.
Affichage des numéros de ligne
Pour que les lignes du fichier texte soient numérotées pour vous, utilisez l'option -N (numéros de ligne).
less -N Dr-Jekyll-and-Mr-Hyde-001.txt
Les numéros de ligne peuvent être utiles pour vous guider vers des lignes ou des sections spécifiques dans les fichiers journaux et autres fichiers qui ne sont pas écrits en prose standard.

Chercher en moins
Pour rechercher dans le texte du fichier, appuyez sur/puis tapez votre phrase de recherche. La recherche est sensible à la casse. Votre expression de recherche s'affiche sur la ligne inférieure de l'écran. Appuyez sur Entrée pour effectuer la recherche.
Dans cet exemple, le terme de recherche est Enfield, et cela peut être vu au bas de l'écran.

La recherche s'effectue de la page en cours jusqu'à la fin du fichier texte. Pour effectuer une recherche dans tout le fichier, placez-vous en haut du fichier avant de lancer la recherche.
On vous dira s'il n'y a pas de correspondances. Si une correspondance est trouvée, l'affichage se déplace pour afficher l'élément trouvé.

Pour trouver l'élément correspondant suivant, appuyez sur n. Pour rechercher l'élément correspondant précédent, appuyez sur N.

Pour effectuer une recherche en arrière de votre position actuelle dans le fichier vers le début du fichier, appuyez sur ? clé et tapez votre terme de recherche. Pour trouver l'élément correspondant suivant, appuyez sur n. Pour rechercher l'élément correspondant précédent, appuyez sur N.
Notez que, lorsque vous effectuez une recherche en arrière, l'élément correspondant suivant (trouvé avec n) est le suivant le plus proche du haut du fichier, et le N pour l'élément correspondant précédent recherche un élément correspondant plus près du bas du fichier. en d'autres termes, n et N inversent leur direction de recherche lorsque vous effectuez une recherche vers l'arrière.
Ouverture d'un fichier avec un terme de recherche
Vous pouvez utiliser l'option -p (motif) pour que less recherche dans le fichier texte et trouve le premier élément correspondant. Il affichera alors la page contenant l'élément de recherche correspondant, au lieu de la première page du fichier. À moins, bien sûr, que l'élément de recherche ne se trouve sur la première page du fichier.
Notez qu'il n'y a pas d'espace entre le -p et le terme de recherche.
less -pEnfield Dr-Jekyll-and-Mr-Hyde-001.txt
Le fichier s'affiche avec le premier terme de recherche correspondant en surbrillance.

Naviguer en moins : les touches les plus utiles
Utilisez ces touches pour vous déplacer et rechercher dans le fichier texte.
- Avancer en avant d'une ligne : Flèche vers le bas, Entrée, e ou j
- Se déplacer vers l'arrière d'une ligne : Flèche vers le haut, y ou k
- Avance en avant d'une page : barre d'espace ou page suivante
- Reculer vers l'arrière d'une page : Page précédente ou b
- Faites défiler vers la droite : Flèche vers la droite
- Faites défiler vers la gauche : Flèche vers la gauche
- Accéder au haut du fichier : Accueil ou g
- Aller à la fin du fichier : End ou G
- Accéder à une ligne spécifique : saisissez le numéro de ligne, puis appuyez sur g
- Accéder à un pourcentage dans le fichier : saisissez le pourcentage, puis appuyez sur p ou %. (Vous pouvez même entrer des valeurs décimales, donc pour passer au point 27,2 % dans le fichier, tapez 27,2, puis appuyez sur p ou %. Pourquoi voudriez-vous utiliser des décimales ? Honnêtement, je n'en ai aucune idée.)
- Recherche vers l'avant : appuyez sur/et saisissez votre recherche, par exemple /Jekyll, puis appuyez sur Entrée
- Rechercher en arrière : appuyez sur ? et tapez votre recherche, comme /Hyde, et appuyez sur Entrée
- Suivant élément de recherche correspondant : n
- Précédent élément de recherche correspondant : N
- Quitter : q
Comprimez les lignes vides
L'option -s (squeeze blank lines) supprime une série de lignes vides et les remplace par une seule ligne vide.
Il y a quelques lignes vierges consécutives dans notre fichier d'exemple, voyons comment less les traite lorsque nous utilisons l'option -s :
less -s Dr-Jekyll-and-Mr-Hyde-001.txt
Toutes les lignes blanches doubles (ou plus) ont été remplacées par une seule ligne blanche dans chaque cas.

Affichage de plusieurs fichiers
less peut ouvrir plusieurs fichiers pour vous. Vous pouvez aller et venir d'un fichier à l'autre. less se souviendra de votre position dans chaque fichier.
less Dr-Jekyll-and-Mr-Hyde-001.txt Dr-Jekyll-and-Mr-Hyde-002.txt
Les fichiers sont ouverts et le premier fichier s'affiche. On vous montre quel fichier vous regardez et combien de fichiers ont été chargés. Ceci est mis en évidence ci-dessous.

Pour afficher le fichier suivant, appuyez sur : puis appuyez sur n.
Votre affichage changera pour afficher le deuxième fichier, et les informations sur la ligne du bas sont mises à jour pour indiquer que vous visualisez le deuxième fichier. Ceci est mis en évidence ci-dessous.

Pour passer au fichier précédent, tapez : puis appuyez sur p.
Utilisation des marques
less vous permet de déposer un marqueur afin que vous puissiez facilement revenir à un passage marqué. Chaque marqueur est représenté par une lettre. Pour déposer une marque sur la ligne la plus affichée, appuyez sur « m », puis appuyez sur la lettre que vous souhaitez utiliser, comme « a ».
Lorsque vous appuyez sur m, la ligne inférieure de l'écran affiche une invite en attendant que vous appuyiez sur une touche alphabétique.

Dès que vous appuyez sur une lettre, l'invite est supprimée.
À partir de n'importe quel autre emplacement du fichier, vous pouvez facilement revenir à une marque en appuyant sur l'apostrophe (ou guillemet simple) ', puis en appuyant sur la lettre de la marque à laquelle vous souhaitez revenir. Lorsque vous appuyez sur la touche ', vous êtes invité à indiquer la marque à laquelle vous souhaitez vous rendre.

Appuyez sur la lettre de la marque à laquelle vous souhaitez revenir, et cette section du fichier texte s'affiche pour vous.

Utilisation de l'entrée canalisée avec moins
less peut afficher des informations qui se présentent sous la forme d'un flux de texte canalisé, aussi facilement que s'il s'agissait d'un fichier.
La commande dmesg affiche les messages du tampon circulaire du noyau. Nous pouvons diriger la sortie de dmesg vers less à l'aide de la commande suivante :
dmesg | less
La sortie de dmesg s'affiche.

Vous pouvez paginer et rechercher dans l'entrée canalisée comme s'il s'agissait d'un fichier. Pour voir les messages les plus récents, appuyez sur Fin pour aller au bas du fichier.

Au fur et à mesure que de nouveaux messages arrivent, vous devez continuer à appuyer sur Fin pour forcer less à afficher le bas du fichier. Ce n'est pas très pratique. Pour que less affiche toujours le bas du texte, même lorsque de nouvelles données sont ajoutées, utilisez l'option +F (avant). Notez l'utilisation de + et non de - comme indicateur d'option.
dmesg | less +F
Le drapeau d'option + indique à less de traiter l'option comme si vous aviez utilisé cette commande dans less. Donc, si vous avez oublié d'utiliser l'option +F, appuyez sur F à l'intérieur de moins .

less affiche le bas du texte, qui montre les messages les plus récents de dmesg. Il affiche un message indiquant qu'il attend plus de données. Lorsque d'autres messages du noyau apparaissent, l'affichage défile afin que vous puissiez toujours voir les messages les plus récents.
Vous ne pouvez pas faire défiler ou feuilleter dans ce mode ; il est consacré à l'affichage du bas du texte canalisé. Pour quitter ce mode, appuyez sur Ctrl+c, et vous reviendrez au mode interactif less habituel.
Éditer des fichiers avec moins
Vous pouvez éditer des fichiers avec moins—enfin, en quelque sorte. Cette commande ne peut pas modifier les fichiers, mais si vous tapez v lorsque vous visualisez un fichier, le fichier est transféré vers votre éditeur par défaut. Lorsque vous quittez l'éditeur, vous revenez à less.
Appuyez sur v lors de l'affichage d'un fichier en moins :

Le fichier est chargé dans l'éditeur par défaut, dans ce cas nano :

Lorsque vous fermez l'éditeur, vous êtes tourné vers moins.
En résumé
Aussi contre-intuitif que cela puisse paraître, dans ce cas, moins > plus.
| Linux Commands | ||
| Files | tar · pv · cat · tac · chmod · grep · diff · sed · ar · man · pushd · popd · fsck · testdisk · seq · fd · pandoc · cd · $PATH · awk · join · jq · fold · uniq · journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look · strings · type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc | |
| Processes | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | |
| Networking | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
RELATED: Best Linux Laptops for Developers and Enthusiasts