J'utilise Ubuntu Desktop 14.04, et en tant que tel, j'utilise le shell sans connexion. Lorsque j'ouvre le terminal graphique, les sessions shell sans connexion lisent d'abord les fichiers de démarrage suivants:
/etc/bash.bashrc
~/.bashrc
Les shells sans connexion héritent de l'environnement du processus parent, qui est un shell de connexion, de sorte que la session lit également les fichiers de démarrage suivants:
/etc/profile
~/.bash_profile
Cependant, je ne peux pas trouver $PATH
des chemins de l' ensemble du système aiment /bin
, /sbin
, /usr/bin
, /usr/sbin
, situé dans l' un de ces fichiers. Où est l' $PATH
ensemble de ces répertoires?
la source
$PATH
est hérité par le shell de connexion parent ou s'il est rechargé par chaquebash
instance?$HOME
variable. Par exemple, l'ajout$HOME/.composer/vendor/bin
àPATH
in/etc/environment
ne permet pas d'exécuter les binaires de ce répertoire sans préfixe de chemin. L'utilisation~/.composer/vendor/bin
ne fonctionne pas non plus. Je trouve qu'il est nécessaire d'ajouter le chemin absolu, par exemple:/home/vagrant/.composer/vendor/bin
. Cela semble lié (mais n'explique pas ce comportement): askubuntu.com/questions/402353/…/etc/environment
(et~/.pam/environment
) est lu par lepam_env
module PAM, pas le shell ou quoi que ce soit qui comprenne les variables shell / environnement; il en va de même pour l'~
expansion. Donc, vous devez y utiliser un chemin absolu.