在Linux上,如何将一个目录添加到$PATH,以便在不同的会话中保持持久性?
背景
我试图添加一个目录到我的路径,所以它将永远在我的Linux路径。我试过了:
export PATH=$PATH:/path/to/dir
这是有效的,但是每当我退出终端并启动一个新的终端实例时,这个路径就丢失了,我需要再次运行导出命令。
我怎么做才能永久设置它呢?
在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,这可能是原因。
其他回答
添加永久路径的一种方法是:
cd /etc/profile.d
touch custom.sh
vi custom.sh
export PATH=$PATH:/path according to your setting/
重启你的电脑,开始吧;路径将永远存在。
修改“/etc/profile”文件: vi / etc / profile 按“I”键进入编辑模式,将光标移至文件末尾。额外的条目: 导出路径= $路径:/道路/ / dir; 按“Esc”键退出编辑模式,并按“:wq”保存文件。 使配置有效 源/ etc / profile 解释: 配置文件适用于所有用户。如果希望它仅对活动用户有效,请更改“。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
经过这么多的研究,我找到了一个简单的解决方案(我使用的是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中设置路径的永久解决方案。
有很多种方法。实际的解决方案取决于目的。
变量值通常存储在赋值列表中或在系统或用户会话开始时运行的shell脚本中。对于shell脚本,您必须使用特定的shell语法和导出或设置命令。
系统范围
/etc/environment List of unique assignments. Allows references. Perfect for adding system-wide directories like /usr/local/something/bin to PATH variable or defining JAVA_HOME. Used by PAM and systemd. /etc/environment.d/*.conf List of unique assignments. Allows references. Perfect for adding system-wide directories like /usr/local/something/bin to PATH variable or defining JAVA_HOME. The configuration can be split into multiple files, usually one per each tool (Java, Go, and Node.js). Used by systemd that by design do not pass those values to user login shells. /etc/xprofile Shell script executed while starting X Window System session. This is run for every user that logs into X Window System. It is a good choice for PATH entries that are valid for every user like /usr/local/something/bin. The file is included by other script so use POSIX shell syntax not the syntax of your user shell. /etc/profile and /etc/profile.d/* Shell script. This is a good choice for shell-only systems. Those files are read only by shells in login mode. /etc/<shell>.<shell>rc. Shell script. This is a poor choice because it is single shell specific. Used in non-login mode.
用户会话
~/.pam_environment. List of unique assignments, no references allowed. Loaded by PAM at the start of every user session irrelevant if it is an X Window System session or shell. You cannot reference other variables including HOME or PATH so it has limited use. Used by PAM. ~/.xprofile Shell script. This is executed when the user logs into X Window System system. The variables defined here are visible to every X application. Perfect choice for extending PATH with values such as ~/bin or ~/go/bin or defining user specific GOPATH or NPM_HOME. The file is included by other script so use POSIX shell syntax not the syntax of your user shell. Your graphical text editor or IDE started by shortcut will see those values. ~/.profile, ~/.<shell>_profile, ~/.<shell>_login Shell script. It will be visible only for programs started from terminal or terminal emulator. It is a good choice for shell-only systems. Used by shells in login mode. ~/.<shell>rc. Shell script. This is a poor choice because it is single shell specific. Used by shells in non-login mode.
笔记
Wayland上的GNOME启动一个用户登录shell来获取环境。它有效地使用登录shell配置~/。简介~ /。<壳> _profile ~ /。<壳> _login文件。
手册页
环境 环境。d https://linux.die.net/man/1/environment.d bash 破折号
特定的文档
Ubuntu Arch Linux
登录Shell和非登录Shell的区别?