Como você produz uma lista de todas as páginas man em uma seção específica?

22

Uma página man para fork , por exemplo, está na seção Chamadas do sistema que possui o número 2:

man 2 fork

Como você vê o que mais é a seção 2 sem recorrer ao Google?

    
por xyz 30.07.2012 / 22:21

4 respostas

3

Este comando lista os nomes classificados de todas as entradas na seção dada:

man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//' | sort -u

Se você quiser ver os nomes dos caminhos, use:

man -aWS 1 \* | sed 's/\.[^.]*$//' | sort

Isso diz a man para procurar uma seção para todos os comandos usando o padrão de caractere curinga * (entre aspas invertidas para que o shell não interprete isso). -a encontra todas as correspondências, -W imprime os nomes dos caminhos em vez de exibir as páginas e -S 1 especifica a seção um. Altere o 1 para qualquer seção que você deseja pesquisar.

O comando sed remove as extensões de nome de arquivo; remova-o se quiser ver os nomes completos dos arquivos. sort classifica os resultados ( -u remove duplicados).

Para reutilização conveniente, isso define uma função de shell Bash:

function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//' | sort -u; }

Por exemplo, você pode invocá-lo como mansect 3 para ver as entradas na seção três.

[testado no macOS.]

    
por 19.08.2016 / 10:59
21

Para listar todas as man pages instaladas de uma seção específica, você pode usar apropos :

apropos -s 2 .  # use an regex for apropos . means anything
apropos -s 2 -w '*'  # use unix globbing for apropos
    
por 30.07.2012 / 22:33
20

As páginas de trabalho geralmente são colocadas em /usr/share/man , mas verifique $MANPATH e estão organizadas em seções assim:

 Section 1:
 /usr/share/man/man1/

 Section 2:
 /usr/share/man/man2/

 ...

Portanto, para listar todos os manpages da seção 2 instalados, faça:

ls /usr/share/man/man2/

Ou o mais completo:

find $(echo $MANPATH | tr ':' ' ') -path '*/man2/*'

O último terá problemas se você tiver diretórios em $MANPATH com espaço em seus nomes.

Na maioria das distribuições, você também pode verificar as man pages disponíveis com uma ferramenta de pacote, por exemplo, nas distribuições derivadas do Debian você pode usar apt-file assim:

apt-file search /man2/
    
por 30.07.2012 / 22:37
0

No Mac OS X, a única coisa que posso fazer é man -k . | grep -F '(3)' , que lista tudo na seção 3.

    
por 04.05.2016 / 22:37

Tags