@PeterMortensen É por isso que SuperUser e Unix / Linux e ServerFault e AskUbuntu e Apple precisam ser mesclados.
Chloe
Em uma nota lateral, você pode definir sua própria ordem de pesquisa comexport MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
meuh
Esta é uma falha gigantesca de UX. A documentação digital não deve ter números de seção; deve ter nomes descritivos e hiperlinks. Não acredito que eles conseguiram tornar a documentação tão confusa que essa pergunta foi vista 121000 vezes.
iono 10/09
Respostas:
497
O número corresponde a qual seção do manual é a página; 1 são comandos do usuário, enquanto 8 são coisas do sysadmin. A página de manual do próprio man ( man man) explica e lista as páginas padrão:
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 certos termos que têm páginas diferentes em seções diferentes (por exemplo, printfcomo um comando aparece na seção 1, como uma stdlibfunção aparece na seção 3); em casos como esse, você pode passar o número da seção manantes do nome da página para escolher qual você deseja ou usar man -apara mostrar todas as páginas correspondentes em uma linha:
$ man 1 printf
$ man 3 printf
$ man -a printf
Você pode dizer em quais seções um termo se enquadra man -k(equivalente ao aproposcomando). Ele também fará correspondências de substring (por exemplo, será exibido sprintfse você executar man -k printf), portanto, você precisa usá ^term-lo para limitar:
$ 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)
Isso certamente explica isso. Existe uma maneira fácil de saber se existem ou não várias páginas de manual para um determinado comando?
Wilduck 28/10/10
2
@Wil Sim, editado
Michael Mrozek
11
Observe que esses números de seção são para Linux. 1, 3 e 6 são os mesmos em todas as variantes unix AFAIK, mas as outras seções e os dígitos não únicos podem diferir. Geralmente man X introdescreve o que está na seção X.
Gilles
2
@KeithB: Eu usei alguns departamentos com diferentes 4,5,7,8. O Digital Unix (OSF1) tinha e o Solaris ainda possui: formatos de arquivo em 4, diversos em 5, dispositivos em 7. O Solaris também coloca comandos de administrador em 1m. Eu acho que as chamadas de sistema em 2 são universais, mas alguns sistemas também têm interfaces de biblioteca C em 2 (quando deveriam ser invólucros finos em torno do syscall de mesmo nome).
Gilles
4
Ah, quem achou que você precisaria de um manual para usá-lo ... Nunca executei man man... até agora.
Matt Clark
59
A história desses números de seção remonta ao Manual do Programador Unix original de Thompson e Ritchie em 1971.
Mais coisas dos anos 70, de fato. Eu pensei que era dos anos 80.
Rolf
"Diversos" significa principalmente "informações amplas sobre um subsistema inteiro ou um recurso genérico do Unix, em vez de um ponto de extremidade de API específico". Ver, por exemplo pipe(7), tcp(7)(e várias outras páginas de manual de rede), pthreads(7), boot(7), regex(7), etc. Há outras coisas no capítulo 7, bem como, tais como ascii(7)(tabela ASCII) e man(7)(como escrever uma página de homem), mas as grandes docs páginas são, de longe as coisas mais úteis na seção 7 da minha experiência.
Kevin
31
O konqueror também descreve seções fora do padrão: (obrigado 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
O que é significa já descrito, mas também quer acrescentar que cada seção tem página de manual especial com introdução: intro. Por exemplo, veja man 1 introou man 3 introassim por diante.
Não vejo isso na minha instalação do Fedora. A introdução do homem X não é padrão?
Beatgammit 01/07
@tjameson Você tem o man-pagespacote instalado?
Php-coder
15
Na página de manmanual:
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 estão separados assim - há alguma sobreposição. Certas páginas de manual existem em mais de uma seção, dependendo do que você quer dizer.
Por exemplo, compare man crontabcom man 5 crontab- as chances são de que este último você pretenda procurar.
E onde devo colocar minhas próprias páginas de manual ~/man?
Tyilo
Eu sabia que havia números diferentes, mas não sabia que havia uma rima. Graças
user606723
1
1p é a versão padrão posix do manual. Se você deseja escrever código portátil, use apenas as páginas de manual do Xp. Se sua implementação não for compatível com posix, as páginas de manual X e Xp podem diferir.
andcoz
@Tyilo see my answer
Babken Vardanyan /
8
Estes são números de seção. Basta digitar man manou abrir o konqueror e digitar man: // man e você verá o que são essas seções.
Freqüentemente, uma página de manual é referenciada através do sufixo da seção entre parênteses, por exemplo:
read(2)
Esse estilo tem duas vantagens principais:
fica imediatamente claro que você faz referência a uma página de manual - ou seja, pode escrever algo como 'cf. leia (3) 'em vez de' cf. a página de manual da seção 3 de leitura '
se várias seções contiverem páginas de manual com o mesmo nome, especificar a seção é mais preciso
As páginas do manual estão organizadas em seções, por exemplo, a Seção 1 inclui todas as páginas do comando de usuário, a Seção 2 todas as páginas do manual para as chamadas do sistema, a Seção 3 é para funções da biblioteca etc.
Na linha de comando, se você não especificar explicitamente a seção, você obtém a primeira página do manual correspondente, na ordem transversal da seção padrão, por exemplo:
$ man read
é exibido BASH_BUILTINS(1)no Fedora. Onde
$ man 2 read
exibe a página de manual da read()chamada do sistema.
Observe que a especificação posicional da seção não é portátil - por exemplo, no Solaris, você a especificaria assim:
$ man -s 2 read
Geralmente, man mantambém lista algumas das seções disponíveis. Mas não necessariamente todos. Para listar todas as seções disponíveis, pode-se listar os subdiretórios de todos os diretórios listados no caminho man 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, existem 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 manprefixo 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:
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". O POSIX não define números.
export MANSECT=0p:1:2:3:3p:4:5:6:7:8:9:l:s:n
Respostas:
O número corresponde a qual seção do manual é a página; 1 são comandos do usuário, enquanto 8 são coisas do sysadmin. A página de manual do próprio man (
man man
) explica e lista as páginas padrão:Existem certos termos que têm páginas diferentes em seções diferentes (por exemplo,
printf
como um comando aparece na seção 1, como umastdlib
função aparece na seção 3); em casos como esse, você pode passar o número da seçãoman
antes do nome da página para escolher qual você deseja ou usarman -a
para mostrar todas as páginas correspondentes em uma linha:Você pode dizer em quais seções um termo se enquadra
man -k
(equivalente aoapropos
comando). Ele também fará correspondências de substring (por exemplo, será exibidosprintf
se você executarman -k printf
), portanto, você precisa usá^term
-lo para limitar:fonte
man X intro
descreve o que está na seçãoX
.man man
... até agora.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
fonte
pipe(7)
,tcp(7)
(e várias outras páginas de manual de rede),pthreads(7)
,boot(7)
,regex(7)
, etc. Há outras coisas no capítulo 7, bem como, tais comoascii(7)
(tabela ASCII) eman(7)
(como escrever uma página de homem), mas as grandes docs páginas são, de longe as coisas mais úteis na seção 7 da minha experiência.O konqueror também descreve seções fora do padrão: (obrigado a @ greg0ire pela idéia)
fonte
O que é significa já descrito, mas também quer acrescentar que cada seção tem página de manual especial com introdução:
intro
. Por exemplo, vejaman 1 intro
ouman 3 intro
assim por diante.fonte
man-pages
pacote instalado?Na página de
man
manual:Por que eles estão separados assim - há alguma sobreposição. Certas páginas de manual existem em mais de uma seção, dependendo do que você quer dizer.
Por exemplo, compare
man crontab
comman 5 crontab
- as chances são de que este último você pretenda procurar.fonte
man1p
eman3p
?~/man
?Estes são números de seção. Basta digitar
man man
ou abrir o konqueror e digitar man: // man e você verá o que são essas seções.fonte
Freqüentemente, uma página de manual é referenciada através do sufixo da seção entre parênteses, por exemplo:
Esse estilo tem duas vantagens principais:
As páginas do manual estão organizadas em seções, por exemplo, a Seção 1 inclui todas as páginas do comando de usuário, a Seção 2 todas as páginas do manual para as chamadas do sistema, a Seção 3 é para funções da biblioteca etc.
Na linha de comando, se você não especificar explicitamente a seção, você obtém a primeira página do manual correspondente, na ordem transversal da seção padrão, por exemplo:
é exibido
BASH_BUILTINS(1)
no Fedora. Ondeexibe a página de manual da
read()
chamada do sistema.Observe que a especificação posicional da seção não é portátil - por exemplo, no Solaris, você a especificaria assim:
Geralmente,
man man
também lista algumas das seções disponíveis. Mas não necessariamente todos. Para listar todas as seções disponíveis, pode-se listar os subdiretórios de todos os diretórios listados no caminho man 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
, existem os seguintes subdiretórios:Os diretórios com o
man
prefixo 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:(as seções que terminam com
p
são páginas de manual do POSIX)Para visualizar uma página de manual em outro idioma (se disponível), é possível definir uma variável de ambiente relacionada ao idioma, por exemplo:
Além disso, cada seção deve ter uma página de manual de introdução denominada
intro
, por exemplo, visível através de:fonte
As definições para SVr4 são:
Essa é a numeração real de um UNIX "genético". O POSIX não define números.
fonte