如何添加路径到PATH环境变量?


11

我想为PATH环境变量添加路径吗?

我已经尝试过export PATH=/mypath:$PATH并且可以正常工作。但是,下次我启动终端时,我的新路径不再是int PATH环境变量。

如何添加PATH环境变量的路径?下次我启动终端时也应该在那里。


我现在又遇到了问题,以前起作用的技巧似乎不再起作用。

我尝试过:

echo 'export GRADLE_HOME=/Users/jonas/gradle-1.2/' >> ~/.profile
echo 'export PATH=GRADLE_HOME/bin:$PATH' >> ~/.profile

添加两个环境变量。然后,我的~/.profile-file具有以下内容:

export GRADLE_HOME=/Users/jonas/gradle-1.2/
export PATH=GRADLE_HOME/bin:$PATH

但是,当我启动一个新的“ 终端”窗口并键入gradle(添加到的命令PATH)时,我收到一条消息,提示该命令不存在。如果我从中运行命令,/Users/jonas/gradle-1.2/bin效果很好!


如果您碰巧搞砸了,也请参见:重置PATH变量
JariKeinänen2011年

1
PATH(第二次导出)的分配应与$ GRADLE_HOME
nohillside

Answers:


5

echo 'export PATH=/my/path:$PATH' >> ~/.bash_profile 应该做的把戏!

如果您使用echo 'export PATH=/my/path:$PATH' > ~/.bash_profile或任何此类变体,则将覆盖您个人资料的内容!


9

终端打开时,OSX依次读取以下文件:

/etc/profile
~/.bash_profile
~/.bash_login   
~/.profile     

因此,将您的路径添加到其中之一中。我通常会添加~/.bash_profile


2
谢谢,我用过echo 'export PATH=/mypath:$PATH' >> ~/.profile
乔纳斯(Jonas)

3

除了@RobZolkos提到的位置外,登录外壳程序还将查找/etc/paths和其中的文件/etc/paths.d/。这些文件中每行一个路径条目。

/etc/profile手册页path_helper


好,谢谢!但是最大的问题是如何添加路径。但我发现echo 'export PATH=/mypath:$PATH' >> ~/.profile
乔纳斯(Jonas)

@Jonas:我意识到您的问题已经解决。我的回答旨在使将来的读者受益,因此他们可以看到所有可用的选项。
Harald Hanche-Olsen 2011年

2

但是,对于MacOS X Catalina用户而言,旧问题是:

创建/编辑~/.zshenv

# comment for yourself
PATH="$PATH:to/your/path"

请注意,修改PATH~/.zprofile~/.zshrc不正确的,它应该是~/.zshenv

如果您需要在之前添加一些内容PATH,请进一步创建/编辑~/.zprofile

# apply the prepend to PATH
[[ -r ~/.zshenv ]] && source ~/.zshenv
# remove duplicate in PATH
typeset -U PATH

参考:http: //zsh.sourceforge.net/Intro/intro_3.html


“如果您需要添加到PATH”是什么意思,为什么还不能这样做.zshenv呢?
nohillside

@nohillside:对不起,我的语法不好,但是很好的问题。如果您尝试在前面加上东西向PATH~/.zshenv通过PATH="to/your/path:$PATH",而无需在行~/.zprofile,它不会工作。某些呼叫path_helper会将那些移动/usr/local/bin/:/usr/bin:...PATH
下雨

简而言之,这是加载顺序的问题。path_helper将在之后~/.zshenv但之前执行~/.zproflie。从今天的研究中,我建议使用symlink而不是Modify PATH,这要简单得多。
下雨

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.