Tout d'abord, vous devez invoquer type .
, vous obtiendrez probablement quelque chose comme :
. is a shell builtin
Les commandes intégrées font partie de votre shell, elles n'ont pas leurs propres pages de manuel. Certains d'entre eux peuvent sembler en avoir, par ex. echo
est un intégré dans Bash mais il y a très probablement un exécutable séparé comme /bin/echo
dans votre système et dans ce cas man echo
fait référence à dernier . Ces deux echo
s ne sont probablement pas strictement équivalents.
Votre shell peut fournir des informations sur n'importe quel intégré via help
intégré ; essayez help help
, help type
et enfin :
help .
Les fonctions intégrées peuvent également être répertoriées dans la page de manuel de votre shell. Par exemple. (dans ma Debian) Les commandes intégrées de Bash sont couvertes directement dans man bash
, mais pour les commandes intégrées Zsh man zsh
me dit d'exécuter man zshbuiltins
. En général, les shells peuvent expliquer ou non leurs fonctions intégrées.
Essayez d'utiliser man sh
ou man bash
ou la page de manuel du shell que vous utilisez. (Peut-être man $SHELL
.)
Ce n'est officiellement pas appelé la commande "point", mais le source
commande. Recherche du mot source
peut être utile.
par exemple, la page de manuel bash (recherchez "chaque commande intégrée"), et vous trouverez rapidement la documentation.
Quant à expliquer l'utilisation, je peux le faire ici. Je ferai simplement référence à cela comme le source
commande, en reconnaissant qu'elle peut être abrégée en une période lorsque vous utilisez certains shells, et avec certains shells, cette commande peut avoir besoin d'être (car le point peut être reconnu mais le mot entier source
peut-être pas).
Si vous utilisez le source
commande, votre shell lira chaque ligne du fichier de script et tentera de l'exécuter. Vous avez besoin d'autorisations de "lecture" sur le fichier. (Peu importe si vous avez des autorisations "d'exécution".) Si vous modifiez une variable, cela risque d'affecter votre shell actuel.
Si, au contraire, vous essayez simplement d'exécuter le fichier, votre shell demandera au système d'exploitation de prendre en charge cette requête. Cela nécessitera des autorisations "d'exécution". (Sur certains systèmes, comme OpenBSD, vous n'aurez pas besoin d'autorisations de "lecture" pour cela. Sur d'autres systèmes, y compris de nombreuses variantes d'Unix, vous en aurez besoin.) Le fichier peut avoir besoin de commencer par un en-tête approprié (par exemple, #!/bin/sh
) afin que le système d'exploitation reconnaisse qu'il s'agit d'un fichier de script. Le système d'exploitation exécutera une copie du shell demandé et indiquera à ce shell d'exécuter le contenu du script. Si l'environnement shell est modifié (par exemple, une variable prend une nouvelle valeur, le répertoire de travail est modifié (avec cd
), un descripteur de fichier est redirigé (avec exec
), etc.), cela n'affectera que le sous-shell qui a été appelé pour le script et ne peut pas modifier l'environnement dans le shell parent qui a appelé le fichier de script.
Personne d'autre ne l'a mentionné, car il est souvent oublié.
Votre plus grand indice proviendrait de la commande utile whatis
.
[email protected] ~ $ whatis .
builtins (1) - bash built-in commands, see bash(1)
[email protected] ~ $ whatis source
builtins (1) - bash built-in commands, see bash(1)
[email protected] ~ $ whatis bash
bash (1) - GNU Bourne-Again SHell
[email protected] ~ $ whatis lynx
lynx (1) - a general purpose distributed information browser for the World Wide Web
[email protected] ~ $ whatis linux
linux: nothing appropriate.
[email protected] ~ $ whatis whatis
whatis (1) - display one-line manual page descriptions
MODIF :
Certaines personnes ont souligné dans les commentaires que ce n'est pas dans certaines distributions - c'est peut-être un paquet installable, ou activé d'une certaine façon - je l'avais par défaut dans gentoo;)
Il inclut le merveilleux qui - qui vous indique quel exécutable est appelé, et où est qui vous donne tous les chemins vers un exécutable que vous nommez, et ses pages de manuel (s'il existe dans plusieurs chemins).