我一直在寻找整个系统,但我找不到它.当我回显$ PATH时,我得到了我添加的东西,加上默认路径.我没有.profile,我确实有.bashrc,但默认路径不在那里.我正在寻找它只是为了知道它的位置,因为所有的教程都解释了它的.profile ......但是如果你没有它呢?它在哪里?有人有什么想法吗?
beO*_*eOn 79
如果你这样做sudo man path_helper,它会谈谈它如何将路径放在一起.你看起来可能会/etc/paths和/etc/paths.d.我做了,找到了我想要的东西.
Ada*_*man 12
许多系统范围的设置,包括PATH在设置/etc/profile这是由读取bash在启动时.在Mac OS X上,此文件通常用于path_helper设置PATH.该实用程序依次从其他系统配置文件中读取信息/etc(参见手册path_helper页).
请注意,即使您禁用bash读取初始化文件(例如使用命令行选项--noprofile),它仍将继承父进程的环境.
如果你从/ etc/profile开始,它应该是这样的:
if [ -x /usr/libexec/path_helper ]; then
eval `/usr/libexec/path_helper -s`
fi
Run Code Online (Sandbox Code Playgroud)
它正在测试文件是否存在,如果存在,则执行它.如果你手动执行它,你会得到这样的东西:
PATH="/usr/bin:/bin:/usr/sbin:/usr/local/bin:/usr/X11/bin"; export PATH;
Run Code Online (Sandbox Code Playgroud)
我相信这就是你要找的东西.所以它来自/ etc/profile,后者又调用设置路径的可执行文件.
正如接受的答案中提到的,它$PATH是通过首先查看文件的内容/etc/paths,然后查看文件夹中的每个文件来构建的/etc/paths.d。因此,$PATH预安装的bash系统安装中包含这些文件以及其他 shell 类型中的每个条目。
但是,因为在最新的 Mac OS 版本中,默认 shell 是zsh,所以我遵循了几个教程,其中作者避免更改$PATHshell 的bash,而只是$PATH通过编辑~/.zshrc以下方式向 中添加新条目:
export PATH=/path/available/only/for/zsh/shells:$PATH
Run Code Online (Sandbox Code Playgroud)
上面的命令添加/path/available/only/for/zsh/shells到$PATH,并且添加的路径仅在 shell 中可用zsh。
$PATH我希望这对像我一样在 shell中有太多条目zsh并且无法弄清楚它们来自哪里的人有所帮助!