当有人说“编辑您的.plist文件”或“您的.profile”或“.bash_profile”等时,这只会让我感到困惑 . 我不知道这些文件在哪里,如果我必须这样做,如何创建它们等等,以及为什么似乎有这么多不同的(为什么?他们做不同的事情?)
那么有人可以非常耐心地向以前的Windows用户解释(想要更加熟悉令人愉快的,如果最初有些令人困惑的OS X世界)如何一步一步地做到这一点?
我需要为GUI应用程序和命令行应用程序设置变量,目前它是需要变量的ant脚本,但很可能还有其他需求 .
请注意我也有狮子,因为谷歌的许多答案似乎已经过时了......
另请注意,我几乎没有使用终端的经验 . 我愿意学习,但请为新手解释...
15 回答
在Mac OS上设置PATH环境变量
打开终端程序(默认位于Applications / Utilites文件夹中) . 运行以下命令
这将在您的默认文本编辑器中打开该文件 .
For ANDROID SDK as example :
您需要添加Android SDK平台工具和工具目录的路径 . 在我的例子中,我将使用“/ Development / android-sdk-macosx”作为目录安装SDK . 添加以下行:
保存文件并退出文本编辑器 . 执行.bash_profile以更新PATH .
现在每次打开终端程序时,PATH都会包含Android SDK .
首先,要认识到OS X的一件事是它是在Unix上构建的 . 这就是.bash_profile的用武之地 . 当您在OS X中启动终端应用程序时,默认情况下会获得一个bash shell . bash shell来自Unix,当它加载时,它运行.bash_profile脚本 . 您可以修改此脚本以供您的用户更改您的设置 . 该文件位于:
Update for Mavericks
OS X Mavericks不使用environment.plist - 至少不适用于OS X Windows应用程序 . 您可以将launchd configuration用于窗口化应用程序 . 仍然支持.bash_profile,因为它是终端中使用的bash shell的一部分 .
Lion and Mountain Lion Only
OS X窗口应用程序从environment.plist文件接收环境变量 . 这可能是“.plist”文件的意思 . 该文件位于:
如果您对environment.plist文件进行了更改,那么OS X Windows应用程序(包括终端应用程序)将设置这些环境变量 . 您在.bash_profile中设置的任何环境变量只会影响您的bash shell .
通常我只在.bash_profile文件中设置变量,不要更改.plist文件(或Mavericks上的launchd文件) . 大多数OS X窗口应用程序不需要任何自定义环境 . 只有当应用程序实际需要特定的环境变量时才更改environment.plist(或Mavericks上的launchd文件) .
听起来你想要的是更改environment.plist文件,而不是.bash_profile .
最后一件事,如果您查找这些文件,我认为您将找不到它们 . 如果我没记错的话,他们不是我最初安装的Lion .
Edit: 以下是创建plist文件的一些说明 .
打开Xcode
选择文件 - >新建 - >新建文件...
在Mac OS X下选择资源
选择一个plist文件
按照提示的其余部分进行操作
要编辑文件,可以按住Control键单击以获取菜单,然后选择“添加行” . 然后,您可以添加键值对 . 对于环境变量,键是环境变量名称,值是该环境变量的实际值 .
创建plist文件后,您可以使用Xcode打开它以随时修改它 .
对我有用的是用我需要的变量创建一个
.launchd.conf
:此文件在登录时由launchd读取 . 您可以使用以下命令将“动态”变量添加到正在运行的launchd中:
实际上,
.launchd.cond
只包含launchctl命令 .以这种方式设置的变量似乎正确地存在于GUI应用程序中 .
如果您碰巧尝试以这种方式设置LANG或LC_变量,而您恰好使用iTerm2,请确保禁用您正在使用的配置文件的“终端”选项卡下的“自动设置区域设置变量”设置 . 这似乎覆盖了launchd的环境变量,在我的例子中是设置了一个损坏的LC_CTYPE导致远程服务器上的问题(它已经传递了变量) .
(环境.plist似乎仍然可以在我的Lion上运行 . 你可以使用RCenvironment首选项窗格来维护文件,而不是手动编辑它或需要Xcode . 似乎仍然可以使用Lion,尽管它的最后更新来自Snow Leopard时代 . 这是我个人喜欢的方法 . )
Let me illustrate you from my personal example in a very redundant way.
安装JDK后首先确保已安装JDK .
有时,与Windows不同,macOS或Linux会自动为您设置环境变量 . 但是's not the case always. So let'检查它 .
如果未设置环境变量,echo $ JAVA_HOME之后的行将为空 . 在你的情况下它必须是空的 .
现在我们需要检查是否有bash_profile文件 .
你看到我的情况下我们已经有了bash_profile . 如果不是,我们必须创建一个bash_profile文件 .
创建一个bash_profile文件 .
再次检查以确保存在bash_profile文件 .
现在让's open bash_profile file. macOS opens it using it'的默认TextEdit程序 .
这是保存环境变量的文件 . 如果已打开新的bash_profile文件,则该文件必须为空 . 在我的例子中,它已经设置为python编程语言和Anaconda发行版 . 现在,我需要为Java添加环境变量,这只是添加第一行 . 你必须输入第一行VERBATIM . 只是第一行 . 保存并关闭TextEdit . 然后关闭终端 .
再次打开终端 . 让我们检查环境变量是否已设置 .
以下是有关Lion OS 10.7.x中PATH变量的更多信息:
如果需要全局设置PATH,则系统按以下顺序构建PATH:
解析文件
/private/etc/paths
的内容,每行一个路径解析文件夹
/private/etc/paths.d
的内容 . 该文件夹中的每个文件都可以包含多个路径,每行一个路径 . 加载顺序首先由文件名确定,然后由文件中的行顺序决定 ./private/etc/launchd.conf
中的setenv PATH
语句,它将该路径附加到已在#1和#2中构建的路径(您不能使用$ PATH来引用到目前为止已构建的PATH变量) . 但是,考虑到其他两个选项,在此设置PATH是完全没必要的,尽管这是可以为所有用户设置其他全局环境变量的地方 .这些路径和变量由所有用户和应用程序继承,因此它们是真正的全局 - 注销并且不会重置这些路径 - 它们是为系统构建的,并且在任何用户有机会登录之前创建,因此,对这些更改需要重新启动系统才能生效 .
顺便说一下,OS 10.7.x Lion的全新安装没有我能找到的
environment.plist
,所以它可能有用,但也可能不赞成使用 .我在Maverics上遇到了Eclipse的问题(从GUI开始,而不是从脚本开始),它没有采用自定义PATH . 我尝试了上面提到的所有方法都无济于事 . 最后,我根据here的提示找到了最简单的工作答案:
转到 /Applications/eclipse/Eclipse.app/Contents 文件夹
使用文本编辑器(或XCode)编辑Info.plist文件,使用 full path 为环境变量添加LSEnvironment字典 . 请注意,它还包括/ usr / bin等:
它打印当前路径值
然后做
vim ~/.bash_profile
并写在这里,您将附加到旧路径,因此保留旧路径并添加新路径
然后做
这将执行它并添加路径
然后再次检查
第1步:打开
~/.bash_profile
现在打开一个文本编辑器:
第二步:变量名应该是大写字母 . 在这个例子中变量是
NODE_ENV
第3步:
export NODE_ENV=development
保存并关闭 .
重启系统 .
完成 .
要检查env变量:打开终端并输入
简化说明
这篇文章/问题有点陈旧,所以我将回答OS X Lion用户的简化版本 . 默认情况下,OSX Lion没有以下任何文件:
~ / .bashrc
~ / .bash_profile
~ / .profile
最多,如果您在终端中做了任何事情,您可能会看到〜/ .bash_history
意味着什么
您必须创建该文件以设置默认的bash命令(通常在〜/ .bashrc中) . 要做到这一点,请使用任何类型的编辑器,尽管在终端中执行它更简单:
%> emacs .profile
[来自w / in emacs类型:]
source ~/.bashrc
[来自w / in emacs类型:]
Ctrl + x Ctrl + s
(保存文件)[来自w / in emacs类型:]
Ctrl + x Ctrl + c
(关闭emacs)%> emacs .bashrc
[从w /在emacs中键入/粘贴所有bash命令,保存并退出]
下次退出并重新加载终端时,它应该加载所有bash首选项 . 为了更好地衡量,将命令分成有用的文件名通常是个好主意 . 例如,在〜/ .bashrc中,您应该有一个
source ~/.bash_aliases
并将所有别名命令放在〜/ .bash_aliases中 .我采取了白痴的路线 . 将这些添加到/ etc / profile的末尾
创建了一个文件夹/ etc / environments,在其中创建一个名为“oracle”或“whatever”的文件,并添加了我需要全局设置的内容 .
/ etc $ cat /etc/environments.d/Oracle
将路径变量添加到OS X Lion
这非常直接,在我的终端工作:
类似的回应在这里:http://www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516
开放式终端:
应用更改到系统(无需重启计算机):
(也适用于macOS Sierra 10.12.1)
更多细节,可能对某人有帮助:
由于我自己的探索,我现在知道如何以8种不同方式中的7种设置环境变量 . 我试图让一个envar进入我正在Xcode下开发的应用程序 . 我使用这些不同的方法设置“tracer”envars来告诉我哪些方法将它纳入我的应用程序的范围 . 从下面,您可以看到在Xcode中编辑“方案”以添加参数有效,“putenv”也是如此 . 没有在该范围内设置的内容:〜/ .MACOS / environment.plist,特定于应用程序的plist,.profile,以及添加构建阶段以运行自定义脚本(我在Xcode中找到另一种方式[至少]设置一个但忘了我称之为跟踪器但现在找不到它;也许它在另一台机器上....)
GPU_DUMP_DEVICE_KERNEL为3
GPU_DUMP_TRK_ENVPLIST为(null)
GPU_DUMP_TRK_APPPLIST是(null)
GPU_DUMP_TRK_DOTPROFILE是(null)
GPU_DUMP_TRK_RUNSCRIPT是(null)
GPU_DUMP_TRK_SCHARGS为1
GPU_DUMP_TRK_PUTENV为1
...另一方面,如果我进入终端并说“设置”,它似乎唯一得到的是来自.profile的那个(我原本以为它也会选择environment.plist,我就是肯定有一次我确实在终端看到了第二个示踪器envar,所以从那以后某些东西可能会变得不稳定 . 漫长的一天....)
您的“.profile”或“.bash_profile”只是“home”文件夹中的文件 . 如果您打开Finder窗口并在“收藏夹”窗格中单击您的帐户名...您将看不到它们 . 如果您打开终端窗口并键入“ls”列出文件...您仍然不会看到它们 . 但你可以在终端使用“ls -a”找到它们 . 或者,如果您打开自己喜欢的文本编辑器(比如TextEdit,因为它附带OS X)并执行文件 - >打开,然后按Command Shift . 并单击您的帐户名称(主文件夹),您也将看到它们 . 如果您没有看到它们,那么您只需在您喜欢的文本编辑器中创建一个 .
现在,添加环境变量非常简单,并且在概念上与windows非常相似 . 在.profile中,每行添加一个变量名称及其值,如下所示:
等等
如果要修改“PATH”变量,请确保包含已为您设置的系统默认PATH:
现在这里是古怪的部分,你可以打开一个新的终端窗口让新变量生效,或者你需要输入“.profile”或“.bash_profile”来重新加载文件并让内容被应用到您当前的终端环境 .
您可以使用终端中的“set”命令检查更改是否生效 . 只需键入“set”(或者如果您喜欢分页列表,则设置“set | more”)并确保您添加到文件中的内容是什么 .
至于向GUI应用程序添加环境变量,这通常是没有必要的,我想更多地了解您特别想要做些什么来更好地为您提供答案 .
不幸的是,这些答案都没有解决我遇到的具体问题 .
这是一个简单的解决方案,而不必乱用
bash
. 在我的情况下,它正在gradle
工作(Android Studio
) .顺便说一句,这些步骤与OSX有关(Mountain Lion 10.8.5)
打开终端 .
运行以下命令:
sudo nano /etc/paths
(或sudo vim /etc/paths
for vim)转到文件底部,然后输入要添加的路径 .
点击control-x退出 .
输入'Y'以保存修改后的缓冲区 .
打开一个新的终端窗口然后键入:
echo $PATH
您应该看到新路径附加到PATH的末尾
我从这篇文章中得到了这些细节:
http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q
我希望能帮助别人