Qual é a diferença entre `man` e` man (#) `?

31

Só vi alguém referenciando man 7 regexno Stackoverflow. Tentei man regexe obtive resultados muito semelhantes - parece haver pequenas diferenças.

Então, o que é esse número mágico 7? A pesquisa man 7 unixno Google me fornece resultados mais misteriosos, como o UNIX (7) ...

Aditya MP
fonte

Respostas:

33

Sobre UNIX(7)

Para responder à sua pergunta "UNIX (7)", esta é uma convenção padrão de dizer "A página de manual do UNIX na seção 7 (diversas)".

Para abrir uma página como init(8), você usaria este comando: man 8 init.


man regex vs man 7 regex

Para responder sua pergunta sobre as 'diferenças sutis' entre man regexe man 7 regex:

manpor padrão, abre a página com o número de seção mais baixo . Nesse caso, é a seção 3 (chamadas de biblioteca). Abrir a página da seção 7 (Diversos) é bem diferente.

Páginas em seções diferentes tratam de coisas diferentes, embora neste caso sejam semelhantes, considere apt:

man -f apt:

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

Neste exemplo, a aptseção 8 (comandos de administração do sistema) não tem nenhuma relação com a página da seção 1 (programas executáveis ​​ou comandos do shell).

Para referência futura, use man -f PAGE_NAMEpara localizar todas as páginas com esse nome em todas as seções. Você pode abrir uma página da seção com a qual deseja man SECTION PAGE_NAME.

Seções da página de manual

As várias seções da página são as seguintes e podem ser encontradas em man man:

  1. Programas executáveis ​​ou comandos do shell
  2. Chamadas do sistema (funções fornecidas pelo kernel)
  3. Chamadas de biblioteca (funções nas bibliotecas de programas)
  4. Arquivos especiais (geralmente encontrados em /dev)
  5. Formatos de arquivo e convenções, por exemplo /etc/passwd
  6. Jogos
  7. Diversos (incluindo pacotes e convenções de macro), por exemplo man(7),groff(7)
  8. Comandos de administração do sistema (geralmente apenas para raiz)
  9. Rotinas de kernel [Não padrão]
kiri
fonte
14

Os números da seção

manmostrará a página de manual de qualquer seção, man 7mostrará a página de manual da seção 7. Portanto, aqui 7 se refere à seção do comando específico para o qual você está procurando a página de manual.

Uma seção, se fornecida, orientará o homem a procurar apenas nessa seção do manual.


As seções

Consulte a tabela a seguir para obter os números de seção do manual, seguidos pelos tipos de páginas que eles contêm.

1: Programas executáveis ​​ou comandos do shell

2: Chamadas do sistema (funções fornecidas pelo kernel)

3: Chamadas de biblioteca (funções nas bibliotecas de programas)

4: Arquivos especiais (geralmente encontrados em / dev)

5: Formatos de arquivo e convenções, por exemplo, / etc / passwd

6: Jogos

7: Diversos (incluindo pacotes e convenções macro), por exemplo, man (7), groff (7)

8: Comandos de administração do sistema (geralmente apenas para raiz). Visões gerais de vários tópicos, convenções e protocolos, padrões de conjunto de caracteres e diversas outras coisas.

9: Rotinas do kernel [Não padrão]


Comandos em mais de uma seção

Na maioria dos casos, você desejará usar o mancomando sem n adicional . No entanto, em alguns casos, um comando aparecerá em mais de uma seção. Por exemplo, se você emitir o comando man open, obterá a página de manual do openvt na seção 1. Mas se precisar ver a página de manual aberta como um comando C (ou chamada do sistema, conforme a tabela acima), será necessário emitir man 2 open.

Um exemplo muito semelhante será man printfe man 3 printf. Por favor, emita os comandos e veja por si mesmo a diferença na saída.


Seu problema de man 7 unix(UNIX (7))

Portanto, esse UNIX (7) significa que ele pertence à seção 7.


Qual seção será mostrada por padrão se eu não fornecer um número de seção?

A ação padrão é procurar em todas as seções disponíveis, seguindo uma ordem predefinida e mostrar apenas a primeira página encontrada, mesmo que a página exista em várias seções.


Como sei o número da seção de um comando?

Se você precisar descobrir em quais seções um termo / comando se encaixa man -k(equivalente ao comando apropos). Portanto, man -k printf procurará nas descrições breves e nos nomes de página de manual a palavra-chave printf como expressão regular. Imprima quaisquer correspondências. (Equivalente a apropos -r printf). Emita o comando, veja a quantidade que você recebe. Se for necessário evitar correspondências de substring (por exemplo, ele mostrará sprintf se você executar man -k printf), use-o ^termpara limitá-lo, como abaixo,

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

Comando relacionado

Um comando relacionado é aproposcomo indicado acima, que pesquisa os nomes e descrições da página manual. Se você não tiver certeza da página de manual que está procurando, mas tiver uma idéia geral, use este comando.

Masroor
fonte
Mas a documentação para regexnão possui 7 seções ...
Aditya MP
@adityamenon Por favor, veja a resposta atualizada, que foi postada antes de terminar.
Masroor
Entendo - então uma 'Seção' aqui significa "classificação do programa".
Aditya MP
@adityamenon Certo, você teria ficado mais à vontade com o termo que está usando.
Masroor
Especificamente, "seção" aqui significa "seção do Manual", como se todas as páginas de manual estivessem em um único manual impresso (grosso)
Jonathan Callen