我似乎无法确定PATH
在新安装的 Ubuntu 16.10 上 bash 环境变量的设置位置。
我尝试将语句放在和的echo $PATH
顶部。两个 echo 语句都得到执行,因此这些文件可以正确加载,但在这两种情况下,已经包含以下内容:~/.bashrc
/etc/bash.bashrc
PATH
/home/carl/bin:/home/carl/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
第一个条目 ( /home/carl/bin:/home/carl/.local/bin
) 是我想要追踪的。我不太确定任何值设置在哪里,因为更改/etc/environment
似乎没有效果。
当使用登录 shell 执行时也会PATH
设置/etc/profile
,并且不会受到 更改的影响/etc/environment
。
答案1
事实证明,PATH 是由显示管理器在创建桌面会话时加载的~/.profile
,(以及/etc/profile
和/etc/environment
)所保留的。这意味着对这些文件的更改不会反映在新的 bash 会话中,并且需要注销才能生效。
答案2
您可以通过在调试和登录模式下运行 bash 来发现这一点,这很有启发性
/bin/bash -xl
输出相当多,但您应该能够看到加载文件和修改 $PATH 的整个过程。