GNU/Linux >> Tutoriels Linux >  >> Linux

Comment savoir si la page de manuel que je regarde est la bonne ?

Par exemple,

[fakename]$ type echo
echo is a shell builtin

Mais man echo me donne la version GNU coreutils de echo . Quel est le moyen le plus simple de savoir si la page de manuel que je consulte est la bonne, c'est-à-dire celle de l'utilitaire que j'obtiendrais si je l'invoquais directement ?

Réponse acceptée :

Vous ne le faites pas, vraiment. Non sans connaissances externes à la page de manuel.

Dans le cas de echo (et printf , et test , …), il s'agit souvent d'un shell intégré, vous devrez donc le savoir et lire la documentation du shell. (Et echo est notoirement différent dans différentes implémentations, utilisez printf à la place.)

Dans la plupart, sinon tous les shells, vous pouvez trouver si quelque chose est une commande intégrée avec type command , par exemple. type echo affichera echo is a shell builtin . (type est spécifié par POSIX mais par ex. fish le supporte aussi, aussi non-POSIXy soit-il.) Dans Bash, vous lirez alors man bash , la documentation en ligne ou utilisez la commande intégrée help (qui est spécifique à Bash, et dont vous devez connaître l'existence).

Même si la commande n'est pas un builtin, il est possible qu'il y ait plusieurs commandes avec le même nom, rename étant un exemple célèbre (voir Pourquoi l'utilitaire de renommage sur Debian/Ubuntu est-il différent de celui sur d'autres distributions, comme CentOS ?). Maintenant, votre système d'exploitation doit avoir la page de manuel correcte pour l'utilitaire réellement installé, et par exemple. dans Debian, le système « alternatives » met également à jour les pages de manuel correspondantes lorsque les alternatives de commande sont modifiées. Mais si vous lisez une page de manuel en ligne, vous devez en être conscient.

De nombreux utilitaires ont une option de ligne de commande comme --version qui pourrait vous dire quelle est l'implémentation de cette commande. (Mais presque tous les utilitaires ne l'ont pas. Je pense que c'est un GNUisme à l'origine, donc les utilitaires GNU l'ont, ainsi que ceux qui ont copié la coutume.) Dans le cas de rename , il se trouve que cela fonctionne en distinguant deux implémentations différentes :

debian$ rename --version
/usr/bin/rename using File::Rename version 0.20
centos$ rename --version
rename (util-linux-ng 2.17.2)

En plus de cela, votre système peut avoir un alias ou une fonction avec le même nom d'un utilitaire, généralement pour modifier le comportement de l'utilitaire. Dans ce cas, les valeurs par défaut présentées dans une page de manuel peuvent ne pas s'appliquer. Alias ​​pour ls sont courants, tout comme les alias ajoutant -i à rm ou mv . Mais type foo vous dira aussi si foo est un alias ou une fonction.

En relation :Pourquoi ne puis-je pas obtenir la sortie pgrep directement dans la variable du script bash ?
Linux
  1. Comment mettre en miroir la sortie standard d'un terminal à un autre ?

  2. Comment savoir si je démarre avec Uefi ?

  3. Comment connaître le nom du fichier de script dans un script Bash ?

  4. Pas de page de manuel pour la commande cd

  5. Comment puis-je connaître le chemin absolu d'un processus en cours d'exécution ?

Comment trouver la page de manuel la plus longue sous Linux

Comment changer la couleur de sortie de 'Echo' sous Linux

Debian vs Ubuntu :15 choses à savoir avant de choisir la meilleure

Comment connaître les groupes d'un utilisateur Linux

Comment ajouter une navigation personnalisée à la page d'accueil de ONLYOFFICE

Comment ajouter une entrée dans la base de données des pages de manuel Linux