Ainsi, par exemple, lorsque je tape man ls
Je vois LS(1)
. Mais si je tape man apachectl
Je vois APACHECTL(8)
et si je tape man cd
Je me retrouve avec cd(n)
.
Je me demande quelle est la signification des chiffres entre parenthèses, s'ils en ont.
Le nombre correspond à la section du manuel d'où provient cette page; 1 correspond aux commandes utilisateur, tandis que 8 correspond aux éléments administrateur système. La page de manuel pour l'homme lui-même (man man
) l'explique et répertorie les standards:
MANUAL SECTIONS
The standard sections of the manual include:
1 User Commands
2 System Calls
3 C Library Functions
4 Devices and Special Files
5 File Formats and Conventions
6 Games et. al.
7 Miscellanea
8 System Administration tools and Daemons
Distributions customize the manual section to their specifics,
which often include additional sections.
Il existe certains termes qui ont différentes pages dans différentes sections (par exemple printf
comme une commande apparaît dans la section 1, comme une fonction stdlib
apparaît dans la section 3); dans des cas comme celui-ci, vous pouvez passer le numéro de section à man
avant le nom de la page pour choisir celui que vous voulez, ou utiliser man -a
pour afficher chaque page correspondante dans une rangée:
$ man 1 printf
$ man 3 printf
$ man -a printf
Vous pouvez savoir dans quelles sections un terme appartient à man -k
(équivalent à la commande apropos
). Il fera également des correspondances de sous-chaîne (par exemple, il affichera sprintf
si vous exécutez man -k printf
), vous devez donc utiliser ^term
pour le limiter:
$ man -k '^printf'
printf (1) - format and print data
printf (1p) - write formatted output
printf (3) - formatted output conversion
printf (3p) - print formatted output
printf [builtins] (1) - bash built-in commands, see bash(1)
L'histoire de ces numéros de section remonte à l'original nix Programmer's Manual par Thompson et Ritchie en 1971.
Les sections originales étaient
konqueror décrit également des sections non standard: (merci à @ greg0ire pour l'idée)
0 Header files
0p Header files (POSIX)
1 Executable programs or Shell commands
1p Executable programs or Shell commands (POSIX)
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
3n Network Functions
3p Perl Modules
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines
l Local documentation
n New manpages
Ce que cela signifie déjà décrit, mais je veux également ajouter que chaque section a une page de manuel spéciale avec introduction: intro
. Par exemple, voir man 1 intro
ou man 3 intro
etc.
À partir de la page de manuel man
:
The table below shows the section numbers of the manual followed by the
types of pages they contain.
1 Executable programs or Shell commands
2 System calls (functions provided by the kernel)
3 Library calls (functions within program libraries)
4 Special files (usually found in /dev)
5 File formats and conventions eg /etc/passwd
6 Games
7 Miscellaneous (including macro packages and conven‐
tions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
Quant à savoir pourquoi ils sont séparés comme ça - il y a un certain chevauchement. Certaines pages de manuel existent dans plusieurs sections, selon ce que vous voulez dire.
Par exemple, comparez man crontab
avec man 5 crontab
- il est probable que ce dernier soit celui que vous vouliez rechercher.
Ce sont des numéros de section. Tapez simplement man man
ou ouvrez konqueror et tapez man: // man et vous verrez quelles sont ces sections.
Souvent, une page de manuel est référencée via son suffixe avec la section entre parenthèses, par exemple:
read(2)
Ce style présente deux avantages principaux:
Les pages de manuel sont organisées en sections, par ex. La section 1 comprend toutes les pages de manuel des commandes utilisateur, la section 2 toutes les pages de manuel pour les appels système, la section 3 concerne les fonctions de bibliothèque, etc.
Sur la ligne de commande, si vous ne spécifiez pas explicitement la section, vous obtenez la première page de manuel correspondante, dans l'ordre de parcours de section par défaut, par exemple:
$ man read
affiche BASH_BUILTINS(1)
sur Fedora. Où
$ man 2 read
affiche la page de manuel de l'appel système read()
.
Notez que la spécification positionnelle de la section n'est pas portable - par exemple sur Solaris, vous devez le spécifier comme ceci:
$ man -s 2 read
Habituellement, man man
Répertorie également certaines des sections disponibles. Mais pas nécessairement tous. Pour répertorier toutes les sections disponibles, on peut répertorier les sous-répertoires de tous les répertoires répertoriés dans le chemin d'accès par défaut ou dans la variable d'environnement $MANPATH
. Par exemple, sur un système Fedora 23 avec certains packages de développement installés /usr/share/man
A les sous-répertoires suivants:
cs es id man0p man2 man3x man5x man7x man9x pt_BR sk zh_CN
da fr it man1 man2x man4 man6 man8 mann pt_PT sv zh_TW
de hr ja man1p man3 man4x man6x man8x pl ro tr
en hu ko man1x man3p man5 man7 man9 pt ru zh
Les répertoires avec le préfixe man
représentent chaque section - tandis que les autres contiennent des sections traduites. Ainsi, pour obtenir une liste des sections non vides, on pourrait lancer une commande comme celle-ci:
$ find /usr/share/man -type f | sed 's@^.*/man\(..*\)/.*$@\1@' \
| sort -u | column
0p 1p 3 4 6 8
1 2 3p 5 7
(les sections se terminant par p
sont des pages de manuel POSIX)
Pour afficher une page de manuel dans une autre langue (si disponible), vous pouvez définir une variable d'environnement liée à la langue, par exemple:
$ LC_MESSAGES=de_DE man read
De plus, chaque section doit avoir une page de manuel d'introduction nommée intro
, par exemple visible via:
$ man 2 intro
Les définitions de SVr4 sont:
1 User Commands
2 System Calls
3 library Functions
4 File Formats
5 Standards, Environment and Macros (e.g. man(5))
6 Games and Demos
7 Device and Network Interfaces, Special Files
8 Maintenance Procedures
9 Kernel and Driver entry points and structures
Il s'agit de la numérotation réelle d'un UNIX "génétique". POSIX ne définit pas de nombres.