在Linux上,如何将一个目录添加到$PATH,以便在不同的会话中保持持久性?

背景

我试图添加一个目录到我的路径,所以它将永远在我的Linux路径。我试过了:

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

这是有效的,但是每当我退出终端并启动一个新的终端实例时,这个路径就丢失了,我需要再次运行导出命令。

我怎么做才能永久设置它呢?


当前回答

可以通过以下命令直接添加:

echo 'export PATH=$PATH:/new/directory' >> ~/.zshrc
source ~/.zshrc

其他回答

您需要将其添加到~/。Profile或~/。bashrc文件。(

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

取决于你在做什么,你也可能想要符号链接到二进制文件:

cd /usr/bin
sudo ln -s /path/to/binary binary-name

注意,这将不会自动更新会话剩余部分的路径。要做到这一点,你应该运行:

source ~/.profile 
or
source ~/.bashrc

您可以将这一行添加到控制台配置文件(例如,.bashrc或.profile)。

我认为最优雅的方式是:

将此添加到~/。bashrc文件。( 执行如下命令: 中~ / . bashrc 在里面添加你的路径: 导出路径= $路径:/ bin / opt /节点 源~ / . bashrc

(Ubuntu)

添加导出命令的文件取决于您是处于登录模式还是非登录模式。

如果您处于登录模式,您要查找的文件是/etc/bash或/etc/bash.bashrc。

如果处于非登录模式,则要查找文件/。Profile或/.profiles.d目录下的文件

上面提到的文件就是系统变量所在的地方。

在Ubuntu中,编辑/etc/environment。它的唯一目的是存储环境变量。$PATH变量最初定义在这里。

这是我的/etc/environment文件的粘贴:

PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"

所以你可以以根用户身份打开这个文件,添加任何你想要的东西。

为了立竿见影,

运行(以普通用户和root用户尝试):

source /etc/environment && export PATH

如果你使用Z shell (zsh),在/etc/zsh/zshenv文件的注释后面添加这一行:

source /etc/environment

我在Ubuntu 15.10 (Wily Werewolf)上遇到了这个小怪癖,但如果你的zsh没有得到正确的PATH,这可能是原因。