Quelle est la différence entre `man` et` man (#) `?

31

Je viens de voir quelqu'un référencer man 7 regexsur Stackoverflow. J'ai essayé man regexet obtenu une sortie très similaire - il semble y avoir de légères différences.

Alors, quel est ce numéro magique 7? La recherche man 7 unixsur Google me donne des résultats plus mystérieux comme UNIX (7) ...

Aditya MP
la source

Réponses:

33

Sur UNIX(7)

Pour répondre à votre question sur "UNIX (7)", c'est la convention standard de dire "La page de manuel pour UNIX dans la section 7 (divers)".

Pour ouvrir une page comme init(8), vous pouvez utiliser cette commande: man 8 init.


man regex contre man 7 regex

Pour répondre à votre question sur les «différences subtiles» entre man regexet man 7 regex:

manouvre par défaut la page avec le numéro de section le plus bas . Dans ce cas, il s'agit de la section 3 (appels de bibliothèque). Ouvrir la page de la section 7 (Divers) est assez différent.

Les pages dans différentes sections traitent de différentes choses, bien que dans ce cas elles soient similaires, considérez apt:

man -f apt:

apt (8)              - Advanced Package Tool
apt (1)              - annotation processing tool

Dans cet exemple, la aptsection 8 (Commandes d'administration système) est complètement indépendante de la page de la section 1 (Programmes exécutables ou commandes shell).

Pour référence future, utilisez man -f PAGE_NAMEpour localiser toutes les pages portant ce nom dans toutes les sections. Vous pouvez ensuite ouvrir une page de la section que vous souhaitez avec man SECTION PAGE_NAME.

Sections de la page de manuel

Les différentes sections de page sont les suivantes et peuvent être trouvées à partir de man man:

  1. Programmes exécutables ou commandes shell
  2. Appels système (fonctions fournies par le noyau)
  3. Appels de bibliothèque (fonctions dans les bibliothèques de programme)
  4. Fichiers spéciaux (généralement trouvés dans /dev)
  5. Formats de fichier et conventions, par exemple /etc/passwd
  6. Jeux
  7. Divers (y compris les packages de macros et les conventions), par exemple man(7),groff(7)
  8. Commandes d'administration système (généralement uniquement pour root)
  9. Routines du noyau [non standard]
kiri
la source
14

Les numéros de section

manaffichera la page de manuel de n'importe quelle section, man 7affichera la page de manuel de la section 7. Donc, ici 7 se réfère à la section de la commande particulière pour laquelle vous recherchez la page de manuel.

Une section, si elle est fournie, demandera à l'homme de regarder uniquement dans cette section du manuel.


Les sections

Voir le tableau suivant pour les numéros de section du manuel suivis des types de pages qu'ils contiennent.

1: Programmes exécutables ou commandes shell

2: Appels système (fonctions fournies par le noyau)

3: Appels de bibliothèque (fonctions dans les bibliothèques de programme)

4: Fichiers spéciaux (généralement trouvés dans / dev)

5: Formats de fichier et conventions, par exemple / etc / passwd

6: Jeux

7: Divers (y compris les packages de macro et les conventions), par exemple man (7), groff (7)

8: Commandes d'administration système (généralement uniquement pour root). Aperçu de divers sujets, conventions et protocoles, normes de jeu de caractères et diverses autres choses.

9: Routines du noyau [non standard]


Commandes dans plus d'une section

Dans la plupart des cas, vous souhaiterez utiliser la mancommande sans n supplémentaire . Cependant, dans certains cas, une commande apparaîtra dans plusieurs sections. Par exemple, si vous man openexécutez la commande , vous obtenez la page de manuel pour openvt à la section 1. Mais si vous devez voir la page de manuel pour open en tant que commande C (ou appel système, conformément au tableau ci-dessus), vous devez émettre man 2 open.

Un exemple très similaire sera man printfet man 3 printf. Veuillez émettre les commandes et constater par vous-même la différence de sortie.


Votre problème avec man 7 unix(UNIX (7))

Donc, UNIX (7) signifie qu'il appartient à la section 7.


Quelle section sera affichée par défaut si je ne fournis pas de numéro de section?

L'action par défaut consiste à rechercher dans toutes les sections disponibles, en suivant un ordre prédéfini et à n'afficher que la première page trouvée, même si la page existe dans plusieurs sections.


Comment connaître le numéro de section d'une commande?

Si vous avez besoin de savoir avec quelles sections un terme / commande appartient man -k(équivalent à la commande apropos). Ainsi, man -k printf recherchera les descriptions courtes et les noms de page de manuel pour le mot clé printf comme expression régulière. Imprimez toutes les correspondances. (Équivalent à apropos -r printf). Émettez la commande, voyez la tonne que vous obtenez. Si vous devez éviter les correspondances de sous-chaîne (par exemple, il affichera sprintf si vous exécutez man -k printf), vous devez donc utiliser ^termpour le limiter, comme ci-dessous,

man -k '^printf'
Printf (3o)          - Formatted output functions.
printf (1)           - format and print data
printf (3)           - formatted output conversion

Commande associée

Une commande associée, aproposcomme indiqué ci-dessus, recherche les noms et descriptions des pages de manuel. Si vous n'êtes pas sûr de la page de manuel que vous recherchez mais que vous avez une idée générale, utilisez cette commande.

Masroor
la source
Mais la documentation de regexne comporte pas 7 sections ...
Aditya MP
@adityamenon S'il vous plaît voir la réponse mise à jour, elle a été publiée avant la fin.
Masroor
Je vois - donc une «section» signifie ici «classification du programme».
Aditya MP
@adityamenon Vous avez raison, j'aurais été plus à l'aise avec le terme que vous utilisez.
Masroor
Plus précisément, «section» signifie ici «section du manuel», comme si toutes les pages de manuel étaient dans un seul manuel imprimé (épais)
Jonathan Callen