J’ai exploré les plus grandes pages d’homme sur Linux, voici ce que j’ai appris

 J’ai exploré les plus grandes pages d’homme sur Linux, voici ce que j’ai appris


Je me suis récemment retrouvé à me demander quelle est la taille des différentes pages d’homme. Certains sont si longs, ils semblent impénétrables, tandis que d’autres ont très peu de détails. Que peut nous dire leur taille sur le système Linux ou MacOS sur lequel ils se trouvent?

Comment trouvez-vous les plus grandes pages d’homme?

La ligne de commande que j’ai utilisée pour trouver les plus grandes pages d’homme ressemble à ceci:

        du -a /usr/share/man | fgrep '.' | sort -rn | head -n 20

Un peu se passe là-bas, alors laissez-moi vous expliquer.

Les pages d’homme par défaut vivent dans une hiérarchie enracinée à / usr / share / man. À l’intérieur de ce répertoire se trouvent des sous-répertoires pour chaque section homme. À l’intérieur, il y a des fichiers de page de l’homme individuel comme /usr/share/man/man1/grep.1 et /usr/share/man/man4/ip.4.

Les fichiers de page man peuvent vivre dans plusieurs endroits; La commande Manpath les répertorie. Je suis après la plus grande expérience de «stock» ici, donc je restreigne ma recherche à / usr / share / man, où la majeure partie des commandes de stock en direct.

La commande du du du du du du du disque « vous montre Combien de fichiers et répertoires d’espace disque se présentent. L’option -A répertorie tous les fichiers et répertoires de la hiérarchie, avec leur taille de bloc à côté d’eux. La taille du bloc n’est pas tout à fait la même taille du fichier, mais pour cet exercice, il est suffisamment proche.

Le tuyau vers FGREP supprime les répertoires que DU rapporte. Encore une fois, vous pouvez le faire de meilleures manières, mais dans le cas spécifique ici, cela fonctionne bien.

Le pipeline utilise ensuite le tri avec les options -r et -n pour trier la sortie de DU numériquement avec les plus grands nombres en haut. Cela fonctionne car la sortie de Du comprend la taille comme premier champ.

Enfin, Head -N 20 donne les 20 meilleurs fichiers. Vous pouvez varier le nombre ou remplacer l’ensemble de la commande par un téléavertisseur comme moins pour explorer la sortie complète.

Quelles sont les plus grandes pages d’homme?

J’ai vérifié deux systèmes d’exploitation raisonnablement vanille et Unix pour voir quelles étaient leurs plus grandes pages d’homme:

Sur macOS, j’ai vu ce qui suit:

Les pages d’homme les plus importantes sont donc Perltoc, Perlapi, Perlfunc, Postconf et Perldiag. Beaucoup de perl!

Sur Ubuntu, les résultats sont très différents:

Une liste des fichiers de pages manuels, notamment Bash.1.gz, OpenVPN.8.gz, Git-Config.1.gz et Proc.5.gz.

Remarquez comment ubuntu gzips ses pages d’homme. Les fichiers texte se compressent souvent très efficacement, ils prennent donc beaucoup moins d’espace. Mais les plus grandes pages sont moins axées sur Perl et incluent des services de réseautage et des services de réseautage.

En rapport

Comment zipter et dézip les fichiers avec GZIP sur Linux

Enregistrer l’espace de stockage des données et raccourcir les temps de transmission avec GZIP sur Linux.

Ce que les plus grandes pages d’homme peuvent nous apprendre

Vous pouvez apprendre beaucoup en les lisant, mais ces pages nous disent également des choses utiles sur Linux, MacOS et quels programmes sont les plus lourds.

Perl est complètement documenté

Sur MacOS, 4 des 5 plus grandes pages d’homme sont liées à Perl. J’ai vérifié pour voir combien de pages Perl Man y avait au total:

        find /usr/share/man -name 'perl*'

214! Près d’un tiers de ces pages «delta», comme celle que vous tirez homme perl583delta:

La page man pour perl583delta montre des sections avec des titres comme des changements incompatibles et des améliorations de base.

Ces pages sont l’équivalent des notes de libération, et elles sont présentes pour de nombreuses versions mineures de la langue. Ce fut l’une des premières choses que j’ai apprises tout au long du processus: certaines pages d’homme ne mappent pas directement vers une commande ou un programme installé.

En revanche, il n’y a que six pages perl * man sur ma machine Ubuntu. Il ne s’agit pas non plus de la version de Perl qui est installée. Sur MacOS, je vois la version 5.34.1 et sur Ubuntu, c’est 5,34.0.

Zsh est si grand, il divise ses pages d’homme en plusieurs plus petites

