web-dev-qa-db-fra.com

Que signifient les chiffres dans une page de manuel?

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.

514
Wilduck

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)
524
Michael Mrozek

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

  1. Commandes
  2. Appels système
  3. Sous-programmes
  4. Fichiers spéciaux
  5. Formats de fichier
  6. Programmes gérés par l'utilisateur
  7. Divers
59
KeithB

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
34
Babken Vardanyan

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.

21
php-coder

À 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.

16
Shadur

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.

8
greg0ire

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:

  • il est immédiatement clair que vous faites référence à une page de manuel - c'est-à-dire que vous pouvez écrire quelque chose comme 'cf. lire (3) "au lieu de" cf. la page de manuel de la section 3 de lire '
  • si plusieurs sections contiennent des pages de manuel portant le même nom, la spécification de la section est plus précise

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
7
maxschlepzig

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.

4
schily