Améliorez votre téléavertisseur pour une meilleure aide Linux
Agence web » Actualités du digital » Améliorez votre téléavertisseur pour une meilleure aide Linux

Améliorez votre téléavertisseur pour une meilleure aide Linux

Fidèle à la philosophie Linux, la visualisation des pages d'aide est un effort d'équipe. Bien que la commande man est celle que vous tapez réellement, elle s'appuie sur un outil de téléavertisseur séparé pour afficher son contenu réel. Découvrez quelles sont les implications de ce système et comment elle peut améliorer votre expérience d'aide.

La commande man affiche des pages de documentation pour diverses commandes, appels système, fonctions de bibliothèque, etc. Il récupère ces informations à partir de fichiers texte brut au format de la page de l'homme, généralement situé dans un répertoire comme / usr / share / man /.

Certaines pages d'homme sont courtes, mais la plupart sont plus longues qu'un écran de texte. Pour afficher ces pages, le programme Man utilise un outil appelé un téléavertisseur, un concept commun à travers Linux.

Un téléavertisseur est simplement n'importe quel outil qui affiche le contenu d'un fichier texte, avec une prise en charge pour déplacer le fichier une ligne – ou un écran – à un moment.

Sans un téléavertisseur, l'homme videra simplement le contenu entier d'une page d'homme dans votre terminal à la fois, vous laissant avec la page finale, qui variera en fonction de la taille de votre fenêtre de terminal:

Avec un téléavertisseur, en revanche, l'homme vous montrera une aide à la fois:

L'une des grandes forces de Linux est sa tendance à fournir de petits programmes ciblés qui remplissent des fonctions spécifiques. En utilisant plusieurs programmes ensemble, vous pouvez réaliser des tâches complexes sans logiciel dédié. Un téléavertisseur incarne cette philosophie: le programme homme se concentre sur la recherche de pages d'aide et la mise en forme de leur texte, tandis qu'un téléavertisseur se concentre sur l'affichage du texte pièce par pièce.

Dans le cas inhabituel que vous ne voulez pas du tout de capacité de pagination, vous pouvez utiliser la commande CAT comme téléavertisseur. Si votre application Terminal a une fonctionnalité de défilement et que la page de l'homme n'est pas trop énorme, vous pourrez faire défiler l'ensemble du contenu à l'aide de votre souris.

Les programmes Linux fournissent souvent quelques façons de changer leur comportement, et l'homme ne fait pas exception. Les principaux moyens sont:

  • Options de ligne de commande.

  • Variables d'environnement.

  • Fichiers de configuration.

Chaque méthode a ses avantages, et celle que vous choisissez dépendra généralement de savoir si vous souhaitez que le paramètre soit permanent et à quel point vous voulez qu'il s'applique.

La première approche consiste à utiliser une option de ligne de commande. Le programme Man prend en charge une option -p pour remplacer le téléavertisseur qu'il utiliserait autrement:

        man -P pager

Par exemple, pour rechercher la page d'aide pour LS, en utilisant le Pager moins:

        man -P less ls

Et pour rechercher une aide pour l'homme lui-même, en utilisant le plus sacrer:

        man -P more man

Vous devez noter que Pager peut être n'importe quelle commande valide, y compris ses propres arguments et même les tuyaux:

        man -P "grep operand | wc -l" ls

Une bonne alternative à cet argument de ligne de commande est une variable d'environnement. Linux utilise souvent des envvars pour la configuration, et deux sont pertinents dans ce cas:

  • Pager est un paramètre largement utilisé qui devrait indiquer votre téléavertisseur préféré pour une utilisation générale. Les programmes de support tueront leur sortie via la commande nommée dans Pager.

  • Manpager remplace le sacrer, en particulier pour la commande man. Bien que d'autres programmes soient libres d'utiliser cette valeur, vous devriez constater que seul l'homme le fait réellement. Cela vous permet de spécifier facilement un téléavertisseur pour l'homme qui diffère de votre téléavertisseur général.

Vous pouvez définir des variables d'environnement pour tous les utilisateurs dans / etc / environnement, ou pour votre utilisateur spécifique dans un fichier comme ~ / .bash_profile; Cela variera en fonction du shell que vous utilisez.

Comme pour n'importe quelle commande, vous pouvez définir la variable d'environnement pour une seule exécution en préfixant la commande:

        MANPAGER=most man pwd

Enfin, si votre version de Man prend en charge un fichier de configuration, vous pouvez l'utiliser pour modifier le téléavertisseur que l'homme utilise en permanence.

La version de Man incluse dans MacOS Tahoe lit un fichier de configuration à /etc/man.conf. Ubuntu 24 est livré avec Man 2.12.0, qui ne lit pas de fichier de configuration à usage général.

Si vous avez un fichier man.conf, la syntaxe pour définir le téléavertisseur est similaire à la définition d'une variable d'environnement:

        MANPAGER less -s
    

Dans tous ces cas, la commande de votre manpager peut être un chemin complet vers un exécutable, ou tout mot que votre shell peut traiter comme une commande. Si vous voulez une version exacte d'un programme connu, utilisez un chemin absolu complet. Sinon, utilisez un nom de commande simple et votre shell exécutera n'importe quel programme, fonction ou intégration s'applique dans le contexte actuel.

L'inconvénient avec cette approche est qu'il – apparemment – suraliments des variables d'environnement et l'argument de la ligne de commande -p. Ainsi, une fois défini, cette valeur est appliquée pour chaque utilisateur du système. Cela peut, rarement, être exactement ce que vous voulez, mais la plupart du temps, vous aurez plus de contrôle si vous évitez d'utiliser le fichier de configuration de l'homme pour définir le téléavertisseur.

À l'heure actuelle, vous pouvez reconnaître la valeur d'un bon téléavertisseur, mais vous vous demandez lesquels sont réellement bons – ou même quels téléavertisseurs sont disponibles. Pour un outil aussi simple, il y a en fait un nombre surprenant d'options, mais vous n'en utiliserez probablement qu'une poignée.

Par défaut, l'homme utilise généralement le moins Pager, en particulier cette commande:

        less -Sr
    

Le programme moins élevé, qui a été publié en 1984, remplace un téléavertisseur plus ancien nommé plusà partir de 1978. Bien qu'une plus commande soit souvent disponible, elle peut être la même que celle de votre système, soit en symbolisant, soit en étant simplement une copie directe. Par exemple, sur macOS Tahoe, courir diff / usr / bin / moins / usr / bin / plus ne rapporte aucune différence; Les deux binaires exécutables sont identiques.

L'avance principale que moins a apportée était de faire défiler en arrière; Croyez-le ou non, mais la version originale de More ne pouvait faire défiler vers l'avant. En utilisant moins, vous pouvez faire défiler une page à la fois en appuyant Espaceet une ligne à la fois avec Entrer. Faites défiler une page avec b et une ligne à la fois avec y.

Vous pouvez également faire défiler les demi-pages à la fois, ce qui peut faciliter la suivi de votre contexte. Utiliser u Pour faire défiler (up) par une demi-page, et d Pour faire défiler vers l'avant (vers le bas) d'une demi-page.

Pour les pages de l'homme, je recommande de déménager par une ligne ou demie à la fois. Le défilement d'une page à la fois peut être utile si vous souhaitez naviguer rapidement, mais cela peut rendre plus difficile de suivre le texte lorsque vous lisez une page homme du début à la fin.

la plupart est un téléspectateur relativement nouveau publié en 2005. Écrit en C, il est rapide et a un petit exécutable (125k).

Beaucoup de fonctionnalités de la plupart peuvent être utiles dans un téléavertisseur, mais ils ne font pas beaucoup de différence pour les pages de l'homme. Les caractéristiques de fenêtre du téléavertisseur ne peuvent pas être facilement utilisées avec l'homme, et le défilement horizontal ne devrait pas être nécessaire car l'homme enveloppe déjà les longues lignes.

Cela dit, quelques fonctionnalités peuvent être utiles. L'indicateur -c effectue des recherches sensibles à la casse, qui peuvent être utiles pour naviguer dans les titres dans les pages de l'homme, qui sont toujours en majuscules.

L'argument « + / recherche » est également très utile. Utilisez-le pour faire défiler automatiquement vers la première correspondance, par exemple:

        man -P 'most +/symbolic' ls

Un sacrer de plus de note est ov. Il s'agit d'une version plus récente, sortant en 2020, et le programme est écrit en Go, avec une excellente documentation. Le projet explique même la meilleure utilisation de l'OV avec divers autres outils, y compris l'homme.

OV prend en charge un ensemble étendu de commandes interactives, que vous pouvez afficher à tout moment en appuyant sur H:

L'une de mes fonctionnalités préférées est basique, mais très utile: G pour basculer les numéros de ligne. Bien que OV montre le numéro de ligne actuel en bas à droite, cela peut être facile à perdre, et les numéros de ligne peuvent vous aider à vous orienter, en particulier dans les pages d'homme plus longues.

Comme le plus sacrer, OV peut afficher plus d'un fichier à la fois. Mais, contrairement à la plupart, il peut ouvrir plusieurs fichiers à partir de la ligne de commande, il est donc possible de lire plus qu'une page homme à la fois, en utilisant la substitution de processus:

        ov <(man ls) <(man pwd)

Dans l'interface d'OV, vous pouvez appuyer ) pour passer au fichier suivant et ( pour le précédent. Bien qu'il soit un peu gênant à utiliser, cette fonctionnalité peut être pratique lors de la comparaison des pages de l'homme de deux commandes similaires. Vous pouvez même l'utiliser pour comparer les pages d'homme pour deux versions différentes de la même commande.

Où OV brille vraiment est sa configurabilité. Un exemple d'une petite victoire est l'option –tête, qui définit le nombre de lignes d'en-tête fixe:

        man -P 'ov --header 1' man

C'est idéal pour voir les pages de l'homme, car la première ligne est une belle tête qui vous rappelle quelle page vous consultez l'aide:

L'option –tête maintient cette ligne toujours en vue, donc vous ne vous perdez pas, même avec plusieurs pages d'homme ouvertes dans différentes fenêtres terminales.

Une autre option utile est – section-livraison. OV vous permet de l'utiliser pour définir où se trouvent les sections dans le document que vous consultez. Vous pouvez ensuite naviguer entre les sections en utilisant l'espace pour avancer et ^ pour reculer. Étant donné que les pages de l'homme ont clairement défini les sections, cela est très utile:

        man -P 'ov --section-delimiter "^(^s)"' man

Le délimiteur ici est une expression régulière qui correspond aux lignes commençant par un caractère non espace. Étant donné que les titres de section de format de pages de l'homme comme celui-ci, avec tous les autres contenus en retrait par Whitespace, cela divise soigneusement une page d'homme en sections, avec une navigation facile entre eux.

En prime, vous obtiendrez également des en-têtes de section qui restent fixés dans leur section actuelle, comme une version plus avancée de l'option de-tête:


Votre téléavertisseur est généralement un outil simple, vous seriez donc pardonné de ne pas y réfléchir beaucoup. Mais les téléspectateurs plus récents comme OV peuvent, avec un peu d'investissement, faire des pages d'aide à la lecture une tâche plus rapide et plus facile.

★★★★★