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

背景

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

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

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

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


当前回答

在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,这可能是原因。

其他回答

最简单的方法是,

PATH="<directory you want to include>:$PATH"

在主目录下的。bashrc文件中。

即使你关闭终端或重启电脑,它也不会被重置。它是永久性的。

在/etc/profile中添加脚本[name_of_script].shD文件夹用的行:

export PATH=$PATH:/dir

/etc/profile中的每个脚本D文件夹在登录时由/etc/profile自动执行。

修改“/etc/profile”文件: vi / etc / profile 按“I”键进入编辑模式,将光标移至文件末尾。额外的条目: 导出路径= $路径:/道路/ / dir; 按“Esc”键退出编辑模式,并按“:wq”保存文件。 使配置有效 源/ etc / profile 解释: 配置文件适用于所有用户。如果希望它仅对活动用户有效,请更改“。bashrc”(文件。

添加永久路径的一种方法是:

cd /etc/profile.d
touch custom.sh
vi custom.sh 
export PATH=$PATH:/path according to your setting/

重启你的电脑,开始吧;路径将永远存在。

这是一行代码。它在.bashrc中添加了一行。这一行将检查目录是否已经添加到路径中,如果没有则追加。这将防止每次源.bashrc时在该路径中复制您的目录。

echo "[[ \":\$PATH:\" != *\":$(pwd)/path/to/add:\"* ]] && export PATH=\"\${PATH:+\${PATH}}:$(pwd)/path/to/add\"" >> ~/.bashrc

source ~/.bashrc