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到PATHin /etc/environment不会使该目录中的二进制文件在没有路径前缀的情况下执行。使用~/.composer/vendor/bin也不起作用。我发现有必要添加绝对路径,例如:/home/vagrant/.composer/vendor/bin。:这似乎与(虽然不解释这种行为)askubuntu.com/questions/402353/...
/etc/environment(和~/.pam/environment)是由pam_envPAM模块读取的,而不是Shell或任何其他了解Shell /环境变量的东西;这同样适用于~扩张。因此,您需要在此处使用绝对路径。
$PATH它是由父登录shell继承还是由每个bash实例重新加载?