J'utilise à la fois man
et --help
dans la programmation Bash pour get de l'aide. Par exemple, pour get des informations sur l'utilisation de la command ls
, je peux utiliser
man ls
Ou
ls --help
Les deux donnent certains résultats similaires. Quelle est la différence entre ces deux?
Pour un, --help
n'est pas une command, c'est un argument qui est souvent donné à une command pour get de l'aide. Pendant ce time, l' man
est une command, abréviation de "manuel". Les pages manuelles sont installées par de nombreux programmes et constituent un moyen courant de find de l'aide sur les commands, ainsi que sur les appels système (par exemple fork()
).
Si un programme installe une page de manuel, il peut toujours être accédé via la command man
, alors que --help
n'est qu'une convention courante, mais n'a pas besoin d'être appliquée – il pourrait être juste (et seulement) -h
.
man
utilise généralement un téléavertisseur, tel que less
, automatiquement, ce qui peut faciliter la visualisation et la search de l'information.
Enfin, vous mentionnez la programmation Bash dans votre question – rien de tout cela n'est propre à Bash. Bash ne se soucie pas des commands elles-mêmes ou de leurs arguments pour la plupart.
Dans la plupart des scénarios, l' man
est plus détaillé que --help
. help
donne les options de command line pour une command particulière. Mais l' man
est beaucoup plus détaillé.
Plus man
est un outil de command line en soi, alors que --help
est un argument de command line pour un outil. Petite différence.
Dans la première, vous requestz au système de searchr les pages de manuel pour get de l'aide sur la command. La seconde, vous requestz à la command de fournir sa propre aide. Les deux vont très certainement différer – généralement la command fournit un callback de ses options où la page man est une description détaillée.
man some_command
est quelque chose que vous pouvez espérer fonctionner sur tous les systèmes d'exploitation Unix et Unix, à less que les pages de manuel ne soient pas installées.
some_command --help
est principalement un GNUism donc il ne fonctionnera généralement pas avec les implémentations non GNU.
GNU, qui n'aime pas les pages de manuel pour une raison quelconque, a également introduit info some_command
comme troisième alternative.
Je trouve --help
utile car il me permet d'appeler de l'aide pendant que je modifie une command
Par exemple
rsync -vPn ./* ./newfolder/.
Oh – Quel est le drapeau pour compresser?
rsync -vPn --help ./* ./newfolder/. | less
Je trouve que la command d'aide sur les drapeaux est parfois très utile et prend less de time. Avec l'homme, je dois le taper et revenir à travers mon histoire pour revenir à la command dans laquelle j'étais.