【发布时间】:2013-07-27 11:03:02
【问题描述】:
我记得在全新安装 os x 后,当我在终端中执行 echo $PATH 时,它以空行响应。现在,随着时间的推移安装一些工具后,$PATH 变量具有 /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin 值,尽管我的 .bash_profile 是空白的。我想知道这个值是在哪里设置的?
【问题讨论】:
我记得在全新安装 os x 后,当我在终端中执行 echo $PATH 时,它以空行响应。现在,随着时间的推移安装一些工具后,$PATH 变量具有 /usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/opt/X11/bin 值,尽管我的 .bash_profile 是空白的。我想知道这个值是在哪里设置的?
【问题讨论】:
可能的候选人是/etc/profile 和/etc/bashrc;还有/etc/paths 和/etc/paths.d 可以查看。您可能还需要查看$HOME/.profile 和$HOME/.bashrc。 bash 可能还有一些其他地方看起来也一样。
【讨论】:
~/.profile 和~/.bashrc;这是我的特权,也可能是你的。 /etc/paths.d 是一个包含文件40-XQuartz 的目录,其中列出了/opt/X11/bin; /etc/paths 是一个文件,其中包含其他值,每行一个。
test -f ~/.bashrc && source ~/.bashrc
/etc/paths.d 文件夹还应包含特定的应用程序相关文本文件,其内容中包含相关路径。当生成$PATH 变量时,这些特定的应用程序路径文件将添加到/etc/paths 中包含的内容中。乔纳森的系统在/etc/paths.d 文件夹中有一个40-XQuartz 路径文件,并且这个文件夹中的文件以数字字母顺序读取,所以一个名为30-SpecificApplicationName 的文件里面有一个路径列表会出现在@987654341 之前生成$PATH时的@path-file。
从 macOS Catalina 开始,Mac 默认 shell 为 zsh(Z shell)。这种类型的 shell 使用.zprofile 而不是.bash_profile。要检查您使用的是 bash 还是 zsh,请运行 echo $SHELL。如果结果是bin/zsh,那么你在 zsh 上。在这种情况下,为环境变量编辑您的 ~/.zprofile。
【讨论】: