Sous Linux, si jamais vous avez besoin d'aide concernant une commande, il vous suffit d'ouvrir sa page de manuel. Mais que se passe-t-il si une situation se présente dans laquelle l'exigence est de rechercher rapidement les noms et les descriptions de toutes les pages de manuel disponibles ? Eh bien, Linux a ce qu'il vous faut, car il existe une commande appelée apropos qui fait exactement cela pour vous.
Dans ce didacticiel, nous aborderons les bases d'à propos à l'aide d'exemples faciles à comprendre. Mais avant cela, il convient de mentionner que tous les exemples ici ont été testés sur une machine Ubuntu 16.04 LTS.
La commande apropos recherche les noms et les descriptions des pages de manuel à la recherche d'un mot-clé fourni par l'utilisateur. Voici sa syntaxe :
apropos [OPTIONS] keyword ...
Et voici ce que dit la page de manuel de l'outil :
Each manual page has a short description available within it. apropos
searches the descriptions for instances of keyword.
keyword is usually a regular expression, as if (-r) was used, or may
contain wildcards (-w), or match the exact keyword (-e). Using these
options, it may be necessary to quote the keyword or escape (\) the
special characters to stop the shell from interpreting them.
The standard matching rules allow matches to be made against the page
name and word boundaries in the description.
The database searched by apropos is updated by the mandb program.
Depending on your installation, this may be run by a periodic cron job,
or may need to be run manually after new manual pages have been
installed.
Voici quelques exemples de style questions-réponses qui devraient vous donner une bonne idée du fonctionnement de la commande à propos.
Q1. Comment utiliser à propos ?
L'utilisation de base est simple. Passez simplement le mot-clé que vous souhaitez rechercher en entrée de la commande apropos.
Par exemple :
apropos dmesg
produit le résultat suivant :
dmesg (1) - print or control the kernel ring buffer
Bien sûr, vous pouvez également transmettre plusieurs mots-clés.
Par exemple :
apropos dmesg whereis
Voici la sortie dans ce cas :
dmesg (1) - print or control the kernel ring buffer
whereis (1) - locate the binary, source, and manual page files for a...
Q2. Comment effectuer une recherche à propos de mots-clés exacts ?
Par défaut, l'entrée que vous transmettez à la commande apropos n'est pas recherchée exactement. Par exemple, si vous transmettez "qui" comme entrée, vous verrez également l'outil produire des résultats contenant des mots comme "whoami".
Ce n'est donc pas une recherche exacte. Cependant, vous pouvez forcer apropos à rechercher des mots clés exacts en utilisant les options de ligne de commande -e ou --exact.
Alors maintenant, vous voyez que seules les entrées qui correspondent exactement à "qui" ont été affichées dans la sortie.
Q3. Comment faire en sorte que les entrées d'affichage appropriées correspondent à tous les mots clés ?
Si vous transmettez plusieurs mots-clés en entrée de la commande apropos, l'outil affichera des entrées qui correspondent/contiennent au moins un des mots-clés. Cependant, si vous voulez qu'apropos ne produise que les entrées qui correspondent/contiennent tous les mots-clés, utilisez l'option de ligne de commande -a.
Par exemple, voici la sortie d'une commande apropos sans l'option -a :
Et voici le résultat avec l'option -a activée :
Q4. Comment forcer apropos à ne pas couper la sortie ?
Comme vous l'avez vu dans les résultats des questions-réponses précédentes, l'outil supprime les entrées si elles sont trop longues. Par exemple, consultez la ligne en surbrillance dans la sortie suivante :
Cependant, si vous le souhaitez, vous pouvez forcer apropos à produire des lignes complètes en sortie, ce que vous pouvez faire en utilisant l'option de ligne de commande -l.
Q5. Comment interpréter le statut de sortie à propos ?
La commande apropos produit quatre états de sortie différents :0, 1, 2 et 16. Voici ce que chacun d'eux représente :
0 Successful program execution.
1 Usage, syntax or configuration file error.
2 Operational error.
16 Nothing was found that matched the criteria specified
Conclusion
Selon votre profil de travail, vous n'aurez peut-être pas besoin de la commande à propos au quotidien, mais comme vous l'avez compris maintenant, cela pourrait vous sauver la vie dans certaines situations. Nous avons discuté de certaines options d'utilisation de la ligne de commande ici. Pour en savoir plus sur l'outil, rendez-vous sur sa page de manuel.