Como você produz uma lista de todas as páginas de manual em uma seção específica?
Uma página de manual para fork, por exemplo, está na seção Chamadas do sistema que possui o número 2:
Como você vê o que mais é a seção 2 sem recorrer ao Google?
Sem google, mas via Web, vá para man7.org/linux/man-pages/dir_section_2.html (ou página principal aqui: kernel.org/doc/man-pages )
Este comando lista os nomes classificados de todas as entradas na seção fornecida:
Se você quiser ver os nomes dos caminhos, use:
Isso diz manpara procurar em uma seção todos os comandos usando o padrão curinga *(aspas invertidas para que o shell não o interprete). -alocaliza todas as correspondências, -Wimprime os nomes dos caminhos em vez de exibir as páginas e -S 1especifica a seção um. Mude 1para a seção que você deseja pesquisar.
O sedcomando retira as extensões do nome do arquivo; remova-o se desejar ver os nomes de arquivos completos. sortclassifica os resultados ( -uremove duplicatas).
Para reutilização conveniente, isso define uma função shell Bash:
Por exemplo, você pode invocá-lo mansect 3para ver as entradas na seção três.
[Testado no macOS.]
Bom - obrigado. Recebo algumas duplicatas (por exemplo, caminhos em /Applications/Xcode.app e "Accelerate" na seção 7), mas nada colocando um uniqno pipeline não é corrigido.
@xyz: Atualizei o comando de classificação sort -upara remover duplicatas.
Para listar todos instalados homem páginas de uma seção específica, você pode usar a propósito :
"apropos: -s: opção desconhecida"
@MichaelMrozek que sistema você está usando? Funciona para mim, por exemplo: saída de apropos -s 2 -w '*'
Obrigado. A opção -s não está presente no Mac OS X, provavelmente do BSD.
@ f100 Ah ok, talvez tenteman -a -s 2 '*'
Parece mais isso, mas, em vez de listá-los, na verdade, está invocando o visualizador para cada um deles. Eu hackeei uma função para fazer a listagem que eu publiquei em outro comentário. Ele provavelmente tem problemas, mas é o suficiente para me :)
As páginas de manual geralmente são colocadas /usr/share/man, mas verificam $MANPATH, e são organizadas em seções como:
Para listar todas as páginas de manual da seção 2 instaladas, faça:
Ou o mais completo:
O último terá problemas se você tiver diretórios $MANPATHcom espaço em seus nomes.
Na maioria das distribuições, você também pode verificar as páginas de manual disponíveis com uma ferramenta de pacote, por exemplo, nas distribuições derivadas do Debian, você pode usar apt-fileo seguinte:
Obrigado - Este foi o começo que eu precisava. Eu criei uma função shell que é executada, por exemplo, lman 2e lista o nome sem adornos para cada página em uma nova linha e as páginas. O corpo da função é:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
No Mac OS X, a única coisa que posso trabalhar é a man -k . | grep -F '(3)'lista de tudo na seção 3.
— zellyn
Eu sei que essa é uma pergunta muito antiga, no entanto, as respostas dadas aqui não funcionaram para mim. Portanto , criei a seguinte linha que funciona no Ubuntu 18.04 e no macOS Mojave, 10.14.6:
Atraso rápido:
resposta de Thors: $(man --path | tr ':' ' ')para obter os caminhos atuais das páginas de manual
find <man paths> -type f -path '*man2*' -exec basename {} \; obtém os nomes de arquivos de todos os arquivos regulares nos caminhos do homem