man 3 ls
mostrará somente uma página man para ls
na seção 3 do manual. Seção 3 abrange as funções da biblioteca; já que não há (provavelmente) nenhuma função de biblioteca chamada ls
, ela não encontrará nada.
O comando man
sem um número de seção pesquisa as seções em uma ordem predefinida que não me lembro, mas é provável que esteja próximo da ordem numérica que começa em 1. Assim, man ls
encontrará o ls
man página na seção 1, que abrange os comandos do usuário.
As seções (no meu sistema Ubuntu) são:
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 conventions), e.g. man(7), groff(7)
8 System administration commands (usually only for root)
9 Kernel routines [Non standard]
Especificar a seção pode ser útil para coisas que existem com o mesmo nome em mais de uma seção. Por exemplo, man printf
mostrará a página man do comando printf
user na seção 1; para ver a man page da função printf
, use man 3 printf
. Você geralmente verá essas páginas man referidas como printf(1)
e printf(3)
, respectivamente.
Roubando Empréstimo da resposta do abernert , é comum ver um comando do usuário (seção 1 ) é um wrapper para uma chamada de sistema (seção 2) ou chamada de biblioteca (seção 3) com o mesmo nome; chown
e chmod
são bons exemplos disso.