在Mac OS X Lion上设置环境变量
当有人说“编辑您的.plist文件”或“您的.profile”或“ .bash_profile”等时,这让我感到困惑。 我不知道这些文件在哪里,如果必须这样做怎么创建它们,等等,还有为什么似乎有这么多不同的文件(为什么?它们做不同的事情?)
因此,有人可以对以前的Windows用户非常耐心地解释一下吗(拼命想对OS X世界最初感到有些困惑的情况更加熟悉),该如何逐步执行此操作?
我需要同时为GUI应用程序和命令行应用程序设置变量,目前是需要变量的ant脚本,但是很可能还有其他需求。
请注意,我也有Lion,因为您对Googling的许多回答似乎对Lion来说已经过时了...
另外请注意,我使用终端机的经验几乎为零。 我愿意学习,但是请给新手解释一下...
#1楼
简化说明
这个帖子/问题有点陈旧,所以我将为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 / in emacs中键入/粘贴所有bash命令,保存并退出]
下次退出并重新加载终端时,它将加载所有bash首选项。 出于良好的考虑,通常最好将命令分成有用的文件名。 例如,在〜/ .bashrc内部,您应该有一个source ~/.bash_aliases
,并将所有别名命令放入〜/ .bash_aliases中。
#2楼
将路径变量添加到OS X Lion
这很简单,在终端为我工作:
$echo "export PATH=$PATH:/path/to/whatever" >> .bash_profile #replace "/path/to/whatever" with the location of what you want to add to your bash profile, i.e: $ echo "export PATH=$PATH:/usr/local/Cellar/nginx/1.0.12/sbin" >> .bash_profile
$. .bash_profile #restart your bash shell
此处也有类似的回复: http : //www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516
#3楼
更多细节,可能对某人有所帮助:
由于我自己的探索,我现在知道如何以8种不同方式中的7种来设置环境变量。 我试图让Envar进入我在Xcode下开发的应用程序。 我使用这些不同的方法来设置“ tracer” envar,以告诉我哪些方法将其纳入我的应用程序范围。 从下面可以看到,在Xcode中编辑“方案”以添加参数是可行的,就像“ putenv”一样。 在该范围内未设置的内容是:〜/ .MACOS / environment.plist,特定于应用程序的plist,.profile,并添加了一个构建阶段来运行自定义脚本(我在Xcode中找到了另一种设置方式[至少]但是忘记了我所说的示踪剂,现在找不到它;也许它在另一台机器上...)
GPU_DUMP_DEVICE_KERNEL为3
GPU_DUMP_TRK_ENVPLIST为(空)
GPU_DUMP_TRK_APPPLIST为(空)
GPU_DUMP_TRK_DOTPROFILE为(空)
GPU_DUMP_TRK_RUNSCRIPT为(空)
GPU_DUMP_TRK_SCHARGS为1
GPU_DUMP_TRK_PUTENV为1
...另一方面,如果我进入Terminal并说“ set”,似乎唯一得到的就是.profile中的那个(我本来以为它也会拾取environment.plist,所以我可以肯定的是,一旦我在Terminal看到了第二个示踪剂envar,那么从那以后可能有些奇怪了。漫长的一天....)
#4楼
echo $PATH
打印当前路径值
然后做vim ~/.bash_profile
并写
export PATH=$PATH:/new/path/to/be/added
在这里,您将追加到旧路径,因此保留旧路径并向其中添加新路径
然后做
source ~/.bash_profile
这将执行它并添加路径
然后再次检查
echo $PATH
#5楼
不幸的是,这些答案都无法解决我遇到的具体问题。
这是一个简单的解决方案,而无需弄乱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
我希望可以帮助别人
#6楼
在Mac OS上设置PATH环境变量
打开终端程序(默认在“应用程序/实用程序”文件夹中)。 运行以下命令
touch ~/.bash_profile; open ~/.bash_profile
这将在您的默认文本编辑器中打开文件。
以ANDROID SDK为例:
您需要将路径添加到Android SDK平台工具和工具目录。 在我的示例中,我将使用“ / Development / android-sdk-macosx”作为安装SDK的目录。添加以下行:
export PATH=${PATH}:/Development/android-sdk-macosx/platform-tools:/Development/android-sdk-macosx/tools
保存文件并退出文本编辑器。 执行您的.bash_profile以更新您的PATH。
source ~/.bash_profile
现在,每次打开终端程序时,PATH都会包含Android SDK。
#7楼
我在Maverics上遇到了Eclipse(不是从脚本启动,而是从GUI启动)的问题,它没有采用自定义PATH。 我尝试了上述所有方法,但均无济于事。 最终,我根据这里的提示找到了最简单的工作答案:
转到/Applications/eclipse/Eclipse.app/Contents文件夹
-
使用文本编辑器(或XCode)编辑Info.plist文件,为具有完整路径的环境变量添加LSEnvironment词典。 请注意,它还包括/ usr / bin等:
<dict> <key>LSEnvironment</key> <dict> <key>PATH</key> <string>/usr/bin:/bin:/usr/sbin:/sbin:/dev/android-ndk-r9b</string> </dict> <key>CFBundleDisplayName</key> <string>Eclipse</string> ...
-
为应用重新加载参数
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
重新启动Eclipse
#8楼
我走了白痴路线。 将这些添加到/ etc / profile的末尾
for environment in `find /etc/environments.d -type f`
do
. $environment
done
创建了一个文件夹/ etc / environments在其中创建了一个名为“ oracle”或“ whatever”的文件,并向其中添加了我需要全局设置的内容。
/ etc $ cat /etc/environments.d/Oracle
export PATH=$PATH:/Library/Oracle/instantclient_11_2
export DYLD_LIBRARY_PATH=/Library/Oracle/instantclient_11_2
export SQLPATH=/Library/Oracle/instantclient_11_2
export PATH=$PATH:/Library/Oracle/instantclient_11_2
export TNS_ADMIN=/Library/Oracle/instantclient_11_2/network/admin
#9楼
打开终端:
vi ~/.bash_profile
将更改应用到系统(无需重新启动计算机):
source ~/.bash_profile
(也可使用macOS Sierra 10.12.1)
#10楼
让我以一个非常多余的方式从我的个人示例中向您说明。
- 首先,在安装JDK之后,请确保已安装。
有时,与Windows不同,macOS或Linux会自动为您设置环境变量。 但这并非总是如此。 因此,让我们检查一下。 如果未设置环境变量,则回显$ JAVA_HOME之后的行将为空。 您的情况必须为空。
现在我们需要检查是否有bash_profile文件。 您看到在我的情况下我们已经有了bash_profile。 如果没有,我们必须创建一个bash_profile文件。
这是保存环境变量的文件。 如果您打开了一个新的bash_profile文件,则该文件必须为空。 就我而言,已经为python编程语言和Anaconda发行版设置了。 现在,我需要为Java添加环境变量,而这只是添加第一行。 您必须输入第一行VERBATIM。 仅第一行。 保存并关闭TextEdit。 然后关闭终端。
#11楼
第一步:打开~/.bash_profile
现在将打开一个文本编辑器:
步骤2:变量名应大写。 在此示例中,变量为NODE_ENV
第三步: export NODE_ENV=development
保存并关闭。
重新启动系统。
做完了
要检查环境变量:打开终端并输入
echo $NODE_ENV
#12楼
首先,要认识到OS X的一件事是它基于Unix。 这是.bash_profile的来源。在OS X中启动Terminal应用程序时,默认情况下会获得bash shell。 bash shell来自Unix,并且在加载时运行.bash_profile脚本。 您可以为用户修改此脚本以更改设置。 该文件位于:
~/.bash_profile
小牛更新
OS X Mavericks不使用environment.plist-至少不用于OS X Windows应用程序。 您可以对窗口应用程序使用启动的配置 。 仍然支持.bash_profile,因为它是Terminal中使用的bash shell的一部分。
仅限狮子和山狮
OS X窗口应用程序从您的environment.plist文件接收环境变量。 这可能就是您所说的“ .plist”文件的意思。 该文件位于:
~/.MacOSX/environment.plist
如果您对environment.plist文件进行了更改,则OS X Windows应用程序(包括Terminal应用程序)将设置这些环境变量。 您在.bash_profile中设置的任何环境变量只会影响bash shell。
通常,我只在.bash_profile文件中设置变量,而不更改.plist文件(或Mavericks上的启动文件)。 大多数OS X窗口化应用程序不需要任何自定义环境。 仅当应用程序实际需要特定的环境变量时,才更改environment.plist(或Mavericks上的启动文件)。
听起来您想要更改的是Environment.plist文件,而不是.bash_profile。
最后一件事,如果您查找这些文件,我认为您将找不到它们。 如果我没记错的话,它们不在我最初安装的Lion上。
编辑:这是一些创建plist文件的说明。
- 开启Xcode
- 选择文件->新建->新建文件...
- 在Mac OS X下,选择资源
- 选择一个plist文件
- 遵循其余提示
要编辑文件,可以按住Control键单击以获取菜单,然后选择“添加行”。 然后,您可以添加一个键值对。 对于环境变量,键是环境变量名称,值是该环境变量的实际值。
创建plist文件后,您可以随时使用Xcode对其进行修改。
#13楼
您的.profile
或.bash_profile
只是“主”文件夹中存在的文件。 如果打开Finder窗口并在“收藏夹”窗格中单击您的帐户名,则不会看到它们。 如果打开“终端”窗口并键入ls
列出文件,您仍然看不到它们。 但是,您可以在终端中使用ls -a
来找到它们。 或者,如果您打开喜欢的文本编辑器(因为OS X附带了TextEdit),请执行File-> Open,然后按Command + Shift + 。 并单击您的帐户名(主文件夹),您也会看到它们。 如果看不到它们,则可以在您喜欢的文本编辑器中创建一个。
现在,添加环境变量相对简单,并且在概念上与Windows十分相似。 在您的.profile
只需每行添加一个变量名称及其值,如下所示:
export JAVA_HOME=/Library/Java/Home
export JRE_HOME=/Library/Java/Home
等等
如果要修改“ PATH”变量,请确保包括已为您设置的系统默认PATH:
export PATH=$PATH:/path/to/my/stuff
现在这是古怪的部分,您可以打开一个新的Terminal窗口以使新变量生效,或者您需要键入.profile
或.bash_profile
来重新加载文件并将其内容应用于当前Terminal的环境。
您可以使用终端中的“ set”命令检查更改是否生效。 只需键入set
(或者如果希望使用分页列表,则输入set
set | more
),并确保已添加到文件中。
至于将环境变量添加到GUI应用程序中,通常这不是必需的,并且我想了解更多有关您正在具体尝试做的事情,以更好地为您提供答案。
#14楼
对我.launchd.conf
使用所需的变量创建一个.launchd.conf
:
setenv FOO barbaz
在登录时通过启动读取该文件。 您可以使用以下命令“即时”向正在运行的启动添加变量:
launchctl setenv FOO barbaz`
实际上, .launchd.cond
仅包含launchctl命令。
以这种方式设置的变量似乎在GUI应用程序中正确存在。
如果您正巧尝试以这种方式设置LANG或LC_变量,并且恰好在使用iTerm2,请确保在使用的配置文件的“终端”选项卡下禁用“自动设置区域设置变量”设置。 这似乎覆盖了launchd的环境变量,在我的情况下,是设置一个损坏的LC_CTYPE导致远程服务器上出现问题(已通过该变量)。
(但是,environment.plist似乎仍然可以在我的Lion上运行。您可以使用RCenvironment首选项窗格来维护文件,而无需手动编辑文件或所需的Xcode。仍然可以在Lion上运行,尽管它的最新更新来自Snow Leopard。时代。使其成为我个人偏爱的方法。)
#15楼
以下是有关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
,因此它可能有效,但也可能已弃用。
上一篇: c语言大小端如何判断以及转换详解
下一篇: 整形在内存中存储
推荐阅读
-
在Mac 上制作OS X 10.10 Yosemite U盘的图文教程
-
在Mac 上制作OS X 10.10 Yosemite U盘的图文教程
-
苹果Mac电脑怎么定时关机?在OS X上设定定时关机方法介绍
-
在MAC OS X上安装MYSQL
-
在MAC OS X上安装MYSQL
-
请教怎么在Mac OS X Yosemite 10.10.3上配置Apache+PHP+MySQL+Netbeans开发环境?用MAMP解决方案也不行
-
请教怎么在Mac OS X Yosemite 10.10.3上配置Apache+PHP+MySQL+Netbeans开发环境?用MAMP解决方案也不行
-
在MAC OS X上安装MYSQL_MySQL
-
在mac os x 10.9.2上安装nginx
-
在VirtualBox上安装Mac OS X虚拟机