Uma página de manual 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?
Uma página de manual 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?
Respostas:
Este comando lista os nomes classificados de todas as entradas na seção fornecida:
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 man
para procurar em uma seção todos os comandos usando o padrão curinga *
(aspas invertidas para que o shell não o interprete). -a
localiza 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. Mude 1
para a seção que você deseja pesquisar.
O sed
comando retira as extensões do nome do arquivo; remova-o se desejar ver os nomes de arquivos completos. sort
classifica os resultados ( -u
remove duplicatas).
Para reutilização conveniente, isso define uma função shell Bash:
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//' | sort -u; }
Por exemplo, você pode invocá-lo mansect 3
para ver as entradas na seção três.
[Testado no macOS.]
uniq
no pipeline não é corrigido.
sort -u
para remover duplicatas.
Para listar todos instalados homem páginas de uma seção específica, você pode usar a propósito :
apropos -s 2 . # use an regex for apropos . means anything
apropos -s 2 -w '*' # use unix globbing for apropos
man -a -s 2 '*'
As páginas de manual geralmente são colocadas /usr/share/man
, mas verificam $MANPATH
, e são organizadas em seções como:
Section 1:
/usr/share/man/man1/
Section 2:
/usr/share/man/man2/
...
Para listar todas as páginas de manual da seção 2 instaladas, 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 $MANPATH
com 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-file
o seguinte:
apt-file search /man2/
lman 2
e 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
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:
find $(man --path | tr ':' ' ') -type f -path '*man2*' \
-exec basename {} \; | sed 's/\..*//' | sort
Atraso rápido:
$(man --path | tr ':' ' ')
para obter os caminhos atuais das páginas de manualfind <man paths> -type f -path '*man2*' -exec basename {} \;
obtém os nomes de arquivos de todos os arquivos regulares nos caminhos do homemsed
se livra da extensão do arquivosort
alfabeticamente.