Este comando enumera los nombres ordenados de todas las entradas en la sección dada:
man -aWS 1 \* | xargs basename | sed 's/\.[^.]*$//'| sort -u
Si desea ver los nombres de las rutas, use:
man -aWS 1 \* | sed 's/\.[^.]*$//'| sort
Esto le indica manque busque en una sección todos los comandos utilizando el patrón comodín *(barra invertida entre comillas para que el shell no lo interprete). -aencuentra todas las coincidencias, -Wimprime los nombres de las rutas en lugar de mostrar las páginas y -S 1especifica la sección uno. Cambie 1a la sección que desee buscar.
El sedcomando elimina las extensiones de nombre de archivo; elimínelo si desea ver los nombres completos de los archivos. sortordena los resultados ( -uelimina duplicados).
Para una reutilización conveniente, esto define una función de shell Bash:
function mansect { man -aWS ${1?man section not provided} \* | xargs basename | sed 's/\.[^.]*$//'| sort -u;}
Por ejemplo, puede invocarlo mansect 3para ver las entradas en la sección tres.
Genial gracias. Obtengo algunos duplicados (p. Ej., Rutas en /Applications/Xcode.app y "Accelerate" en la sección 7), pero uniqno se soluciona nada que ponga un en curso .
xyz
@xyz: Actualicé el comando de clasificación sort -upara eliminar duplicados.
Chris Page
24
Para enumerar todas las páginas man instaladas de una sección específica, puede usar a propósito :
apropos -s 2.# use an regex for apropos . means anything
apropos -s 2-w '*'# use unix globbing for apropos
Gracias. La opción -s no está presente en Mac OS X a propósito, que presumiblemente es de BSD.
xyz
@ f100 Ah ok, tal vez intenteman -a -s 2 '*'
Ulrich Dangel
Parece más parecido, pero en lugar de enumerarlos, en realidad está invocando al espectador para cada uno por turno. He pirateado una función para hacer un listado que publiqué en otro comentario. Es probable que tenga problemas, pero es suficiente para mí :)
xyz
20
Las páginas de manual generalmente se colocan /usr/share/man, pero comprueban $MANPATH, y se organizan en secciones de la siguiente manera:
Para enumerar todas las páginas de manual de la sección 2 instaladas, haga lo siguiente:
ls /usr/share/man/man2/
O el más completo:
find $(echo $MANPATH | tr ':'' ')-path '*/man2/*'
El último tendrá problemas si tiene directorios $MANPATHcon espacio en sus nombres.
En la mayoría de las distribuciones, también puede consultar las páginas man disponibles con una herramienta de paquete, por ejemplo, en las distribuciones derivadas de Debian que puede usar apt-fileasí:
Gracias. Este fue el comienzo que necesitaba. Hice una función de shell que se ejecuta, por ejemplo, lman 2y enumera el nombre sin adornos para cada página en una nueva línea y las pagina. El cuerpo de la función es:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
xyz
1
En Mac OS X, lo único que puedo hacer para trabajar es man -k . | grep -F '(3)'que enumera todo en la sección 3.
Sé que esta es una pregunta muy antigua, sin embargo, las respuestas dadas aquí no funcionaron para mí. Por lo tanto, se me ocurrió el siguiente one-liner que funciona en Ubuntu 18.04 y macOS Mojave, 10.14.6:
find $(man --path | tr ':'' ')-type f -path '*man2*' \
-exec basename {} \; | sed 's/\..*//'| sort
Descenso rápido:
respuesta de Thors: $(man --path | tr ':' ' ')para obtener las rutas actuales de las páginas man
find <man paths> -type f -path '*man2*' -exec basename {} \; Obtiene los nombres de archivo de todos los archivos normales en las rutas de acceso man
Respuestas:
Este comando enumera los nombres ordenados de todas las entradas en la sección dada:
Si desea ver los nombres de las rutas, use:
Esto le indica
man
que busque en una sección todos los comandos utilizando el patrón comodín*
(barra invertida entre comillas para que el shell no lo interprete).-a
encuentra todas las coincidencias,-W
imprime los nombres de las rutas en lugar de mostrar las páginas y-S 1
especifica la sección uno. Cambie1
a la sección que desee buscar.El
sed
comando elimina las extensiones de nombre de archivo; elimínelo si desea ver los nombres completos de los archivos.sort
ordena los resultados (-u
elimina duplicados).Para una reutilización conveniente, esto define una función de shell Bash:
Por ejemplo, puede invocarlo
mansect 3
para ver las entradas en la sección tres.[Probado en macOS.]
fuente
uniq
no se soluciona nada que ponga un en curso .sort -u
para eliminar duplicados.Para enumerar todas las páginas man instaladas de una sección específica, puede usar a propósito :
fuente
man -a -s 2 '*'
Las páginas de manual generalmente se colocan
/usr/share/man
, pero comprueban$MANPATH
, y se organizan en secciones de la siguiente manera:Para enumerar todas las páginas de manual de la sección 2 instaladas, haga lo siguiente:
O el más completo:
El último tendrá problemas si tiene directorios
$MANPATH
con espacio en sus nombres.En la mayoría de las distribuciones, también puede consultar las páginas man disponibles con una herramienta de paquete, por ejemplo, en las distribuciones derivadas de Debian que puede usar
apt-file
así:fuente
lman 2
y enumera el nombre sin adornos para cada página en una nueva línea y las pagina. El cuerpo de la función es:find $(man --path | tr ':' ' ') -path "*/man$1/*"| xargs basename | sort | sed -E "s/\.$1(.gz)?\$//" | less
En Mac OS X, lo único que puedo hacer para trabajar es
man -k . | grep -F '(3)'
que enumera todo en la sección 3.fuente
Sé que esta es una pregunta muy antigua, sin embargo, las respuestas dadas aquí no funcionaron para mí. Por lo tanto, se me ocurrió el siguiente one-liner que funciona en Ubuntu 18.04 y macOS Mojave, 10.14.6:
Descenso rápido:
$(man --path | tr ':' ' ')
para obtener las rutas actuales de las páginas manfind <man paths> -type f -path '*man2*' -exec basename {} \;
Obtiene los nombres de archivo de todos los archivos normales en las rutas de acceso mansed
se deshace de la extensión del archivosort
alfabéticamente.fuente