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 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:
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//'| sort -u;}
Por exemplo, você pode invocá-lo mansect 3para ver as entradas na seção três.
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
@xyz: Atualizei o comando de classificação sort -upara remover duplicatas.
Chris Página
24
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
Obrigado. A opção -s não está presente no Mac OS X, provavelmente do BSD.
xyz
@ f100 Ah ok, talvez tenteman -a -s 2 '*'
Ulrich Dangel
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 :)
xyz
20
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:
ls /usr/share/man/man2/
Ou o mais completo:
find $(echo $MANPATH | tr ':'' ')-path '*/man2/*'
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
xyz
1
No Mac OS X, a única coisa que posso trabalhar é a man -k . | grep -F '(3)'lista de tudo na seção 3.
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:
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
Respostas:
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
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. Mude1
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:
Por exemplo, você pode invocá-lo
mansect 3
para ver as entradas na seção três.[Testado no macOS.]
fonte
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 :
fonte
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: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
$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:fonte
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
No Mac OS X, a única coisa que posso trabalhar é a
man -k . | grep -F '(3)'
lista de tudo na seção 3.fonte
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:
$(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.fonte