Ubuntu 16.10 bash shell 中的 PATH 设置在哪里?

Ubuntu 16.10 bash shell 中的 PATH 设置在哪里?

我似乎无法确定PATH在新安装的 Ubuntu 16.10 上 bash 环境变量的设置位置。

我尝试将语句放在和的echo $PATH顶部。两个 echo 语句都得到执行,因此这些文件可以正确加载,但在这两种情况下,已经包含以下内容:~/.bashrc/etc/bash.bashrcPATH

/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 的整个过程。

相关内容