Una página de manual para fork, por ejemplo, está en la sección Llamadas del sistema que tiene el número 2:
man 2 fork
¿Cómo ves qué es la sección 2 sin recurrir a Google?
Una página de manual para fork, por ejemplo, está en la sección Llamadas del sistema que tiene el número 2:
man 2 fork
¿Cómo ves qué es la sección 2 sin recurrir a Google?
Respuestas:
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.
[Probado en macOS.]
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 :
apropos -s 2 . # use an regex for apropos . means anything
apropos -s 2 -w '*' # use unix globbing for apropos
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:
Section 1:
/usr/share/man/man1/
Section 2:
/usr/share/man/man2/
...
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í:
apt-file search /man2/
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
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:
$(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.