当有人说“编辑你的。plist文件”或“你的。profile”或“。Bash_profile”等等,这让我很困惑。我不知道这些文件在哪里,如果我必须这样做,如何创建它们,等等,以及为什么似乎有这么多不同的(为什么?)他们做不同的事情吗?)
所以,谁能非常耐心地向以前的Windows用户(迫切地想要更加熟悉最初有点困惑的OS X世界)解释如何一步一步地做到这一点?
我需要为GUI应用程序和命令行应用程序设置变量,目前是为需要变量的ant脚本设置变量,但很可能还有其他需求。
请注意,我也有Lion,因为你在谷歌上得到的许多答案似乎已经过时了…
还要注意,我几乎没有使用终端的经验。我愿意学习,但请为一个新手解释一下……
对我来说有用的是用我需要的变量创建一个.launchd.conf:
setenv FOO barbaz
这个文件在登录时由launchd读取。你可以添加一个变量'on the fly'到运行的launchd,使用:
launchctl setenv FOO barbaz`
事实上,。launchd。Cond只包含launchctl命令。
以这种方式设置的变量似乎正确地呈现在GUI应用程序中。
如果你碰巧试图以这种方式设置LANG或LC_变量,并且你碰巧使用的是iTerm2,请确保你禁用了你正在使用的概要文件的终端选项卡下的“自动设置区域变量”设置。这似乎覆盖了launchd的环境变量,在我的情况下,设置了一个坏的LC_CTYPE导致远程服务器上的问题(这被传递了变量)。
(环境。plist似乎仍然工作在我的狮子虽然。您可以使用RCenvironment首选项窗格来维护文件,而不是手动编辑它或所需的Xcode。狮子似乎仍然工作,虽然它的最后一次更新是从雪豹时代。这是我个人最喜欢的方法。)
首先,要认识到OS X是建立在Unix之上的。这就是.bash_profile的用武之地。当你在OS X中启动Terminal应用程序时,默认情况下你会得到一个bash shell。bash shell来自Unix,当它加载时,它会运行.bash_profile脚本。您可以为您的用户修改此脚本以更改您的设置。这个文件位于:
~/.bash_profile
小牛队更新
OS X Mavericks不使用环境。plist -至少不是OS X windows应用程序。您可以为窗口应用程序使用launchd配置。仍然支持.bash_profile,因为它是终端中使用的bash shell的一部分。
只限狮子和山狮
OS X窗口应用程序从您的环境接收环境变量。plist文件。这可能就是你所说的“。”plist文件”。这个文件位于:
~/.MacOSX/environment.plist
如果你改变你的环境。plist文件,那么OS X windows应用程序,包括终端应用程序,将设置这些环境变量。您在.bash_profile中设置的任何环境变量只会影响您的bash shell。
通常我只在.bash_profile文件中设置变量,而不更改.plist文件(或Mavericks上的launchd文件)。大多数OS X窗口应用程序不需要任何自定义环境。只有当应用程序实际需要特定的环境变量时,我才更改环境。plist(或Mavericks上的launchd文件)。
听起来你想要的是改变环境。Plist文件,而不是.bash_profile。
最后一件事,如果你找那些文件,我想你是找不到的。如果我没记错的话,在我最初安装Lion时并没有。
编辑:这里有一些创建plist文件的说明。
打开Xcode
Select File -> New -> New File…
在Mac OS X下选择“资源”
选择一个plist文件
按照剩下的提示操作
要编辑该文件,可以通过Control-click获得菜单并选择Add Row。然后可以添加键值对。对于环境变量,键是环境变量名,值是该环境变量的实际值。
一旦创建了plist文件,你可以用Xcode打开它,随时修改它。
简化的解释
这篇文章/问题有点老了,所以我将回答一个简化版本的OS X Lion用户。
默认情况下,OSX Lion没有以下任何文件:
~ / . bashrc
~ / . bash_profile
~ / . profile
最多,如果您在终端中执行了任何操作,您可能会看到~/.bash_history
它的含义
您必须创建这个文件来设置默认的bash命令(通常在~/.bashrc中)。要做到这一点,可以使用任何类型的编辑器,尽管在终端中更简单:
%> emacs .profile
[from w/in emacs type:] source ~/.bashrc .
[from w/in emacs type:] Ctrl + x Ctrl + s(保存文件)
[from w/in emacs type:] Ctrl + x Ctrl + c(关闭emacs)
%> emacs .bashrc
[从w/in emacs输入/粘贴所有bash命令,保存并退出]
下次退出并重新加载终端时,它应该加载所有bash首选项。另外,将命令分割成有用的文件名通常是个好主意。例如,from within ~/.Bashrc,你应该有一个源~/。Bash_aliases并将所有别名命令放在~/. Bash_aliases中。