Bien lire une page de man

De Ensiwiki
Aller à : navigation, rechercher

Introduction

Les pages de man sont la source de documentation traditionnelle sous Unix. Il est essentiel à tout bon unixien de savoir s'en servir efficacement.

Les débutants sont souvent effrayés par les pages de man, et pour cause : il s'agit de documentation technique, complètes, mais rarement écrites pour les débutants. Pour découvrir un logiciel un minimum complexe, il est souvent préférable de chercher un manuel utilisateur plus convivial, par contre, quand on sait ce qu'on cherche, man est très efficace.

Les différentes parties

NAME

En haut de la page de man, on rappelle le nom de la commande, suivi d'une ligne expliquant son principe. C'est cette ligne qui apparait quand on tape whatis commande.

SYNOPSIS

Cette partie explique les différentes manières de lancer la commande. Par exemple, pour man grep, on peut lire :

SYNOPSIS
      grep [options] PATTERN [FILE...]
      grep [options] [-e PATTERN | -f FILE] [FILE...]

Quelques explications :

  • Il y a plusieurs lignes, qui correspondent chacune à une manière d'invoquer grep.
  • Les parties entre crochets représentent des arguments optionnels. Par exemple, [options] signifie qu'on peut mettre des options à cet endroit là.
  • Le caractère | (lire « pipe » prononcé à l'anglaise) signifie « ou ». Ici, sur la seconde ligne, il faut lire que grep accepte soit l'option -e suivie d'un argument PATTERN, soit une option -f suivie d'un argument FILE.
  • Les points de suspensions (elipse) signifient que l'argument peut éventuellement apparaître plusieurs fois. Ici, il faut lire que grep accepte un ou plusieurs fichiers comme argument.

Pour l'instant, on ne sait pas encore ce que veulent dire toutes ces options, mais on sait ce qu'on a le droit d'écrire. Reste à trouver la description précise plus loin dans le man.

DESCRIPTION, OPTIONS, ...

C'est là qu'on trouve tous les détails à propos de la commande. Par exemple, le SYNOPSIS parlait d'arguments appelés PATTERN et FILE, voici le fonctionnement :

DESCRIPTION
      grep  searches  the  named  input FILEs (or standard input
      if no files are named, or the file name - is given) for lines
      containing a match to the given PATTERN.  By default, grep
      prints the matching lines.

On mentionnait aussi une option -e, voici à quoi elle peut servir :

      -e PATTERN, --regexp=PATTERN
             Use PATTERN as the pattern; useful to protect patterns beginning with -.

(en fait, « grep -e toto » fait exactement la même chose que « grep toto » par exemple).

SEE ALSO

Si vous n'avez pas trouvé votre bonheur dans la page de man, on trouve souvent une section SEE ALSO en fin de page qui permet d'aller chercher de l'information dans d'autres pages de man.

Des astuces pour être efficace

Naviguer dans la page

En fait, quand on invoque « man quelquechose », la page de man est affichée avec less dans la plupart des cas. Toutes les commandes de less sont donc disponibles ici, en particulier

  • Espace : pour défiler d'une page vers le bas.
  • j/k : pour descendre/remonter d'une ligne,
  • p : pour revenir en début de page,
  • / : pour faire une recherche dans la page,
  • n : pour continuer la recherche,
  • q : pour quitter.

Si on veut utiliser un visionneur autre que less, on peut changer la variable d'environnement $PAGER, ou tout simplement utiliser un pipe : man grep | more

Traductions d'une page

Beaucoup de pages de man sont traduites dans plusieurs langues. C'est agréable de lire des documentations en français, mais souvent, la page d'origine était en anglais et elle est plus complete. Par exemple, sur telesun, à l'heure ou ce texte est écrit, « man grep » en français ne parle pas de l'option --color qui est pourtant bien utile, alors que la page anglaise la documente correctement.

Pour lire les pages dans différentes langues, on peut faire par exemple :

LANG=C man man
LANG=fr_FR man man

(LANG=C désactive toutes les fonctionalités d'internationalisation, et LANG=fr_FR demande de lancer la commande qui suit en français).

Trouver la bonne page

Bon, lire une page de man, c'est bien, mais laquelle lire ? Quand on ne connait pas le nom d'une commande, comment trouver ce qu'on veut ? Voici deux éléments de réponse :

  • man -k quelquechose : liste toutes les pages de man dont la description contient quelquechose. Par exemple, si on veut déplacer un fichier et qu'on ne connait pas la commande mv, un man -k rename peut aider.
  • whatis : parfois, la même commande existe dans plusieurs contextes (une fonction C, une commande unix, ...), et il peut donc y avoir plusieurs page de man portant le même nom. Elles sont distinguées par un numéro (disons N), et on peut toutes les afficher avec whatis commande, et choisir celle qu'on veut avec man N commande. Par exemple :
telesun:~>whatis exit
exit                 (1p)  - cause the shell to exit
exit                 (3)  - cause normal program termination
exit                 (3p)  - terminate a process
exit [builtins]      (1)  - bash built-in commands, see bash(1)
telesun:~>man 1 exit

Les différents numéros correspondent à la catégorie. Les plus utiles sont 1 (commandes utilisateur, p.ex. man 1 ls), 2 (appels système, p.ex. man 2 write) et 3 (fonction de bibliothèque standard, p.ex. man 3 strmcp). La liste complète est dans man man.

D'autres lecteurs de pages de man

  • Emacs : M-x man RET commande RET, ou M-x woman RET commande RET,
  • Sous KDE, konqueror man:ls, et sous Gnome, gnome-help man:ls

Plus de documentation