Les pages de manuel de toutes les commandes sont stockés dans /usr/share/man/ répertoire sous Linux. Les pages de manuel sont compressées en gzip (.gz). Curieux de savoir quelle commande a la plus grande page de manuel sur votre système Linux ? Ici, plus grand signifie, je parle du nombre de lignes dans une page de manuel. Il ne s'agit pas de la taille du fichier ou du nombre de pages lors de l'impression. Si vous vous êtes déjà demandé comment trouver la page de manuel la plus longue dans les distributions Linux et Unix, suivez l'une des méthodes indiquées ici.
Trouver la page de manuel la plus longue sous Linux
Nous pouvons trouver les pages de manuel les plus grandes et les plus longues en comptant le nombre de lignes et de mots qu'elles contiennent. Les wc La commande est utilisée pour compter le nombre de lignes et de mots dans un fichier. Par exemple, pour compter le nombre de lignes dans ls page de manuel de la commande, exécutez :
$ man ls | wc -l
De même, pour compter le nombre de mots dans la page de manuel ls, utilisez -w drapeau comme ci-dessous.
$ man ls | wc -w
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042717055934.png)
Trouver le nombre de lignes et de mots dans une page de manuel sous Linux
Cependant, compter le nombre de lignes dans chaque page de manuel est fastidieux, prend du temps et probablement une idée stupide pour trouver les pages de manuel les plus longues de tout le système. Nous pouvons facilement trouver cela en utilisant une boucle for comme ci-dessous.
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
Cette commande analysera les répertoires man (1 à 8) et affichera la page man la plus longue de chaque répertoire par ordre décroissant. Cela prendra quelques minutes selon le nombre de pages de manuel dans votre système.
Voici la sortie de mon système 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
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042717060034.png)
Trouver la page de manuel la plus longue sous Linux et Unix
Comme vous pouvez le voir, la page de manuel la plus longue est ffmpeg-all avec 25468 lignes au total.
Vous pouvez le vérifier avec wc commande comme ci-dessous.
$ man ffmpeg-all | wc -l 25468
Si vous voulez trouver l'homme le plus long en fonction du nombre de mots au lieu de lignes, exécutez :
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
Exemple de résultat :
/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
Vérifiez s'il est correct en utilisant la commande :
$ man ffmpeg-all | wc -w 130475
Un simple script pour trouver la page de manuel la plus longue sous Linux
Voici un simple script BASH pour trouver la page de manuel la plus longue d'un système Linux.
Créez un fichier, par exemple longman.sh (abréviation de longest man page):
$ nano longman.sh
Ajoutez-y les lignes suivantes :
#!/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 vous voulez compter le nombre de mots au lieu de lignes, utilisez wc -w dans le script ci-dessus. Ce script prend le top 10 dans chaque répertoire man, compile un tableau et le trie par nombre de lignes. Il exclut également toutes les sections numérotées de 1 à 8 si elles n'existent PAS sur votre système.
Enregistrez et fermez le fichier et rendez-le exécutable à l'aide de la commande :
$ chmod +x longman.sh
Maintenant, exécutez ce script pour trouver la page de manuel la plus longue de votre système :
$ ./longman.sh
La page de manuel la plus longue est affichée en bas. Si vous souhaitez afficher la page de manuel la plus longue en haut, utilisez "sort -rn" dans le script ci-dessus.
Exemple de résultat :
[...] 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
![](https://m.unixlinux.online/article/uploadfiles/202204/2022042717060078.png)
Un script bash pour trouver la page de manuel la plus longue sous Linux
Le nombre au milieu indique la section de la page de manuel .
Pour en savoir plus sur les pages de manuel, exécutez :
$ man man
$ man -k man
$ info man
Suggestion de lecture :
- Comment installer les pages man manquantes des commandes sur Ubuntu
- Comment créer et gérer vos propres pages de manuel
J'espère que cela vous a été utile.