{{tag>console terminal shell}}
-----
====== Le manuel ======
**who**((qui abrège **man**uel, en anglais **man**ual)) est une commande UNIX permettant d'accéder aux pages de manuel installées sur le système.
La plupart des programmes fournissent une page de manuel les documentant, lisible donc avec la commande ''man''.
===== Installation =====
Aucune installation n'est nécessaire, man est installé par défaut sous Ubuntu. Vous pouvez cependant ajouter des pages de manuel supplémentaires en [[:tutoriel:comment_installer_un_paquet|installant le paquet]] correspondant.
==== Pages de manuel supplémentaires ====
* **[[apt://manpages-fr|manpages-fr]]** : Version française des pages de manuel sur l'utilisation de %%GNU/Linux%%
* **[[apt://manpages-fr-extra|manpages-fr-extra]]** : Version française des pages de manuel des programmes
* **[[apt://manpages|manpages]]** : Pages de manuel (en anglais) sur l'utilisation de %%GNU/Linux%%
* **[[apt://manpages-posix|manpages-posix]]** : Pages de manuel (en anglais) sur l'utilisation des systèmes POSIX
=== Pour le développeur ===
* **[[apt://manpages-fr-dev|manpages-fr-dev]]** : Version française des pages de manuel pour les développeurs
* **[[apt://manpages-dev|manpages-dev]]** : Pages de manuel (en anglais) pour les développeurs
* **[[apt://manpages-posix-dev|manpages-posix-dev]]** : Pages de manuel (en anglais) sur l'utilisation des systèmes POSIX pour les développeurs
=== Autres ===
* **[[apt://funny-manpages|funny-manpages]]** : Pages de manuel humoristiques (en anglais)
* [[https://github.com/srsudar/eg]] : complément à man : permet de donner des exemples d'usage utiles pour les commandes usuels
===== Utilisation =====
''man'' s'utilise dans un [[terminal]] de la façon suivante :
man nom-de-la-page
Par exemple, pour obtenir le manuel de la commande ''man'', l'on fera :
man man
==== Les sections ====
Les pages de manuel sont réparties dans des sections distinctes :
- Programmes exécutables ou commandes de l'interpréteur de commandes ([[shell]]) ;
- Appels système (Fonctions fournies par le noyau) ;
- Appels de bibliothèque (fonctions fournies par des bibliothèques) ;
- Fichiers spéciaux (situés généralement dans /dev) ;
- Formats des fichiers et conventions (Par exemple ''/etc/passwd'') ;
- Jeux ;
- Divers (y compris les macropaquets et les conventions). Par exemple, man(7), groff(7) ;
- Commandes de gestion du système (généralement réservées au [[superutilisateur]]) ;
- Interface du noyau Linux.
Les numéros de sections sont souvent spécifiés entre parenthèses après le nom de la page, comme ci-dessus.
Il arrive (rarement) que deux pages de manuel aient le même nom mais soient dans des sections différentes ; c'est le cas de man(1) et man(7) ou de printf(1) et printf(3) par exemple. Il est donc possible de spécifier dans quelle section chercher la page de manuel, en indiquant son numéro juste avant le nom de la page ou en spécifiant le paramètre ''-s'' (voir [[#options utiles|ci-dessous]]). Par exemple, pour obtenir la page de manuel de man(7) (qui parle de la syntaxe des pages de manuel), l'on fera :
man 7 man
Chaque section possède de plus une page appelée ''intro'' qui présente la section, accessible comme les autres pages de manuel. Pour lire l'introduction de la section 3, il suffit donc de saisir dans un [[:terminal]]: man 3 intro
==== Options utiles ====
* **-L //locale//** : permet de spécifier la [[wpfr>Paramètres régionaux|locale]] pour laquelle afficher la page de manuel. Cette locale est par défaut celle du système.\\ Par exemple, afficher la page de manuel de [[man]] en anglais : man -L en man
* **-s //section//** : permet de spécifier la ou les sections où chercher, dans l'ordre, les pages de manuel. //section// est un numéro de section ou une liste de numéros de sections séparées par des virgules.\\ Exemple :man -s 3 printf
==== Interactivité ====
Lorsque une page de manuel est affichée, diverses actions sont accessibles //via// des raccourcis claviers dont voici un court extrait((Certaines commandes comme ''?'' ou ''N'' ne sont disponibles qu'avec certains //pageurs//. Néanmoins, le //pageur// par défaut devrait les supporter.)) :
^ Raccourci ^ Action ^
| flèches directionnelles | Navigation dans la page de manuel |
| ''q'' | Quitte |
| ''h'' | Affiche l'aide |
| ''/'' | Rechercher en avant. Entrez le //pattern// à recherchez et validez avec la touche entrée |
| ''?'' | Comme ''/'', mais recherche en arrière |
| ''n'' | Va à l'occurrence suivante de la recherche |
| ''N'' | Va à l'occurrence précédente de la recherche |
==== Man en couleur ====
Par défaut, man utilise le programme **less** pour afficher les pages. **less** ne gère pas la couleur, on peut y palier en utilisant un autre "pager", **most**. Pour cela :
* [[:tutoriel/comment_installer_un_paquet#installer_un_paquet_present_dans_les_depots_recommande|Installer le paquet]] : **[[apt>most]]**
* Insérer dans votre fichier ''.bashrc'' la ligne: export MANPAGER=most
Ou mieux utiliser: sudo update-alternatives --config pager
et choisir le numéro de la ligne contenant most
===== Rechercher une page de manuel =====
**man** affiche la page de manuel demandée, mais encore faut-il connaître son nom. Que faire si vous ne connaissez qu'un mot-clé du manuel que vous recherchez ? C'est ici que les commandes **whatis**((littéralement « qu'est-ce que »)) (recherche sur les noms de page) et **apropos**((lisez « À propos »)) (recherche sur les noms et les descriptions), utilitaires fournis avec **man**, interviennent : elles permettent d'effectuer rapidement une recherche à l'aide d'un mot clé, avec ou sans [[wpfr>métacaractère|jokers]], ou bien à l'aide d'une [[wpfr>expression rationnelle]]. Le comportement par défaut de **whatis** est d'utiliser la recherche par mot-clé sans joker, et celui de **apropos** est d'utiliser les expressions rationnelles.
Exemples d'utilisation :
vous@machine:~$ whatis whatis
whatis (1) - Affiche la description des pages de manuel
vous@machine:~$ apropos apropos
apropos (1) - cherche le nom et la description des pages de manuel
Vous pouvez consulter les [[man|pages de manuel]] de **whatis** et d'**apropos** pour de plus amples explications sur leurs options.
===== Consulter les pages de manuel dans une interface graphique =====
==== Sous GNOME (Ubuntu) ====
Le [[yelp|navigateur d'aide de GNOME]] permet de parcourir la documentation du système, dont les pages de manuel. Pour ce faire, ouvrez l'aide //via// //Système → Aide et soutien//, cliquez sur //Rubriques avancées// dans la colonne de gauche et enfin sur //Références des commandes du terminal (pages de manuel)//. Vous pouvez alors parcourir les pages de manuel par catégories. Vous les retrouverez aussi en effectuant une recherche dans toute la documentation, dans le menu //Édition → Rechercher//.\\
Il est également possible d'ouvrir directement une page de manuel dans le [[:yelp|navigateur d'aide de]] [[:GNOME]] en exécutant dans un [[:terminal]] cette commande:
yelp man:nom-de-la-page
[[Firefox]] gère les URI de la forme ''man://nom-de-la-page//'' et propose l'ouverture avec le navigateur d'aide [[GNOME]]. Ceci fonctionne aussi [[#sous_xfce_xubuntu|sous Xubuntu]].
Depuis au moins la version 17.04 l'accès aux pages man d'Ubuntu ou Ubuntu Gnome n'est plus possible depuis l'aide générale, seule la deuxième méthode yelp man:nom-de-la-page
fonctionne.
==== Sous KDE (Kubuntu) ====
Le [[khelpcenter|navigateur d'aide de KDE]] permet de parcourir la documentation du système, dont les pages de manuel. Pour ce faire, ouvrez l'aide //via// //Menu K → Applications → Aide//, puis choisissez //Pages de manuel UNIX// dans la panneau //Contenus// ; vous pouvez alors parcourir les pages de manuel par catégories. Vous pouvez aussi effectuer une recherche dans les pages de manuel //via// le champ de recherche. Lors d'une recherche, faites bien attention à ce que //Pages de manuel UNIX// soit bien coché dans la portée de la recherche.
[[Konqueror]] gère les URI de la forme ''man://nom-de-la-page//'' et les chemins directs tels ''man:/usr/share/man/fr/man1/man.1.gz'', et les affiche directement.
==== Sous Xfce (Xubuntu) ====
Comme [[#sous_gnome_ubuntu|sous GNOME]], vous pouvez utiliser le [[yelp|navigateur d'aide]] que vous pouvez lancer //via// ''Alt+F2'' puis en tapant ''yelp''.
Comme sous GNOME également, vous pouvez aussi entrer une URI de la forme ''man://nom-de-la-page//'' dans la barre d'adresse de [[:Firefox]] qui vous propose alors d'ouvrir la page de manuel dans le navigateur d'aide.
===== Consulter les pages de manuel sur internet =====
La plupart des pages de manuel sont aussi disponibles en ligne, sur divers sites dont voici une liste non exhaustive :
* [[https://manpages.ubuntu.com/|manpages.ubuntu.com]]
* [[http://manpages.debian.net/|manpages.debian.net]]
* [[https://linux.die.net/man/|linux.die.net]]
===== Sources =====
* man man
* Wikipedia [[wpfr>man (Unix)|fr]], [[wp>Man page|en]]
* [[https://www.it-connect.fr/la-commande-man/|Utilisation de la commande man]] **(fr)**
* [[http://www.it-connect.fr/rechercher-une-commande-installee-sous-linux-a-partir-dun-mot/|Rechercher une commande installée sous Linux à partir d’un mot]] **(fr)**
-----
//Contributeurs principaux : [[utilisateurs:Ban]] (création).//