Où les commandes disponibles dans la fenêtre de page de manuel sont-elles documentées et ces commandes dépendent-elles du système?


9

Ayant utilisé Linux pendant des années, j'ai soudainement découvert que je ne savais pas comment utiliser mancorrectement la commande. Il est bien connu que l'on peut taper qpour quitter une page de manuel, /pour rechercher, et autres. Je ne sais pas, cependant, où ces documents sont documentés. J'ai essayé man man man -a man info manet googlé, sans chance.

Veuillez me diriger vers la bonne position pour rechercher ces informations, même si elles sont exactes man manet que je les ai négligées, c'est très bien, faites le moi savoir.

Ces commandes sont-elles différentes pour différents systèmes d'exploitation ou pour différentes distributions de Linux?


Les pages de manuel ne sont-elles pas simplement consultées less? (C'est sur ma distribution, au moins, et hmontre un résumé des lesscommandes)
Rastapopoulos

@Rastapopoulos Les pages de manuel ne sont-elles pas simplement consultées less? Non, car ce lessn'est pas un utilitaire standard.
Andrew Henle

Je suppose que vous pouvez utiliser readlink -f /usr/bin/pagerou readlink -f $(which pager)pour savoir quel téléavertisseur vous avez (par défaut /bin/less) que manle téléavertisseur utilisé. Cela peut (devrait) fonctionner directementman pager
Hastur

2
Si vous lisez vos pages de manuel à l'aide de moreou less, vous pouvez taper hpour obtenir de l'aide. (ou vous pouvez simplement utiliser emacs...)
Alex Vong

1
Si vous tapez ?ou hà l'invite du pager, il devrait vous donner une liste de commandes.
Barmar

Réponses:


11

Il est en effet juste dans la page de manuel pour man, sous la sous-rubrique "Contrôle de la sortie formatée" et répété plus loin dans la section "ENVIRONNEMENT" pour faire bonne mesure:

Par défaut, l'homme utilise pager -s.
La page de manuel explique comment il y a une hiérarchie des variables d'environnement et des options de ligne de commande ( PAGER, MANPAGERet --pager) pour outrepasser la valeur par défaut.

C'est ainsi qu'il lit sur des systèmes tels que Debian Linux. Sur des systèmes comme Oracle Linux, en revanche, le man-dbpackage a été construit avec une valeur par défaut différente, qui est cependant toujours reflétée ici dans la page de manuel aux mêmes endroits:

Par défaut, l'homme utilise less -s.

Les man-dbtentatives de paquet pour détecter automatiquement, au moment de la compilation, qui téléavertisseur par défaut à accumulation pour la commande et le document dans sa page de manuel, sur less, moreet pager.

Sur des systèmes tels que Debian Linux, la pagercommande fait partie du système «alternatif» et peut correspondre à l'une des commandes réelles:

jdebp% update-alternatives --pager de liste
/ bin / less
/ bin / plus
/ usr / bin / pg
/ usr / bin / w3m
jdebp%

On consulte donc leurs pages de manuel respectives pour savoir comment les piloter à partir du clavier, selon l'alternative choisie. Utilement, le système d'alternatives Debian maintient la page de manuel synchronisée avec la commande choisie, donc lire cette page de manuel est assez simple:

pager homme


5

L'homme utilise un téléavertisseur pour afficher le contenu.

Les détails exacts dépendent de la version que manvous utilisez.

Pour la version utilisée sur de nombreux systèmes:

  • Si l'option -p pagerest donnée, ce pager est utilisé.
  • Sinon, si la variable d'environnement MANPAGERest définie, elle est utilisée.
  • Sinon, si PAGERest défini, il est utilisé.
  • Sinon, la valeur par défaut est d'utiliser /usr/bin/less

Si la page de manuel est au format HTML, elle BROWSERest utilisée à la place de MANPAGER/PAGER

Debian utilise man-dbdes paramètres par défaut différents.

Lire man manpour les détails


Merci pour votre réponse. Bien que la réponse explique comment cela manfonctionne, je voudrais vous demander si vous pouvez faire la faveur de me diriger vers le bon endroit où ce comportement est documenté. Je vous remercie.
Weijun Zhou

Dans ma man mansortie (encore une fois, la manversion: 2.6.3), il indique que "par défaut, moins -s est utilisé.", Donc je suppose que cela dépend de la version et du système?
Weijun Zhou

1
Ce n'est qu'un exemple de la philosophie Unix standard: des commandes petites et simples qui fonctionnent sur les flux de texte et font exactement une chose et le font bien. Le formatage d'un manuel et la pagination sont deux choses, c'est pourquoi ils sont exécutés par deux outils différents. De cette façon, l'outil de pagination peut être réutilisé pour d'autres tâches, pas seulement pour afficher des pages de manuel.
Jörg W Mittag

2

Grâce à @Rastapopoulos, je trouve une ligne liée à lessdans man mansur une ancienne boîte Linux ( manversion: 1.6f) dans la section ENVIRONNEMENT qui dit,

NAVIGATEUR Nom d'un navigateur à utiliser pour afficher les pages de manuel HTML. S'il n'est pas défini, /usr/bin/lessest utilisé.

Cependant sur une boîte plus récente ( manversion: 2.6.3) cette ligne a été remplacée par

BROWSER Si $ BROWSER est défini, sa valeur est une liste de commandes délimitées par deux points, chacune étant utilisée à son tour pour essayer de démarrer un navigateur Web pour man --html. Dans chaque commande,% s est remplacé par un fichier? nom contenant la sortie HTML de groff, %% est remplacé par un seul signe de pourcentage (%) et% c est remplacé par deux points (:).

Sur la base de ces informations, je pense qu'il est formaté lesspar défaut (au moins pour le premier cas). Cependant, même si c'est le cas, cela est documenté d'une manière qui ne me semble pas claire (ou j'ai manmal appris la commande).


