当前位置: 首页>>技术教程>>正文


如何将目录添加到PATH?

,

问题描述

如何在Ubuntu中将目录添加到$PATH中并使更改永久化?

最佳解决方案

使用〜/.profile来设置$ PATH

.bash_profile中设置的路径只能在bash登录shell(bash -l)中设置。如果您将自己的路径放在.profile中,它将可用于完整的桌面会话。这意味着即使是元城将会使用它。

例如~/.profile

if [ -d "$HOME/bin" ] ; then
  PATH="$PATH:$HOME/bin"
fi

顺便说一下,您可以通过查看/proc/[pid]/environ中的环境来检查进程的PATH变量。 (用ps axf中的编号替换[pid])

注意:

如果存在.bash_profile.bash_login,则bash作为登录shell不会解析.profile。来自man bash

it looks for ~/.bash_profile, ~/.bash_login, and ~/.profile, in that order, and reads and executes commands from the first one that exists and is readable.

有关.pam_environment的信息,请参阅answers below,或者对于交互式non-login shell ,请参阅.bashrc,或者通过将脚本放入/etc/profile.d/或使用/etc/X11/Xsession.d/影响显示管理器会话来为所有用户全局设置该值。

次佳解决方案

在您的主目录中编辑.bashrc并添加以下行:

export PATH="/path/to/dir:$PATH"

您将需要获取.bashrc或注销/登录(或重新启动终端)以使更改生效。要输入您的.bashrc,只需输入

$ source ~/.bashrc

第三种解决方案

定义适用于所有用户的永久system-wide环境变量的推荐位置在:

/etc/environment

(这是默认的PATH定义的地方)

这可以在桌面或控制台,gnome-terminal或TTY,雨或闪耀;)

  • 要编辑,请按Alt + F2并键入:

    gksudo gedit /etc/environment
    

    (或在您最喜欢的文本编辑器中使用sudo打开文件)

要执行更改,请运行. /etc/environment。由于该文件只是一个简单的脚本,它将运行并将新路径分配给PATH环境变量。检查运行环境并查看清单中的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的全新手(比如我):

  1. 打开您的$HOME文件夹。

  2. 转到查看→显示隐藏文件或按Ctrl + H

  3. 右键单击.profile,然后单击使用文本编辑器打开。

  4. 滚动到底部并添加PATH="$PATH:/my/path/foo"

  5. 保存。

  6. 注销并重新登录以应用更改(让Ubuntu实际加载.profile)。

第六种方案

仅适用于特定用户的持久性环境变量。我强烈推荐Ubuntu官方文档。

https://help.ubuntu.com/community/EnvironmentVariables

参考上面的文档,我已经通过以下方式设置了我的Android SDK path-tools:

  1. 在主目录中创建~/.pam_environment文件。

  2. 其内容是PATH DEFAULT=${PATH}:~/android-sdk-linux/tools

  3. 可以通过用冒号(:)分隔路径来添加额外的自定义用户路径。

  4. 这需要re-login,这意味着您需要log-out和log-in回到桌面环境。

第七种方案

将该行放入您的~/.bashrc文件中。

无论何时您打开终端,它都会来源

编辑:基于下面的评论,对于适用于所有shell的更一般设置(包括当您在Unity中打AltF2时),将该行添加到您的~/.profile文件中。但是可能不应该这样做,因为如果打开终端,路径将被添加两次到PATH环境。

第八种方案

要设置系统范围,请将export PATH=/path/you're/adding:$PATH行追加到/etc/profile的末尾。

要仅为logged-in用户添加目录,请将同一行附加到~/.bash_profile

第九种方案

将它添加到.bashrc中将会起作用,但我认为通过添加以下几行来设置路径变量的更传统方式是.bash_profile。

PATH=$PATH:/my/path/foo
export PATH

根据this thread,它看起来好像Ubuntu的行为与RedHat和克隆略有不同。

第十种方案

sudo vi /etc/profile.d/SCRIPT_NAME.sh

在那里添加

export PATH=YOUR_PATH_WITHOUT_TRAILING_SLASH:$PATH

参考资料

本文由Ubuntu问答整理, 博文地址: https://ubuntuqa.com/article/19.html,未经允许,请勿转载。