如何将目录添加到 $PATH
在Ubuntu中,并使更改永久?
使用~/。配置文件设置$PATH
设置在的路径 .bash_profile
只会在bash登录shell中设置(bash -l
).如果你把你的路放进去 .profile
它将可用于您的完整桌面会话。 这意味着即使是metacity也会使用它。
例如 ~/.profile
:
if [ -d "$HOME/bin" ] ; then PATH="$PATH:$HOME/bin"fi
顺便说一下,您可以通过查看进程的环境来检查进程的PATH变量 /proc/[pid]/environ
(将[pid]替换为来自 ps axf
). 例如使用 grep -z "^PATH" /proc/[pid]/environ
注意事项:
bash
作为登录shell不解析 .profile
如果有的话 .bash_profile
或 .bash_login
存在。 从 man bash
:
它寻找~/。bash_profile,~/。bash_login,和~/。配置文件,以该顺序,并从存在且可读的第一个读取和执行命令。
查看 答案如下 有关资料 .pam_environment
,或 .bashrc
对于交互式非登录shell,或通过将脚本放入全局设置所有用户的值 /etc/profile.d/
或使用 /etc/X11/Xsession.d/
以影响显示管理器会话。
编辑 .bashrc
在您的主目录中,并添加以下行:
export PATH="/path/to/dir:$PATH"
您将需要来源您的 .bashrc
或注销/登录(或重新启动终端)以使更改生效。 来源你的 .bashrc
,只需输入
$ source ~/.bashrc
建议的地方来定义永久, 全系统 应用于所有用户的环境变量在:
/etc/environment
(这是默认的地方 PATH
被定义)
这将工作在桌面或控制台,gnome-终端或TTY,风雨无阻;)
-
要编辑,请打开终端并键入:
sudoedit /etc/environment
(或使用以下方法打开文件
sudo
在你最喜欢的文本编辑器中)
要使其在不重新启动的情况下工作,请运行 . /etc/environment
或 source /etc/environment
. 由于此文件只是一个简单的脚本,它将运行并将新路径分配给 PATH
环境变量。 检查运行 env
并查看 PATH
列表中的值。
相关:
我认为Ubuntu的规范方式是:
-
下创建一个新文件
/etc/profile.d/
sudo vi /etc/profile.d/SCRIPT_NAME.sh
-
加在那里:
export PATH="YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH"
-
并给它执行权限
sudo chmod a+x /etc/profile.d/SCRIPT_NAME.sh
对于完全的新手(像我一样)谁是更舒适的GUI:
- 打开你的
$HOME
文件夹。 - 前往 查看 → 显示隐藏文件 或按 Ctrl + H.
- 右键点击
.profile
并点击 使用文本编辑器打开. - 滚动到底部并添加
PATH="$PATH:/my/path/foo"
. - 保存。
- 注销并重新登录以应用更改(让Ubuntu实际加载
.profile
).
对于仅对特定用户可用的持久性环境变量。 我强烈推荐Ubuntu官方文档。
https://help.ubuntu.com/community/EnvironmentVariables
参考上面的文档,我已经设置了我的 Android SDK路径-工具 由:
- 创建
~/.pam_environment
主目录中的文件。 - 其中的内容是
PATH DEFAULT=${PATH}:~/android-sdk-linux/tools
. - 附加的自定义用户路径可以通过分隔路径与添加 冒号(:).
- 这需要 重新登入,这意味着您需要注销并登录回桌面环境。
把那条线放在你的 ~/.bashrc
档案。
每当你打开一个终端,它就会得到来源
编辑:根据下面的评论,对于一个更一般的设置,将适用于所有的炮弹(包括当你打 Alt-F2 在Unity中),将该行添加到您的 ~/.profile
档案。 可能不应该做这两个,因为路径将被添加两次到您的 PATH
环境,如果你打开一个终端。
要设置系统范围,请追加该行 export PATH=/path/you're/adding:$PATH
到最后 /etc/profile
.
若要仅为登录用户添加目录,请将同一行追加到 ~/.bash_profile
.
添加到.bashrc将工作,但我认为设置路径变量的更传统方式是在。通过添加以下行bash_profile。
PATH=$PATH:/my/path/fooexport PATH
根据 这个线程 看起来好像Ubuntu的行为与RedHat和克隆略有不同。
在终端机, cd
到 the_directory_you_want_to_add_in_the_path
echo "export PATH=$(pwd):\${PATH}" >> ~/.bashrc
这不是我的主意。 我发现这种方式导出路径在这个 这里的博客.
EnvironmentVariables - Community Help Wiki 你需要知道的一切。 我发现这里的很多输入都是不正确的,或者至少没有建议使用该方法。 这是一个很好的信息,可以让你根据你这样做的原因来确定在哪里修改你的环境变量,以及如何在不把一切都搞砸的情况下做到这一点(就像我按照前面提到的一些不好的建议所做的那样)。 再见,谢谢你的鱼!