2

Il n'y a aucun moyen réel de répondre pleinement à votre question en général pour divers systèmes d'exploitation, car l' manimplémentation n'est pas vraiment entièrement spécifiée.

La réponse au standard POSIX, non spécifique à Linux se trouve dans la mandocumentation POSIX :

NOM

man - display system documentation

SYNOPSIS

man [-k] name...

...

VARIABLES D'ENVIRONNEMENT

Les variables d'environnement suivantes affecteront l'exécution de man:

LANG

Fournissez une valeur par défaut pour les variables d'internationalisation non définies ou nulles. (Voir Variables d'internationalisation XBD pour la priorité des variables d'internationalisation utilisées pour déterminer les valeurs des catégories de paramètres régionaux.)

LC_ALL

S'il est défini sur une valeur de chaîne non vide, remplacez les valeurs de toutes les autres variables d'internationalisation.

LC_CTYPE

Déterminez les paramètres régionaux pour l'interprétation des séquences d'octets de données de texte en tant que caractères (par exemple, des caractères mono-octets par opposition aux caractères multi-octets dans les arguments et dans la base de données récapitulative). La valeur de LC_CTYPE n'a pas besoin d'affecter le format des informations écrites sur les opérandes de nom.

LC_MESSAGES

Déterminez les paramètres régionaux à utiliser pour affecter le format et le contenu des messages de diagnostic écrits sur l'erreur standard et des messages informatifs écrits sur la sortie standard.

NLSPATH

Déterminez l'emplacement des catalogues de messages pour le traitement de LC_MESSAGES.

PAGER

Déterminez une commande de filtrage de sortie pour écrire la sortie sur un terminal. Toute chaîne acceptable comme opérande chaîne_commande pour la commande doit être valide. Lorsque la sortie standard est un périphérique terminal, la sortie de la page de référence doit être acheminée via la commande. Si la variable PAGER est nulle ou non définie, la commande doit être soit un autre utilitaire de pagination documenté dans la documentation du système.sh-cmore

Notez la section JUSTIFICATION, décrivant pourquoi mann'est pas si complètement spécifié:

RAISONNEMENT

Il est reconnu que l'utilitaire man n'est que d'une utilité minimale comme spécifié. L'opinion des développeurs de normes était fortement divisée quant à la quantité ou au peu d'informations que l'homme devait fournir. Ils ont toutefois estimé que la fourniture d'un moyen portable d'accès à la documentation favoriserait la portabilité des utilisateurs. Les arguments contre une spécification plus complète étaient:

  • De grandes quantités de documentation ne devraient pas être requises sur un système qui n'a pas d'espace disque excédentaire.

  • Le système manuel actuel ne présente pas les informations d'une manière qui facilite grandement la portabilité des utilisateurs.

  • Un «meilleur système d'aide» est actuellement un domaine dans lequel les fournisseurs estiment qu'ils peuvent ajouter de la valeur à leurs implémentations POSIX.

L'option -f a été envisagée, mais en raison de différences d'implémentation, elle n'a pas été incluse dans ce volume de POSIX.1-2008.

La description a été modifiée pour être plus précise sur ce qui doit être affiché pour un utilitaire. Les développeurs standard ont jugé insuffisant de permettre un affichage du synopsis uniquement sans donner une brève description de ce que fait chaque option et opérande.

L'entrée "purpose" à inclure dans la base de données peut être similaire au titre de la section (moins le préfixe numérique) de ce volume de POSIX.1-2008 pour chaque utilitaire. Ces titres sont similaires à ceux utilisés dans les systèmes historiques à cet effet.

Voir mailx pour la justification du paginateur par défaut.

La mise en garde dans la description LC_CTYPE a été ajoutée car il n'est pas obligatoire qu'une implémentation fournisse des pages de référence pour tous ses paramètres régionaux pris en charge sur chaque système; changer LC_CTYPE ne traduit pas nécessairement la page de référence dans une autre langue. Cela équivaut à l'état actuel de LC_MESSAGES dans les messages spécifiques aux paramètres régionaux POSIX.1-2008 qui ne sont pas encore obligatoires.

La variable historique MANPATH n'est pas incluse dans POSIX car aucune tentative n'est faite pour spécifier des conventions de dénomination pour les fichiers de page de référence, ni même pour exiger qu'ils soient des fichiers. Sur certaines implémentations, il peut s'agir d'une véritable base de données, d'un fichier hypertexte ou même de chaînes fixes dans l'exécutable man. Les développeurs standard considéraient que la portabilité des pages de référence était en dehors de leur champ de travail. Cependant, les utilisateurs doivent savoir que MANPATH est implémenté sur un certain nombre de systèmes historiques et qu'il peut être utilisé pour personnaliser le modèle de recherche des pages de référence à partir des différentes catégories (utilitaires, fonctions, formats de fichiers, etc.) lorsque l'administrateur système révèle l'emplacement et les conventions des pages de référence sur le système.

...

La discussion de justification du paginateur de la page mailx :

Le paginateur sélectionné lorsque PAGER est nul ou non défini est partiellement non spécifié pour permettre la pratique historique System V d'utiliser pg par défaut. Contourner la fonction de pagination, par exemple en déclarant que cat est le paginateur, ne correspondrait pas au sens voulu de cette description. Cependant, tout "utilisateur portable" devrait définir PAGER explicitement pour obtenir son paginateur préféré sur tous les systèmes. Le choix du paginateur a été rendu partiellement non spécifié, contrairement au choix de l'éditeur VISUAL (mandaté pour être vi) car la plupart des pagers historiques suivent un thème commun de saisie utilisateur, tandis que les éditeurs diffèrent considérablement.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.