Answers:
PATH
在/etc/environment
文件中设置了(默认)系统范围。
$ cat /etc/environment
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
基本上是保存全局环境变量的地方。
$HOME
变量。例如,添加$HOME/.composer/vendor/bin
到PATH
in /etc/environment
不会使该目录中的二进制文件在没有路径前缀的情况下执行。使用~/.composer/vendor/bin
也不起作用。我发现有必要添加绝对路径,例如:/home/vagrant/.composer/vendor/bin
。:这似乎与(虽然不解释这种行为)askubuntu.com/questions/402353/...
/etc/environment
(和~/.pam/environment
)是由pam_env
PAM模块读取的,而不是Shell或任何其他了解Shell /环境变量的东西;这同样适用于~
扩张。因此,您需要在此处使用绝对路径。
$PATH
它是由父登录shell继承还是由每个bash
实例重新加载?