Commande man : utilisation et options, numéros de section et recherche avec man -k
Pour vérifier comment s'utilise une commande ou un fichier de configuration sur un serveur Linux, on ouvre sa page de manuel avec la commande man et, quand on ne connaît pas le nom, on cherche dans les descriptions courtes avec man -k. En cherchant la page passwd sur des serveurs AlmaLinux 9 et Debian 12, Debian 12 avait à la fois la page de commande de la section 1 et la page de format de fichier de la section 5, alors qu'AlmaLinux 9 n'avait pas de page en section 5.
La sortie ci-dessous provient d'un serveur AlmaLinux 9.8 avec le compte root et d'un serveur Debian 12 avec un compte ordinaire. Le nom d'hôte et l'adresse de connexion du simulateur sont des valeurs d'exemple.
1️⃣ Utilisation de base de la commande man
Quand on écrit un nom de commande après man, la page de manuel de cette commande s'ouvre. man transmet la page à un pager, un programme qui l'affiche écran par écran, et ne revient donc pas tout de suite à l'invite après son lancement. Le pager est défini par la variable d'environnement MANPAGER ou PAGER et, si les deux sont vides, c'est less qui est utilisé.
Si la sortie passe par un tube, seul le texte s'affiche, sans pager. En récupérant avec head les 12 premières lignes de [man ls], la première ligne contenait LS(1), puis venaient dans l'ordre les sections NAME, SYNOPSIS et DESCRIPTION.
man ls | head -n 12LS(1) User Commands LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is speci-
fied.Le chiffre 1 entre parenthèses dans LS(1), sur la première ligne, est le numéro de la section qui contient cette page.
Dans une page, [Space] affiche l'écran suivant, et [/mot] suivi de Enter recherche un mot. [n] passe à l'occurrence suivante du même mot, et [q] quitte man.
Si l'on écrit un nom qui n'existe pas, l'erreur [No manual entry for] s'affiche, et le code de sortie était 16.
man no-such-cmd9No manual entry for no-such-cmd9echo $?16La section EXIT STATUS de la page de man décrit 16 comme la valeur renvoyée quand au moins une des pages, un des fichiers ou un des mots n'a pas été trouvé. Une erreur d'utilisation donne 1, ce qui permet à un script de traiter les deux cas séparément.
2️⃣ Numéros de section de man
Quand des pages du même nom existent dans plusieurs sections, man parcourt les sections dans un ordre défini et n'ouvre que la première page trouvée. Les sections vont de 1 à 9, et celles que l'on ouvre le plus souvent en travaillant sur un serveur sont la section 1 pour les commandes, la section 5 pour les formats de fichier et la section 8 pour les commandes d'administration.
| Section | Pages contenues | Exemple vu sur le serveur AlmaLinux 9.8 |
|---|---|---|
| 1 | Programmes exécutables et commandes du shell | ls, passwd, crontab, man |
| 2 | Appels système (fonctions fournies par le noyau) | |
| 3 | Fonctions de bibliothèque | |
| 4 | Fichiers spéciaux (en général sous /dev) | |
| 5 | Formats de fichier et conventions, p. ex. /etc/passwd | crontab |
| 6 | Jeux | |
| 7 | Divers (paquets de macros et conventions) | |
| 8 | Commandes d'administration système, en général pour root | useradd, mandb |
| 9 | Routines du noyau (non standard) |
crontab a des pages dans deux sections, car la commande et le format du fichier de configuration portent le même nom. La vérification avec [man -f crontab] a affiché ensemble les lignes des sections 1 et 5.
man -f crontabcrontab (1) - maintains crontab files for individual users
crontab (5) - files used to schedule the execution of programsLancer [man crontab] sans numéro de section ouvre la page de la commande crontab en section 1. Pour voir le format du fichier de planification des tâches, on écrit 5 devant le nom.
man 5 crontab | head -n 4CRONTAB(5) File Formats CRONTAB(5)
NAME
crontab - files used to schedule the execution of programsLa première ligne est devenue CRONTAB(5) et File Formats, et la ligne NAME affichait elle aussi la description du fichier de planification des tâches au lieu de celle de la commande.
Si la section indiquée ne contient pas de page de ce nom, une erreur s'affiche. Sur le serveur AlmaLinux 9.8, [man 5 passwd], lancé pour voir le format du fichier /etc/passwd, a renvoyé une erreur indiquant qu'il n'y avait pas de page en section 5.
man 5 passwdNo manual entry for passwd in section 5Sur le serveur Debian 12, [man -f passwd] affichait aussi la ligne passwd de la section 5. Les sections qui contiennent une page dépendent des manuels installés sur le serveur ; avant d'ajouter un numéro de section, on vérifie donc d'abord avec [man -f].
man -f passwdpasswd (1) - change user password
passwd (1ssl) - OpenSSL application commands
passwd (5) - the password fileLa section 8 contient des commandes d'administration lancées surtout par le compte root, comme useradd, qui crée des comptes.
man -f useradduseradd (8) - create a new user or update default new user information3️⃣ Options de la commande man et recherche avec -k et -f
[man -f] affiche la description d'une ligne des pages du même nom et fonctionne comme whatis. Sur le serveur AlmaLinux 9.8, [man -f passwd] et [whatis passwd] ont affiché les deux mêmes lignes.
man -f passwdpasswd (1) - update user's authentication tokens
passwd (1ossl) - OpenSSL application commandsLa ligne 1ossl est la page d'une commande OpenSSL qui porte aussi le nom passwd.
Quand on ne connaît pas le nom, [man -k] cherche dans les noms de page et les descriptions courtes. Il fonctionne comme apropos, et le mot est lu comme une expression régulière.
man -k '^passwd'passwd (1) - update user's authentication tokens
passwd (1ossl) - OpenSSL application commands^ désigne le début de la ligne, donc seules les lignes commençant par passwd sont sorties. On peut aussi chercher avec un mot de la description : [man -k 'directory contents'] a trouvé les pages dir et vdir en plus de ls.
man -k 'directory contents'dir (1) - list directory contents
ls (1) - list directory contents
vdir (1) - list directory contents[man -k] ne cherche que dans les descriptions courtes de la section NAME et ne trouve donc pas une page à partir d'un nom d'option ou d'un mot du texte. [man -K], qui cherche aussi dans le texte, lit toutes les pages l'une après l'autre et prend beaucoup de temps.
Si le mot cherché est introuvable, [nothing appropriate] s'affiche, et le code de sortie était 16.
man -k no-such-word9no-such-word9: nothing appropriate.echo $?16[man -w] affiche seulement l'emplacement du fichier source, sans ouvrir la page.
man -w ls/usr/share/man/man1/ls.1.gzman -w 5 crontab/usr/share/man/man5/crontab.5.gzLes deux fichiers se trouvaient dans les dossiers man1 et man5 sous /usr/share/man, et le chiffre du nom de dossier correspondait au numéro de section. Le fichier de la page 1ossl, trouvé avec [man -w 1ossl passwd], était lui aussi dans le dossier man1, le même que celui de la section 1.
Les options sont réunies dans les deux onglets ci-dessous.
| Option | Copier | Description |
|---|---|---|
| -f, --whatis | Affiche la description d'une ligne des pages du même nom. Identique à whatis | |
| -k, --apropos | Cherche dans les noms de page et les descriptions courtes. Identique à apropos | |
| -w, --where, --path, --location | Affiche seulement l'emplacement du fichier source, sans ouvrir la page | |
| -a, --all | Affiche l'une après l'autre toutes les pages dont le nom correspond |
| Option | Copier | Description |
|---|---|---|
| -K, --global-apropos | Cherche un mot dans le texte de toutes les pages. Prend beaucoup de temps | |
| -S, -s, --sectionsliste | Indique les sections à parcourir et leur ordre sous forme de liste séparée par des virgules ou des deux-points | |
| -P, --pagerpager | Indique le pager qui affiche la page. La valeur par défaut est less | |
| -M, --manpathchemin | Indique le chemin des manuels où chercher les pages | |
| -L, --localelocale | Indique la locale à utiliser pour cette exécution | |
| -l, --local-file | Affiche le fichier indiqué comme une page, sans chercher dans les manuels du système | |
| -u, --update | Met à jour les caches d'index des pages installées | |
| -V, --version | Affiche les informations de version |
🔲 Simulateur de la commande man
Dans le simulateur ci-dessous, on peut ouvrir une page avec [man ls] et faire défiler les écrans avec les puces [Space], [/list], [n] et [q]. Sur le même serveur virtuel, on peut ajouter un numéro de section comme dans [man 5 crontab] ou saisir [man -f], [man -k] et [man -w].
4️⃣ Structure d'une page de man
Une page de man est divisée en sections dont les titres sont en majuscules. En extrayant seulement les titres avec grep pour les comparer, la page ls plaçait la description des options dans DESCRIPTION, alors que la page crontab avait une section OPTIONS à part.
man ls | grep -E '^[A-Z]+( [A-Z]+)*$'NAME
SYNOPSIS
DESCRIPTION
AUTHOR
REPORTING BUGS
COPYRIGHT
SEE ALSOman crontab | grep -E '^[A-Z]+( [A-Z]+)*$'NAME
SYNOPSIS
DESCRIPTION
OPTIONS
CAVEATS
SEE ALSO
FILES
STANDARDS
DIAGNOSTICS
AUTHORLes noms des sections varient un peu d'une page à l'autre, et les plus fréquentes sont les suivantes.
| Section | Contenu |
|---|---|
| NAME | Nom et description d'une ligne (la ligne affichée par man -f et man -k) |
| SYNOPSIS | Forme d'écriture de la commande |
| DESCRIPTION | Description du fonctionnement (la page ls y place aussi la description des options) |
| OPTIONS | Un paragraphe par option |
| EXIT STATUS | Signification des codes de sortie |
| FILES | Fichiers que la commande lit ou écrit |
| SEE ALSO | Pages à consulter aussi |
Les symboles de SYNOPSIS suivent des règles fixées par la page de man. Ce qui est entre crochets peut être omis. Les options séparées par une barre verticale (|) ne peuvent pas être utilisées ensemble, et un argument suivi de trois points (...) peut être écrit plusieurs fois.
La SYNOPSIS de ls est ls [OPTION]... [FILE]..., donc les options de commande comme les arguments de ligne de commande, tels que les noms de fichier, peuvent tous être omis ou écrits plusieurs fois.
[--help] est un résumé d'utilisation affiché par le programme lui-même, qui sort donc directement dans le terminal, sans pager. Le Usage de la première ligne de [ls --help] avait la même forme que SYNOPSIS, et la sortie complète faisait 121 lignes, moins que les 245 lignes de [man ls].
ls --help | head -n 3Usage: ls [OPTION]... [FILE]...
List information about the FILEs (the current directory by default).
Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.Une page de man contient d'autres sections absentes de [--help], comme AUTHOR et SEE ALSO. Pour voir rapidement une seule option, on utilise [--help] ; quand il faut une explication divisée en sections, comme le format d'un fichier de configuration ou les codes de sortie, on ouvre man.
🔢 FAQ & contenus recommandés
Planification
Linux : configurer crontab
Comment planifier avec la commande crontab des tâches du serveur pour qu'elles s'exécutent à heure fixe.
Trouver un emplacement
which, whereis et locate sous Linux : 3 commandes pour trouver un emplacement (chemin)
Des commandes pour trouver dans quel chemin se trouvent le fichier exécutable et le fichier de manuel d'une commande.
Transmettre la sortie
Redirection sous Linux (Redirection)
Le flux de l'entrée standard et de la sortie standard, qui envoie la sortie d'une commande vers un fichier ou une autre commande.
ℹ️ Mention d'affiliation
Le contenu de ce site contient des liens d'affiliation. Lorsqu'un visiteur achète un produit ou un service via l'un de ces liens, le site perçoit une commission du vendeur. Le montant payé par l'acheteur(il baisse lors des promotions ↓), lui, n'augmente pas. Les prix, remises et stocks indiqués correspondent à la date de rédaction et peuvent différer ; vérifiez-les donc auprès du vendeur avant d'acheter. Les produits sont choisis et évalués selon nos propres critères, et les commissions n'influencent ni l'ordre de présentation ni le contenu des évaluations.