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

背景

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

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

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

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


当前回答

假设你运行的是macOS。您有一个信任的二进制文件,并希望在整个系统中可用,但不一定希望将二进制文件所在的目录添加到PATH中。

您可以选择复制/移动二进制文件到/usr/local/bin,它应该已经在您的PATH中。这将使二进制可执行文件与您在终端中已经访问的任何其他二进制文件一样。

其他回答

本地用户可在CentOS或redhat Linux (RHEL)上使用:

echo $"export PATH=\$PATH:$(pwd)" >> ~/.bash_profile

这将当前目录(或者您可以使用另一个目录)添加到PATH。这使它成为永久的,但它在下一次用户登录时生效。

如果你不想重新登录,那么你可以使用:

source ~/.bash_profile

这将重新加载#用户特定环境和启动程序。该注释出现在.bash_profile文件中。

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

对于Debian发行版,你必须:

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

我认为最优雅的方式是:

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

(Ubuntu)

我昨天在寻找一种方法将包含我自己的脚本的文件夹添加到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并将脚本放在那里。