Les manuels de Linux : man et info
Un article de Wiki de la communauté Mandriva.
CETTE PAGE EST UNE VERSION RÉVISÉE DE LA PAGE MAINTENANT OBSOLÈTE DE L'ANCIENNE BASE DE CONNAISSANCES :
http://club.mandriva.com/xwiki/bin/view/KB/BasicsBdoc ptyxs 23 février 2008 à 11:30 (CET)
Sommaire |
[modifier] Introduction
La plupart des commandes du shell et bon nombre d'utilitaires, ou même de programmes complexes, disposent de pages man ou de pages info, dont on peut obtenir l'affichage ainsi :
en remplaçant, bien entendu commande par le nom de l'application sur laquelle vous cherchez des informations.
Essayez d'abord man, car la plupart des programmes qui disposent d'une page info ont aussi une page man (en outre la majeure partie de man est disponible en français, ce qui n'est pas le cas pour info).
Ces pages peuvent être assez techniques. Elles ont le plus souvent été écrites par les personnes qui ont fait le programme et, avouons-le, certains programmeurs ne sont pas très bons pour ce qui est d'écrire une documentation. ;-) Néanmoins, ils fournissent les informations les plus intéressantes sur le fonctionnement de leur programme, avec les options qu'il accepte et même parfois des exemples sur la façon de l'utiliser (n'oubliez pas de ne jamais faire de tests en root !).
Parfois, en invoquant 'man ou info pour une certaine commande, vous tomberez sur une réponse qui vous indiquera que la commande recherchée fait partie des « commandes internes de bash » (bash-builtins), ce sera par exemple le cas de la commande alias.
1 BASH_BUILTINS(1) BASH_BUILTINS(1)
2
5 NOM
6 bash, :, ., alias, bg, bind, break, builtin, case, cd, command, continue, declare, dirs,
7 disown, echo, enable, eval, exec, exit, export, fc, fg, for, getopts, hash, help, history,
8 if, jobs, kill, let, local, logout, popd, pushd, pwd, read, readonly, return, set, shift,
9 shopt, source, suspend, test, times, trap, type, typeset, ulimit, umask, unalias, unset,
10 until, wait, while - commandes internes de bash, voir bash(1)
11
12 COMMANDES INTERNES DE BASH
Ne vous découragez pas, vous trouverez de la documentation sur cette commande en lançant la commande :
et en effectuant une recherche à l'intérieur de la (vaste) section de man qui s'affichera alors (pour faire une recherche dans une page de man, voir plus bas).
[modifier] Tout sur man...
[modifier] Prise en main de man
Examinons quelques-unes des options les plus importantes de la commande man.
[modifier] L'option -a
Affiche toutes les pages correspondant au nom donné en argument (a comme le début de l'anglais all = tous/toutes).
Notons d'abord que la commande whatis, invoquée comme ceci :
affiche ceci :
info (1) - read Info documents info (5) - readable online documentation info (n) - Return information about the state of the Tcl interpreter
Ce qui met en évidence le fait que man contient des informations sur info qui sont réparties dans trois sections (1, 5 et n). Or, taper simplement :
affiche uniquement la première entrée, INFO (1). En revanche, si vous tapez :
la commande invoquée affichera également la seconde entrée, INFO (5) dès que vous aurez fermé la première en tapant q, ensuite en quittant à nouveau de la même façon info 5, vous aboutirez à INFO (n). Notez que sur la Mandriva ceci vous permet d'afficher non seulement les pages en français, quand elles existent, mais aussi leur version en anglais ! - parfois, la version en anglais est plus récente que la traduction française, et donc plus à jour, et il peut par conséquent être utile de la consulter dans certains cas, si du moins vous pouvez la comprendre...
Et maintenant essayez donc ceci :
[modifier] Chercher dans une certaine section de man
Les pages de man sont réparties en sections en fonction de leur contenu :
- man 1 contient les pages qui concernent les commandes de l'utilisateur,
- man 2 les appels système,
- man 3 la bibliothèque C,
- man 4 les fichiers spéciaux (périphériques),
- man 5 le format des fichiers,
- man 6 les jeux,
- man 7 des éléments divers,
- man 8 les commandes d'administration,
- man 9 le noyau,
- man n nouvelle documentation qui a vocation à être déplacée dans un endroit approprié.
Chaque page de man - sauf les sections (n), (0p), (1p) et (3p) - possède une introduction explicative générale qui définit son objectif. Pour accéder à cette introduction :
Pour afficher la liste complète des pages de man d'une certaine section :
Par exemple, pour la liste de toutes les pages de la section 3 :
(les barres obliques sont ici des « caractères d'échappement » qui empêchent le shell d'interpréter les parenthèses comme des caractères spéciaux - attention il vous faudra sans doute patienter car la liste est longue !)
Il arrive parfois que différentes sections de man contiennent une page portant le même titre (mais avec chaque fois un contenu spécifique). Pour obtenir directement la page d'une section particulière, tapez une commande de la forme générale suivante :
Exemple :
[modifier] L'option -k
Recherche un mot-clé dans les premières lignes de toutes les pages de man. Identique à la commande apropos.
L'option -k effectue une recherche dans la première section des pages de man, celle qui porte le titre NAME (ou NOM dans la traduction française). A titre d'exemple, pour la commande xkbprint, cette section sera :
NAME xkbprint - print an XKB keyboard description
[modifier] L'option -K
Recherche une chaîne dans la totalité du texte de toutes les pages de man (sans se limiter, comme -k, à chercher dans la section initiale de la page). Ce qui peut prendre un peu de temps... mais peut être très fructueux. Sur mon système, cette option effectue la recherche sur les pages de man en anglais et en français.
[modifier] Naviguer dans une page de man
Les pages de man utilisent le programme less pour l'affichage. Par conséquent, après avoir ouvert une page de man, vous pourrez utiliser tous les raccourcis de navigation de less :
- pour quitter une page de man, taper <q>
- défilement : pour passer à la page suivante presser la barre <ESPACE>
- passer à la ligne suivante grâce à la touche <ENTREE> (ou la touche Flèche vers le bas)
- recherche vers l'avant avec / suivie d'un motif : tapez /motif puis la touche <ENTREE> [par motif (anglais pattern) nous voulons désigner la suite de caractères que vous cherchez ; si, par exemple, vous cherchez des informations sur une option -P vous taperez /-P et votre 'motif' sera -P]
- recherche vers l'arrière en tapant ?motif
- possibilité de passer d'une occurrence recherchée à la suivante avec la touche <n> ou à la précédente avec la touche <N> (autrement dit la touche n minuscule dans un cas et la touche N majuscule dans l'autre)
- création de marque-pages avec la touche <m> : le marque-page sera une simple lettre que vous devez choisir et taper vous-même, après avoir pressé la touche <m> ; ultérieurement (mais seulement au cours de la même session), vous pourrez retrouver votre marque-page en tapant ' (l'apostrophe), suivie de la lettre que vous lui avez attribuée.
Vous trouverez de nombreuses autres commandes et diverses informations dans man less : mais les commandes les plus usuelles sont essentiellement celles que nous venons d'indiquer.
Il est important d'utiliser ces raccourcis, les pages de man pouvant être vraiment longues. Si vous avez lancé less, tapez <h>, pour avoir une vue d'ensemble sommaire des commandes de navigation, sinon lancez la commande less --help.
[modifier] Le complétement
Vous pouvez aussi avoir recours à une forme allégée de complétement avec la commande man. Tapez, par exemple, en console :
puis pressez la touche <ESC> et ensuite la touche <!>. La commande se complètera d'elle-même en :
.Si les premières lettres de la page de man sont ambiguës les différentes possibilités seront affichées et s'il n'y a pas de page de man qui commence par ces lettres rien ne se produira. Ce mécanisme fonctionne aussi avec les pages d'info.
[modifier] Où se trouve man sur mon système ?
Les pages de man sont stockées dans les sous-répertoires de :
/usr/share/man
mais aussi dans d'autres endroits.
Lorsqu'une page de man figure dans ces répertoires, man la trouvera en examinant le contenu du fichier de configuration /etc/man.config.
Si vous voulez lire une page de man située dans un lieu non standard, qui n'est pas mentionné dans /etc/man.config, vous devez fournir le chemin complet du fichier de cette page à la commande man ou à un programme qui soit capable de lire man, tel que pinfo. Une commande comme la suivantes ouvre une page de man directement :
Pour repérer les répertoires de votre système qui abritent des pages de man, vous pourriez faire :
la commande find cherche ainsi dans tout le système de fichiers (/) des répertoires (-type d) dont le nom commence par les lettres man suivies de n'importe quelle autre suite de caractères ou de rien du tout (-name 'man*' ), tout ceci pour trouver tous les répertoires appelés man ou man1, man2 etc. Quelques répertoires parasites (management, mandriva ...) seront peut-être affichés en prime, mais le jeu en vaut la chandelle.
Si l'on souhaite que leur contenu soit accessible automatiquement, ces répertoires doivent pouvoir être localisés à partir des informations contenues dans le fichier /etc/man.config qu'il vous est possible de modifier vous-même si nécessaire.
Pour pouvoir accéder à une page, il faudrait ajouter dans ce fichier une ligne :
MANPATH chemin_du_repertoire_de_la_page
[modifier] Des accès à man plus faciles ou plus agréables
[modifier] man en français
Sur la Mandriva, la plupart des pages de man affichées par défaut sont en français. Dans quelques cas, cependant, vous pouvez encore tomber sur une page en anglais : essayez alors de chercher dans ce gisement de pages de man en français réunies par Jean-Philippe Barralis, disponible sur la Toile, vous trouverez sans doute alors la version en français qui vous manquait.
[modifier] man sur la Toile
Si vous avez besoin de chercher une information dans man à un moment où vous n'avez sous la main que des ordinateurs ayant un système d'exploitation autre que Linux, vous pouvez faire une recherche sur la Toile, où se trouvent divers sites proposant des pages de man. Vous pourrez notamment trouver un ensemble très fourni de pages de man en français sur ce site de Jean-Philippe Barralis.
[modifier] Consultation via Konqueror
Sous KDE, vous pouvez aussi afficher des pages de man et d'info en tapant en haut dans la barre d'URL de Konqueror :
man:nom_de_commande
ou
info:nom_de_commande
[modifier] Et si mon interface graphique est hors d'usage et la page de man affichée en console est en anglais ?
Dans cette conjoncture difficile, vous auriez aimé consulter sur la Toile la version française de cette page, mais comment faire ?
Très simple : vous pouvez lancer le navigateur links, utilisable en console : vérifiez qu'il est présent sur votre système et au besoin installez-le (le navigateur lynx pourrait faire la même chose, à vous de choisir !).
En console, lancez links, puis tapez <ESC> (autrement dit la touche Echap) et via le menu Fichier (ou File), tapez l'URL d'un moteur de recherche : vous pourrez, par exemple, accéder au site de Jean-Philippe Barralis et trouver la page de man en français que vous recherchiez.
[modifier] Tout sur info...
[modifier] Résumé des commandes d'info
En tapant la commande suivante, vous pourrez accéder à une documentation détaillée qui explique pas à pas en grand détail comment manipuler info et comment y naviguer :
Les raccourcis de navigation les plus importants dans l'univers d'info sont les suivants :
<q> (quitter info)
|
Et, pour naviguer entre les nœuds et les niveaux :
<n> (nœud suivant) |
<h> vous donnera une aide détaillée et <?> une liste de commandes info.
[modifier] Prise en main de la commande info
info est constitué d'un ensemble de pages réparties en plusieurs niveaux, à travers lesquelles il est possible de naviguer de diverses façons. Les pages sont organisées en « nœuds ». Les nœuds constituent des rubriques allant du plus général au plus particulier. Toutes les pages d'info appartiennent donc à une structure hiérarchisée.
Vous pouvez accéder directement au niveau supérieur de toute la structure (la racine du système) en tapant simplement en console :
A partir de là (et aussi dans de nombreuses autres pages d'info) il est possible de naviguer en utilisant des liens. Vous verrez que ces liens sont marqués par un astérisque (*). Placez le curseur du clavier sur l'un de ces liens et frappez la touche <ENTREE> pour suivre le lien, puis revenez à la page précédemment affichée en pressant la touche <L> (pour mieux mémoriser : le 'L' majuscule ressemble (un peu) à une flèche vers la gauche donc vers la page précédente...).
Une fois revenu à la page de départ, vous pourrez faire défiler l'écran vers le bas, page par page, en appuyant sur la barre <ESPACE>, afin d'accéder à la liste des diverses commandes du shell. A partir de la racine du système (à laquelle vous venez donc d'accéder par la commande info sans argument), vous trouverez ainsi très facilement, en faisant défiler l'écran vers le bas, le lien qui correspond à une commande particulière. Essayez un peu, pour voir, de parvenir de cette façon au lien qui correspond à la commande cp et ouvrez ce lien… Vous avez réussi ? Bon, parfait. Si vous êtes allé trop vite dans le défilement, vous pouvez revenir d'une page en arrière en pressant la touche <RETOUR_ARRIERE>.
Pour parcourir les pages de même niveau que la page courante (et qui traitent de commandes voisines à divers égards), pressez la touche <n> (pour Next = suivant) ou la touche <p> (pour Prev = précédent). Pour aller à la page supérieure, pressez la touche <u> (pour Up = en haut). Les titres des pages suivante, précédente et supérieure sont affichés en haut de l'écran.
[modifier] Exemple de navigation dans info
Imaginons que vous soyez dans la section (autrement dit dans le nœud) 1.5 de la documentation d'info.
Si vous pressez la touche <n>, cela vous amène tout naturellement à la section 1.6.
Notez que, ce faisant, vous avez sauté d'éventuelles sous-sections de 1.5, comme, disons 1.5.1, si du moins elles existent. Comment faire pour accéder à 1.5.1 à partir de 1.5 ?
Vous pouvez presser la barre <ESPACE> autant de fois que nécessaire pour parvenir au bas de la page 1.5. Ensuite, pressez encore une fois <ESPACE> : cela vous amènera cette fois au niveau inférieur 1.5.1. Inversement, si vous vous trouvez en haut de 1.5.1, presser la touche <RETOUR_ARRIERE> vous amènera au niveau supérieur 1.5.
Les touches <ESPACE> et <RETOUR_ARRIERE> ont donc ici deux fonctions : elles permettent de faire défiler les pages et aussi de passer au nœud inférieur ou supérieur, respectivement.
Pour passer directement au nœud supérieur ou inférieur sans avoir à faire défiler les pages au préalable vous pouvez utiliser les raccourcis [ et ].
Notez qu'il est aussi parfaitement possible d'accéder directement à une page, comme avec man, ainsi, pour accéder à la page d'info sur la commande cp (copie) vous pourriez taper dans une console :
[modifier] info, Emacs et le shell Bash
Si vous utilisez le célèbre traitement de texte Emacs, vous pourrez constater que les raccourcis clavier d'Emacs fonctionnent dans les pages d'info. Certains d'entre eux sont d'ailleurs aussi des raccourcis du shell Bash utilisables en ligne de commande, comme la recherche vers l'arrière (Ctrl-r) ou vers l'avant (Ctrl-s) - sur ces dernière commandes, voir : L'historique du shell.