Sur MacOS, je gère Zsh, et il s’avère que cette coquille est bien représentée en ce qui concerne les pages de l’homme. À l’intérieur du top 10 se trouve une page d’homme nommée «ZshCompsys», et le top 20 comprend également ZshContrib et ZshModules. Comme Perl, Zsh divise son manuel en pages distinctes; «Seulement» 16 d’entre eux, cependant.

La page ZshCompsys est un énorme 5 000 lignes expliquant comment fonctionne l’adhésion à l’onglet de Zsh. Le système d’achèvement est incroyablement puissant et configurable, il est donc compréhensible que cette page d’homme soit si grande.

En rapport

Qu’est-ce que ZSH et pourquoi devriez-vous l’utiliser au lieu de bash?

Eh bien, il a plus de couleurs.

Cela contraste avec d’autres obus. La page principale Bash Man est toujours grande: # 8 sur la liste et un peu moins de 5 000 pages. Mais il n’y a qu’une seule autre page manuelle liée à Bash, Bashbug, et c’est minuscule, bien qu’il documente une commande intéressante qui vous permet de déposer un rapport de bogue à partir de la ligne de commande.

D’autres obus sont bien représentés – TCSH est au n ° 9 dans la liste, et KSH à # 20 – mais chacun de ces obus se limite à une seule page homme.

Pendant ce temps, sur Linux, j’utilise Bash et ce shell a la plus grande page Man dans l’ensemble. Cela vérifie; Je n’ai pas installé ZSH et je m’attendrais à ce que les pages de Shell Man soient parmi les plus importantes.

Curl est le programme «normal» le plus complexe

C’est là que mon voyage a commencé, me demandant si un autre programme était aussi compliqué et bien documenté que Curl. La commande curl a tellement d’optionspour gérer toutes les différentes caractéristiques de HTTP, que sa page Man s’étend sur ~ 4 500 lignes sur Linux et ~ 6 500 sur macOS. La différence est probablement due à différentes versions de Curl (8.7.1 sur macOS, 7.81.0 sur Ubuntu), mais de toute façon, c’est un manuel de mammouth.

Lorsque les pages de l’homme atteignent cette taille, elles commencent à devenir lourdes. Dans le cas de Curl, je pense qu’il existe deux meilleures alternatives. Premièrement, il y a TLDR, une alternative plus simple à l’homme qui se concentre sur les utilisations des exemples. Voici ce que cela fait de Curl:

La page TLDR pour Curl montre une brève description, suivie d'exemples d'utilisation.

Ces 32 lignes sont beaucoup plus efficaces que les 6 000 dans la page Man! La page TLDR mentionne également la deuxième meilleure alternative: un Version en ligne de la page de l’homme de Curl.

MacOS est plus axé sur la section 1

La page de l’homme de l’homme décrit la section 1 comme le «manuel des commandes générales». Sur MacOS, 18 des 20 plus grandes pages d’homme sont dans la section 1. En revanche, les plus grandes pages d’homme d’Ubuntu sont beaucoup plus diverses, distribuées entre les sections 1, 3 (fonctions de la bibliothèque), 5 (formats de fichiers) et 8 (Manuel du gestionnaire du système).

La page de la section 8 pour OpenVPN est la deuxième plus grande de mon système. Il avertit même le lecteur de sa propre longueur!

La page Man pour OpenVPN explique qu'elle contient beaucoup d'options car l'outil est si flexible.

Cela reflète probablement les principaux utilisateurs de chaque système. MacOS s’adresse à un marché de consommation plus large, donc même ses pages Terminal Man sont orientées vers les commandes de l’utilisateur final. Linux fait appel aux programmeurs, aux systèmes système et aux opérateurs de réseaux, de sorte que ses pages d’homme de niveau inférieur sont plus complètes.

Plus que tout, j’ai appris à être à nouveau curieux

Ce qui a commencé comme une question jetable que je me suis posée, est devenue une exploration des trous de lapin Unix que je ne me suis jamais aventuré auparavant. Je connaissais le strict minimum sur les pages de l’homme, mais ma compréhension des sections était limitée, et je ne connaissais pas du tout le commandement de Manpath. Plus important encore, je ne savais pas grand-chose sur la composition des pages d’homme sur mes systèmes, et je ne savais certainement pas combien d’espace ils dédiaient à Perl ou Git-Config.

Cet exercice m’a rendu nostalgique de mes premiers jours avec Linux, alors que tout était mûr pour explorer. Après des années – même des décennies – à l’usage, il est facile de devenir complaisant et de cesser de poser des questions sur le système sous-jacent. On m’a rappelé que jeter un œil derrière le rideau peut être un moyen d’apprentissage efficace, et j’essaierai de nourrir cette nature curieuse un peu plus à l’avenir.



Source link

Related post

Leave a Reply

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *