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
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. Cambie1a 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:
Por ejemplo, puede invocarlo
mansect 3para ver las entradas en la sección tres.[Probado en macOS.]
fuente
uniqno se soluciona nada que ponga un en curso .sort -upara 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
$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í:fuente
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)?\$//" | lessEn 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 mansedse deshace de la extensión del archivosortalfabéticamente.fuente