And*_*ers 527 macos environment-variables osx-lion
当有人说"编辑您的.plist文件"或"您的.profile"或".bash_profile"等时,这只会让我感到困惑.我不知道这些文件在哪里,如果我必须这样做,如何创建它们等,以及为什么似乎有这么多不同的(为什么?他们做不同的事情?)
那么,有人可以非常耐心地向以前的Windows用户解释(想要更加熟悉令人愉快的,如果最初有些令人困惑的OS X世界)如何一步一步地做到这一点?
我需要为GUI应用程序和命令行应用程序设置变量,目前它是需要变量的ant脚本,但很可能还有其他需求.
请注意我也有狮子,因为谷歌的许多答案似乎已经过时了......
另请注意,我几乎没有使用终端的经验.我愿意学习,但请为新手解释...
Dav*_*d V 401
首先,要认识到OS X的一点是它是在Unix上构建的.这就是.bash_profile的用武之地.当您在OS X中启动终端应用程序时,默认情况下会获得一个bash shell.bash shell来自Unix,当它加载时,它运行.bash_profile脚本.您可以修改此脚本以供您的用户更改您的设置.该文件位于:
~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
小牛队的更新
OS X Mavericks不使用environment.plist - 至少不适用于OS X Windows应用程序.您可以对窗口化应用程序使用launchd配置..bash_profile仍然受支持,因为它是终端中使用的bash shell的一部分.
狮子和山狮只
OS X窗口应用程序从environment.plist文件接收环境变量.这可能就是".plist"文件的含义.该文件位于:
~/.MacOSX/environment.plist
Run Code Online (Sandbox Code Playgroud)
如果您对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.
编辑:以下是创建plist文件的一些说明.
要编辑文件,可以按住Control键单击以获取菜单,然后选择"添加行".然后,您可以添加键值对.对于环境变量,键是环境变量名称,值是该环境变量的实际值.
创建plist文件后,您可以使用Xcode打开它以随时修改它.
tok*_*kov 222
您.profile或者.bash_profile只是"home"文件夹中存在的文件.如果您打开Finder窗口并在"收藏夹"窗格中单击您的帐户名称,您将看不到它们.如果您打开终端窗口并键入ls列出文件,您仍然无法看到它们.但是,您可以ls -a在终端中使用它们找到它们.或者,如果您打开自己喜欢的文本编辑器(比如TextEdit,因为它附带OS X)并执行文件 - >打开然后按Command+ Shift+ .并单击您的帐户名称(主文件夹),您也会看到它们.如果您没有看到它们,则可以在您喜欢的文本编辑器中创建一个.
现在,添加环境变量相对简单,并且在概念上与windows非常相似.在你.profile刚刚添加,每行一个,变量名称及其值如下:
export JAVA_HOME=/Library/Java/Home
export JRE_HOME=/Library/Java/Home
Run Code Online (Sandbox Code Playgroud)
等等
如果要修改"PATH"变量,请确保包含已为您设置的系统默认PATH:
export PATH=$PATH:/path/to/my/stuff
Run Code Online (Sandbox Code Playgroud)
现在这里是古怪的部分,你可以打开一个新的终端窗口让新变量生效,或者你需要输入.profile或.bash_profile重新加载文件并将内容应用到你当前的终端环境.
您可以使用终端中的"set"命令检查更改是否生效.只需键入set(或者set | more如果您更喜欢分页列表)并确保您添加到文件中的内容就在那里.
至于向GUI应用程序添加环境变量,这通常是没有必要的,我希望更多地了解您特别想要做的事情,以便更好地为您提供答案.
小智 76
以下是有关Lion OS 10.7.x中PATH变量的更多信息:
如果需要全局设置PATH,则系统按以下顺序构建PATH:
/private/etc/paths每行一个路径/private/etc/paths.d.该文件夹中的每个文件都可以包含多个路径,每行一个路径.加载顺序首先由文件名确定,然后由文件中的行顺序决定.setenv PATH语句/private/etc/launchd.conf,它将该路径附加到已在#1和#2中构建的路径(您不能使用$ PATH来引用到目前为止已构建的PATH变量).但是,考虑到其他两个选项,在此设置PATH是完全没必要的,尽管这是可以为所有用户设置其他全局环境变量的地方.这些路径和变量由所有用户和应用程序继承,因此它们是真正的全局 - 注销并且不会重置这些路径 - 它们是为系统构建的,并且在任何用户有机会登录之前创建,因此对这些更改需要重新启动系统才能生效.
顺便说一下,OS 10.7.x Lion的全新安装没有environment.plist我能找到的,所以它可能有用,但也可能会被弃用.
lea*_*_19 51
echo $PATH
Run Code Online (Sandbox Code Playgroud)
它打印当前路径值
然后去vim ~/.bash_profile写
export PATH=$PATH:/new/path/to/be/added
Run Code Online (Sandbox Code Playgroud)
在这里,您将附加到旧路径,因此保留旧路径并添加新路径
然后做
source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
这将执行它并添加路径
然后再次检查
echo $PATH
Run Code Online (Sandbox Code Playgroud)
wir*_*d00 31
不幸的是,这些答案都没有解决我遇到的具体问题.
这是一个简单的解决方案,无需捣乱bash.在我的情况下,它开始gradle工作(for Android Studio).
顺便说一句,这些步骤与OSX有关(Mountain Lion 10.8.5)
运行以下命令:
sudo nano /etc/paths(或sudo vim /etc/paths为vim)

