$PATH 在 OS X 10.6 Snow Leopard 中设置在哪里?

And*_*rew 144 bash path command-line osx-snow-leopard macos

echo $PATH在命令行上输入并得到

/opt/local/bin:/opt/local/sbin:/Users/andrew/bin:/usr/local/bin:/usr/local/mysql/bin:/usr/local/pear/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin:/opt/local/bin:/usr/local/git/bin

我想知道这是在哪里设置的,因为我的.bash_login文件是空的。

我特别担心的是,在安装 MacPorts 之后,它在/opt. 我认为该目录甚至不存在于普通的 Mac OS X 安装中。

更新:感谢jtimberman更正我的echo $PATH陈述

Ste*_*lly 163

bash每次登录时,它都会在启动时读取以下文件。就 OS X 而言,这意味着每次打开新Terminal窗口时。

/etc/profile
~/.bash_profile
~/.bash_login   (if .bash_profile does not exist)
~/.profile      (if .bash_login does not exist)
Run Code Online (Sandbox Code Playgroud)

当您通过bash在命令行上键入来启动一个新的 shell 时,它会显示.bashrc

OS X 还用于~/.MacOSX/environment.plist设置更多环境变量,必要时包括路径。

最后,/etc/paths/etc/paths.d被 shell 读取。


/opt/local/bin等是~/.tcshrc由 MacPorts添加的。也一定要进去看看~/.cshrc

  • 显然,`~/.MacOSX/environment.plist` 对某些人不起作用。在 [Change Path for OS X](http://superuser.com/questions/97498/change-path-for-os-x/97525#97525) 中,使用文件夹 `/etc/paths.d` 的替代方法是描述。我没有测试过。 (5认同)

小智 51

看一看文件/etc/paths,这是被使用的/usr/libexec/path_helper,是被使用的/etc/profile

对于 MacPorts,使用sudo /etc/paths/opt/local/bin并重新打开终端窗口。


lea*_*nne 26

说真的,Leopard 为我们提供了一种添加路径的新方法。只需创建一个包含您要添加的路径部分的文件,并将其放入 /etc/paths.d

在一个步骤中执行此操作的一个快速示例是:

echo "/some/path/to/add" >> /etc/paths.d/somefilename
Run Code Online (Sandbox Code Playgroud)

否则,您可以转到 /etc/paths.d 并将文件直接放在那里。无论哪种方式,该目录中文件中的任何路径部分都将附加到默认路径。

这也适用于 manpath。

这是更多详细信息的链接:

ars technica:我如何在雪豹的 PATH 中添加一些东西?

第二个注意事项:MacPorts 将所有内容都放入 opt 目录中,因为 Apple 的东西不使用它。这样就不会冲突了。他们的指南(写得很好,顺便说一句)解释了为什么使用 opt 以及如果您愿意如何更改该默认值。

MacPorts 指南