O que significam os números de uma página man?

418

Por exemplo, quando digito man ls , vejo LS(1) . Mas se eu digitar man apachectl , vejo APACHECTL(8) e, se eu digitar man cd , acabo com cd(n) .

Eu estou querendo saber qual é o significado dos números entre parênteses, se eles tiverem algum.

    
por Wilduck 28.10.2010 / 23:25

8 respostas

440

O número corresponde a qual seção do manual essa página é de; 1 é o comando do usuário, enquanto o 8 é o sysadmin. A man page do próprio homem ( man man ) explica e lista os padrões:

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.

Existem determinados termos que têm páginas diferentes em seções diferentes (por exemplo, printf , como um comando aparece na seção 1, como uma função stdlib aparece na seção 3); Em casos como esse, você pode passar o número da seção para man antes do nome da página para escolher qual deles deseja ou usar man -a para exibir todas as páginas correspondentes em sequência:

$ man 1 printf
$ man 3 printf
$ man -a printf

Você pode dizer em quais seções um termo se encaixa com man -k (equivalente ao comando apropos ). Ele também fará correspondências de substring (por exemplo, ele mostrará sprintf se você executar man -k printf ), portanto, será necessário usar ^term para limitá-lo:

$ 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)
    
por 28.10.2010 / 23:32
52

A história desses números de seção remonta ao Manual do programador Unix original de Thompson e Ritchie em 1971.

As seções originais foram

  1. Comandos
  2. Chamadas do sistema
  3. Sub-rotinas
  4. Arquivos especiais
  5. Formatos de arquivo
  6. Programas mantidos pelo usuário
  7. Diversos
por 29.10.2010 / 15:39
25

O konqueror também descreve seções não-padrão: (graças a @greg0ire pela idéia)

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
    
por 23.06.2014 / 08:27
20

O que significa já descrito, mas também quero acrescentar que cada seção tem uma página de manual especial com introdução: intro . Por exemplo, veja man 1 intro ou man 3 intro e assim por diante.

    
por 06.05.2011 / 07:18
12

Na% man_de% manpage:

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]

Por que eles são separados assim - há alguma sobreposição. Certas páginas de usuário existem em mais de uma seção, dependendo do que você quer dizer.

Por exemplo, compare man com man crontab - as chances são de que este último é o que você queria procurar.

    
por 04.08.2011 / 21:57
7

Estes são números de seção. Apenas digite man man ou abra o konqueror e digite man: // man e você verá quais são essas seções.

    
por 28.10.2010 / 23:33
6

Geralmente, uma página man é referenciada por meio da sufixação com a seção entre parênteses, por exemplo:

read(2)

Este estilo tem duas vantagens principais:

  • fica imediatamente claro que você faz referência a uma página man - por exemplo, você pode escrever algo como 'cf. leia (3) 'em vez de' cf. a seção 3 man page of read '
  • se várias seções contiverem páginas man com o mesmo nome, especificar a seção será mais preciso

As páginas do manual são organizadas em seções, por exemplo A seção 1 inclui todas as páginas do manual de comando do usuário, a Seção 2, todas as páginas man para as chamadas do sistema, a Seção 3 é para as funções da biblioteca, etc.

Na linha de comando, se você não especificar explicitamente a seção, obterá a primeira página man correspondente, na ordem de passagem da seção padrão, por exemplo:

$ man read

exibe BASH_BUILTINS(1) no Fedora. Onde

$ man 2 read

exibe a página man da chamada do sistema read() .

Observe que a especificação posicional da seção não é portátil - por exemplo, no Solaris você especificaria assim:

$ man -s 2 read

Normalmente, man man também lista algumas das seções disponíveis. Mas não necessariamente todos. Para listar todas as seções disponíveis, é possível listar os subdiretórios de todos os diretórios listados no caminho do manual padrão ou na variável de ambiente $MANPATH . Por exemplo, em um sistema Fedora 23 com alguns pacotes de desenvolvimento instalados /usr/share/man tem os seguintes subdiretórios:

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

Os diretórios com o prefixo man representam cada seção - enquanto os outros contêm seções traduzidas. Assim, para obter uma lista de seções não vazias, pode-se emitir um comando como este:

$ find /usr/share/man -type f  | sed 's@^.*/man\(..*\)/.*$@@' \
    | sort -u | column
0p  1p  3   4   6   8
1   2   3p  5   7

(as seções que terminam com p são páginas man do POSIX)

Para visualizar uma página man em outro idioma (se disponível), pode-se definir uma variável de ambiente relacionada ao idioma, por exemplo:

$ LC_MESSAGES=de_DE man read

Além disso, cada seção deve ter uma página man de introdução chamada intro , por exemplo. visível via:

$ man 2 intro
    
por 02.07.2016 / 01:14
3

As definições para o SVr4 são:

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

Essa é a numeração real de um UNIX "genético". POSIX não define números.

    
por 27.09.2015 / 12:51

Tags