打开一个新的终端窗口然后键入:
echo $PATH
您应该看到新路径附加到PATH的末尾
我从这篇文章中得到了这些细节:
http://architectryan.com/2012/10/02/add-to-the-path-on-mac-os-x-mountain-lion/#.UkED3rxPp3Q
我希望能帮助别人
vol*_*ron 23
这篇文章/问题有点旧,所以我将回答OS X Lion用户的简化版本.默认情况下,OSX Lion没有以下任何文件:
最多,如果你在终端中做了什么,你可能会看到〜/ .bash_history
您必须创建该文件以设置默认的bash命令(通常在〜/ .bashrc中).要做到这一点,请使用任何类型的编辑器,尽管在终端中执行它更简单:
source ~/.bashrcCtrl + x Ctrl + s(保存文件)Ctrl + x Ctrl + c(关闭emacs)下次退出并重新加载终端时,它应该加载所有bash首选项.为了更好地衡量,将命令分成有用的文件名通常是个好主意.例如,在〜/ .bashrc中,你应该有一个source ~/.bash_aliases并将所有别名命令放在〜/ .bash_aliases中.
Gil*_*aro 18
对我有用的是.launchd.conf用我需要的变量创建一个:
setenv FOO barbaz
Run Code Online (Sandbox Code Playgroud)
此文件在登录时由launchd读取.您可以使用以下命令将"动态"变量添加到正在运行的launchd中:
launchctl setenv FOO barbaz`
Run Code Online (Sandbox Code Playgroud)
实际上,.launchd.cond只需包含launchctl命令.
以这种方式设置的变量似乎正确地存在于GUI应用程序中.
如果您碰巧尝试以这种方式设置LANG或LC_变量,而您恰好使用iTerm2,请确保在您正在使用的配置文件的"终端"选项卡下禁用"自动设置区域设置变量"设置.这似乎覆盖了launchd的环境变量,在我的例子中是设置了一个损坏的LC_CTYPE导致远程服务器上的问题(已经传递了变量).
(环境.plist似乎仍然可以在我的Lion上运行.你可以使用RCenvironment首选项窗格来维护文件,而不是手动编辑它或需要Xcode.似乎仍在使用Lion,尽管它的最后一次更新来自Snow Leopard时代.这是我个人喜欢的方法.)
Cha*_*JRA 14
打开终端程序(默认位于Applications/Utilites文件夹中).运行以下命令
touch ~/.bash_profile; open ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
这将在您的默认文本编辑器中打开该文件.
以ANDROID SDK为例:
您需要添加Android SDK平台工具和工具目录的路径.在我的示例中,我将使用"/ Development/android-sdk-macosx"作为安装SDK的目录.添加以下行:
export PATH=${PATH}:/Development/android-sdk-macosx/platform-tools:/Development/android-sdk-macosx/tools
Run Code Online (Sandbox Code Playgroud)
保存文件并退出文本编辑器.执行.bash_profile以更新PATH.
source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
现在每次打开终端程序时,PATH都会包含Android SDK.
小智 11
这非常直接,在我的终端工作:
$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
Run Code Online (Sandbox Code Playgroud)
类似的回应如下:http://www.mac-forums.com/forums/os-x-operating-system/255324-problems-setting-path-variable-lion.html#post1317516
开放式终端:
vi ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
应用更改到系统(无需重启计算机):
source ~/.bash_profile
Run Code Online (Sandbox Code Playgroud)
(也适用于macOS Sierra 10.12.1)
我在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>
...
Run Code Online (Sandbox Code Playgroud)使用重新加载app的参数
/System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.fra??mework/Support/lsregister -v -f /Applications/eclipse/Eclipse.app
Run Code Online (Sandbox Code Playgroud)重启Eclipse
让我以非常冗余的方式从我的个人例子中说明你.

有时,与Windows不同,macOS或Linux会自动为您设置环境变量.但事实并非如此.所以让我们检查一下.
如果未设置环境变量,echo $ JAVA_HOME之后的行将为空.在你的情况下它必须是空的.
现在我们需要检查是否有bash_profile文件.
你看到我的情况下我们已经有了bash_profile.如果不是,我们必须创建一个bash_profile文件.
这是保存环境变量的文件.如果您已打开新的bash_profile文件,则该文件必须为空.在我的例子中,它已经设置为python编程语言和Anaconda发行版.现在,我需要为Java添加环境变量,这只是添加第一行.你必须输入第一行VERBATIM.只是第一行.保存并关闭TextEdit.然后关闭终端.

| 归档时间: |
|
| 查看次数: |
823597 次 |
| 最近记录: |