La commande man (manuel) affiche la documentation de référence installée localement pour la plupart des commandes, fichiers de configuration et fonctions système sous Linux. Pas besoin de chercher en ligne : la réponse est souvent déjà sur la machine.
Utilisation de base
man ls
man grep
man crontab
La page s'ouvre dans un pager (généralement less) : le texte ne défile pas automatiquement, c'est à toi de naviguer.
Se déplacer dans une page
espace # page suivante
b # page précédente
/motif # rechercher "motif" vers le bas
n # occurrence suivante de la recherche
N # occurrence précédente
g # aller au début
G # aller à la fin
q # quitter
La structure d'une page de manuel
Toutes les pages suivent globalement le même plan :
- NAME : le nom de la commande et une description en une ligne
- SYNOPSIS : la syntaxe d'appel
- DESCRIPTION : l'explication détaillée
- OPTIONS : le détail de chaque option
- EXAMPLES : des exemples d'utilisation, quand ils existent
- SEE ALSO : des commandes ou fichiers liés
Lire la ligne SYNOPSIS
Cette ligne utilise une notation précise qu'il vaut la peine de connaître :
rm [-f | -i] [-dIRrvW] file ...
- Les crochets
[ ]signalent un élément optionnel - Le tube
|signifie "l'un ou l'autre", jamais les deux ensemble - Les points de suspension
...indiquent qu'un argument peut être répété - Le texte en gras est à taper tel quel, l'italique est à remplacer par une valeur
Ici, cette ligne dit : rm accepte optionnellement -f ou -i (mais pas les deux), n'importe quelle combinaison des options -dIRrvW, suivi d'un ou plusieurs noms de fichiers.
Exemple concret : lire man grep
Voici un extrait représentatif de ce qu'affiche man grep :
NAME
grep - rechercher un motif dans un fichier
SYNOPSIS
grep [OPTION...] MOTIF [FICHIER...]
DESCRIPTION
grep recherche le MOTIF dans chaque FICHIER et affiche les lignes correspondantes.
-i, --ignore-case
Ignore la casse (majuscules/minuscules).
-n, --line-number
Affiche le numéro de ligne de chaque correspondance.
-r, --recursive
Parcourt récursivement les sous-dossiers.
En appliquant ce qu'on vient de voir : le SYNOPSIS indique que MOTIF est obligatoire (pas de crochets), que les options sont optionnelles ([OPTION...]), et que plusieurs fichiers peuvent être donnés (points de suspension). Pour chercher "erreur" dans tous les fichiers .log d'un dossier, sans tenir compte de la casse, en affichant le numéro de ligne :
grep -in "erreur" *.log
Cette commande combine -i et -n (regroupables derrière un seul tiret, comme souvent en ligne de commande) directement à partir de ce qui a été lu dans la page de manuel.
Les sections du manuel
Le manuel est découpé en sections numérotées, et un même nom peut exister dans plusieurs :
man 1 passwd # la commande passwd
man 5 passwd # le format du fichier /etc/passwd
- 1 : commandes utilisateur
- 2 : appels système
- 5 : formats de fichiers
- 8 : commandes d'administration système
Sans précision, man affiche la première section trouvée, généralement la 1.
Chercher quand on ne connaît pas le nom exact
man -k reseau # ou apropos reseau
whatis ls # résumé d'une ligne, sans ouvrir la page complète
man -k cherche dans les descriptions de toutes les pages installées : pratique pour retrouver une commande dont on a oublié le nom exact.
man ou --help ?
commande --help donne un résumé rapide des options, directement dans le terminal, sans pager. man commande est plus complet mais aussi plus long à parcourir. Le réflexe courant : --help pour un rappel rapide, man quand il faut vraiment comprendre un comportement ou une option précise.