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

背景

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

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

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

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


当前回答

永久地添加到PATH变量中

全球:

echo "export PATH=$PATH:/new/path/variable" >> /etc/profile

本地(仅针对当前用户):

echo "export PATH=$PATH:/new/path/variable" >> ~/.profile

对于全局,请重新启动。对于本地,请重新登录。

例子

之前:

$ cat /etc/profile

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin

后:

$ cat /etc/profile

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin
export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

或者你可以编辑文件“profile”:

$ cat /etc/profile

#!/bin/sh

export PATH=/usr/bin:/usr/sbin:/bin:/sbin:/new/path/variable

另一种方式(感谢gniourf_gniourf):

echo 'PATH=$PATH:/new/path/variable' >> /etc/profile

你不应该在这里使用双引号!回声的出口 = $ PATH: /新/ PATH /变量”……顺便说一下,export关键字 是很可能无用的路径变量是很可能已经 标记为导出。——gniourf_gniourf

其他回答

最简单的方法是,

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

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

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

可以通过两种方式永久设置$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

对于Debian发行版,你必须:

编辑文件~/.bashrc。例如:vim ~/.bashrc add export PATH=$PATH:/ PATH /to/dir 然后重新启动计算机。注意,如果编辑文件~/. .Bashrc作为根,您添加的环境变量将只对根有效

我昨天在寻找一种方法将包含我自己的脚本的文件夹添加到PATH时偶然发现了这个问题-并且惊讶地发现我自己的~/。配置文件(在Linux Mint 18.1上)已经包含这个:

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

因此,我所要做的就是创建文件夹~/bin并将脚本放在那里。

我的回答是关于在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文件不可达。