GNU/Linux >> Tutoriales Linux >  >> Linux

Cómo encontrar la página man más larga en Linux

Las páginas man de todos los comandos se almacenan en /usr/share/man/ directorio en Linux. Las páginas man están comprimidas en gzip (.gz) formato. ¿Tiene curiosidad por saber qué comando tiene la página de manual más grande en su sistema Linux? Aquí mayor significa, estoy hablando de la cantidad de líneas en una página de manual. No se trata del tamaño del archivo o del número de páginas cuando se imprime. Si alguna vez se preguntó cómo encontrar la página de manual más larga en las distribuciones de Linux y Unix, siga cualquiera de los métodos que se proporcionan aquí.

Encuentre la página man más larga en Linux

Podemos encontrar las páginas man más grandes y largas contando el número de líneas y palabras que contienen. El wc El comando se usa para contar el número de líneas y palabras en un archivo. Por ejemplo, para contar el número de líneas en ls página de manual del comando, ejecute:

$ man ls | wc -l

De manera similar, para contar el número de palabras en la página de manual de ls, use -w marca como a continuación.

$ man ls | wc -w

Encuentra el número de líneas y palabras en una página man en Linux

Sin embargo, contar el número de líneas en cada página de manual es tedioso, lleva mucho tiempo y probablemente sea una idea tonta para encontrar las páginas de manual más largas en todo el sistema. Podemos encontrar esto fácilmente usando un bucle for como a continuación.

for i in {1..8}; do f=/usr/share/man/man$i/$(ls -1S /usr/share/man/man$i/ | head -n1); printf "%s: %9d\n" "$f" $(man "$f" 2>/dev/null | wc -l); done

Este comando analizará los directorios man (1 a 8) y mostrará la página man más larga en cada directorio en orden descendente. Tomará unos minutos dependiendo de la cantidad de páginas man en su sistema.

Aquí está el resultado de mi sistema Ubuntu 18.04:

/usr/share/man/man1/ffmpeg-all.1.gz: 25468
/usr/share/man/man2/perf_event_open.2.gz: 1732
/usr/share/man/man3/Net::SSLeay.3pm.gz: 8738
/usr/share/man/man4/st.4.gz: 423
/usr/share/man/man5/proc.5.gz: 3087
/usr/share/man/man6/espdiff.6.gz: 50
/usr/share/man/man7/groff_mdoc.7.gz: 1826
/usr/share/man/man8/dnsmasq.8.gz: 1337

Encuentra la página man más larga en Linux y Unix

Como puede ver, la página man más larga es ffmpeg-all con 25468 líneas en total.

Puede cotejarlo con wc comando como a continuación.

$ man ffmpeg-all | wc -l
25468

Si desea encontrar al hombre más largo en función del número de palabras en lugar de líneas, ejecute:

for i in {1..8}; do f=/usr/share/man/man$i/$(ls -1S /usr/share/man/man$i/ | head -n1); printf "%s: %9d\n" "$f" $(man "$f" 2>/dev/null | wc -w); done

Salida de muestra:

/usr/share/man/man1/ffmpeg-all.1.gz: 130475
/usr/share/man/man2/perf_event_open.2.gz: 11031
/usr/share/man/man3/Net::SSLeay.3pm.gz: 37886
/usr/share/man/man4/st.4.gz: 4358
/usr/share/man/man5/proc.5.gz: 22939
/usr/share/man/man6/espdiff.6.gz: 294
/usr/share/man/man7/groff_mdoc.7.gz: 11919
/usr/share/man/man8/dnsmasq.8.gz: 16875

Verifique si es correcto usando el comando:

$ man ffmpeg-all | wc -w
130475

Un script simple para encontrar la página man más larga en Linux

Aquí hay un script BASH simple para encontrar la página man más larga en un sistema Linux.

Cree un archivo, por ejemplo longman.sh (abreviatura de hombre más largo página):

$ nano longman.sh

Agregue las siguientes líneas en él:

#!/usr/bin/env bash
cd /usr/share/man/
for fn in $(find -maxdepth 1 -type d -iname 'man[1-8]'); do
  fn=${fn#./}
  ls -1Sp "$fn" | head -n 10 | sed -Ee "s,^,$PWD/$fn/," | while read manpage; do
    shortname=$(echo "$manpage" | sed -e "s,$PWD/man,," -e "s,/,"$'\t'",")
    printf '%9d\t%s\n' $(man "$manpage" 2>/dev/null | wc -l) "$shortname"
  done
done | sort -n

Si desea contar el número de palabras en lugar de líneas, use wc -w en el guión anterior. Este script toma los 10 primeros en cada directorio man, compila una tabla y la ordena por el número de líneas. También excluye cualquiera de las secciones numeradas 1-8 si NO existen en su sistema.

Guarde y cierre el archivo y hágalo ejecutable usando el comando:

$ chmod +x longman.sh

Ahora, ejecute este script para encontrar la página man más larga en su sistema:

$ ./longman.sh

La página man más larga se muestra en la parte inferior. Si desea mostrar la página man más larga en la parte superior, use "sort -rn" en el script anterior.

Salida de muestra:

[...]
14236   1   ffmpeg-filters.1.gz
15470   1   x86_64-linux-gnu-g++-7.1.gz
15470   1   x86_64-linux-gnu-gcc-7.1.gz
20579   1   ffplay-all.1.gz
20797   1   ffprobe-all.1.gz
24856   1   ffserver-all.1.gz
25468   1   ffmpeg-all.1.gz

Un script Bash para encontrar la página man más larga en Linux

El número en el medio indica la sección de la página del manual .

Para conocer más detalles sobre las páginas del manual, ejecute:

$ man man
$ man -k man
$ info man

Lectura sugerida:

  • Cómo instalar las páginas man faltantes de los comandos en Ubuntu
  • Cómo crear y mantener sus propias páginas man

Espero que esto haya sido útil.


Linux
  1. Cómo usar BUSCAR en Linux

  2. Cómo encontrar un archivo en Linux

  3. Cómo averiguar qué hace un comando de Linux

  4. Cómo encontrar la IP de la puerta de enlace predeterminada en Linux

  5. Cómo agregar una entrada en la base de datos de la página del manual de Linux

Cómo instalar páginas man en Alpine Linux

Cómo encontrar la dirección IP en Linux

Cómo encontrar el nombre de host en Linux

Cómo encontrar las líneas más largas en un archivo en Linux

Cómo encontrar el último inicio de sesión en Linux

Cómo encontrar la dirección IP en Linux