在Linux上,如何将一个目录添加到$PATH,以便在不同的会话中保持持久性?
背景
我试图添加一个目录到我的路径,所以它将永远在我的Linux路径。我试过了:
export PATH=$PATH:/path/to/dir
这是有效的,但是每当我退出终端并启动一个新的终端实例时,这个路径就丢失了,我需要再次运行导出命令。
我怎么做才能永久设置它呢?
在Linux上,如何将一个目录添加到$PATH,以便在不同的会话中保持持久性?
背景
我试图添加一个目录到我的路径,所以它将永远在我的Linux路径。我试过了:
export PATH=$PATH:/path/to/dir
这是有效的,但是每当我退出终端并启动一个新的终端实例时,这个路径就丢失了,我需要再次运行导出命令。
我怎么做才能永久设置它呢?
当前回答
我认为最优雅的方式是:
把这个加到~中。/ bashrc文件(: If [-d "new-path"];然后 = $ PATH:新路径 fi * ~ / . bashrc *来源
(Ubuntu)
其他回答
可以通过以下命令直接添加:
echo 'export PATH=$PATH:/new/directory' >> ~/.zshrc
source ~/.zshrc
你也可以永久地设置它,编辑这些文件之一:
/etc/profile(针对所有用户)
~ /。Bash_profile(用于当前用户)
~ /。Bash_login(用于当前用户)
~ /。配置文件(适用于当前用户)
也可以使用/etc/environment设置永久的PATH环境变量,但不支持变量展开。
提取自:Linux: Añadir ruta al PATH
在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作为根,您添加的环境变量将只对根有效
永久地添加到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