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

背景

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

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

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

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


当前回答

可以通过两种方式永久设置$PATH。

设置指定用户的路径。 您可能需要在用户的主目录中的.bash_profile文件中创建条目。 例如,在我的情况下,我会在Tomcat用户配置文件*中设置java路径 echo "export PATH=$PATH:/ PATH /to/dir" >> /home/tomcat/.bash_profile . sh /home/tomcat/.bash_profile . sh 要为所有系统用户设置一个公共路径,可能需要这样设置: echo "export PATH=$PATH:/ PATH /to/dir" >> /etc/profile . sh /etc/profile . sh

其他回答

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

我的回答是关于在Ubuntu Linux (amd64)上设置Go环境。我曾经遇到过设置环境变量(GOPATH和GOBIN)路径的相同麻烦,每次在终端退出时丢失它,并使用source <file_name>重新构建它。

错误在于将路径(GOPATH和GOBIN)放在~/中。bash_profile文件。在浪费了几个小时之后,我发现解决方案是将GOPATH和GOBIN放在~/中。Bash_rc文件的格式如下:

export GOPATH=$HOME/go
export GOBIN=$GOPATH/bin
export PATH=$PATH:$GOPATH:$GOBIN

在这样做的过程中,Go安装工作得很好,没有路径丢失。

与此问题相关的原因是,对于非登录shell的设置,比如我们运行Go代码的Ubuntu终端或GNOME终端,是从~。/bash_rc文件和登录shell的设置是从~/中获取的。bash_profile文件。从~/。如果~/. Profile文件。Bash_profile文件不可达。

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

我认为最优雅的方式是:

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

(Ubuntu)

经过这么多的研究,我找到了一个简单的解决方案(我使用的是Elementary OS),灵感来自Flutter - Step by Step Installation on Linux - Ubuntu。

2 .执行以下命令,以编辑方式打开“。bashrc”文件。(你 也可以使用vi或任何其他编辑器)。 ~$ sudo nano ~/.bashrc 在文件末尾添加以下行并保存。 导出路径= " [FLUTTER_SDK_PATH] /颤振/ bin: $路径” 例如: 导出路径= " / home / rageshl / dev /颤振/ bin:美元路径”

我相信这是在Ubuntu发行版中在Flutter中设置路径的永久解决方案。