在Linux上,如何将目录添加到$PATH中,使其在不同会话中保持持久性?
我试图添加一个目录到我的路径,所以它将永远在我的Linux路径。我尝试过:
export PATH=$PATH:/path/to/dir
这是有效的,但是每次我退出终端并启动一个新的终端实例时,这个路径都会丢失,我需要再次运行导出命令。
我怎么做才能永久设置?
在Ubuntu中,编辑/etc/环境
。它的唯一目的是存储环境变量。这里最初定义了$PATH变量。
这是我的/etc/环境
文件中的粘贴:
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"
因此,您只需以root用户身份打开此文件,然后添加所需的任何内容。
为了立竿见影的效果,
运行(以普通用户和root用户身份尝试):
source /etc/environment && export PATH
如果使用Z shell(zsh
),请在/etc/zsh/zshenv
文件中的注释后面添加此行:
source /etc/environment
我在Ubuntu上遇到了这个小怪癖
有多种方法可以做到这一点。实际解决方案取决于目的。
变量值通常存储在分配列表或在系统或用户会话开始时运行的shell脚本中。对于shell脚本,必须使用特定的shell语法和export
或set
命令。
>
/etc/环境. d/*. conf
唯一赋值列表。允许引用。非常适合添加系统范围的目录,如/usr/local/某物/bin
到PATH
变量或定义JAVA_HOME
。配置可以分成多个文件,通常每个工具一个(Java、Go和Node.js)。通过设计不将这些值传递给用户登录外壳。
/etc/xprofile
启动X Window系统会话时执行的Shell脚本。这是为每个登录到X Window系统的用户运行的。对于对每个用户都有效的/usr/local/something/bin
条目,它是一个很好的选择。该文件包含在其他脚本中,因此请使用POSIX shell语法,而不是用户shell的语法。
/etc/profile
和/etc/profile。d/*
Shell脚本。对于纯shell系统来说,这是一个很好的选择。在登录模式下,Shell只能读取这些文件。
/etc/
>
~/。pam_环境
。唯一分配列表,不允许引用。如果是X Window系统会话或shell,则在每个用户会话开始时由PAM加载。您不能引用其他变量,包括HOME
或PATH
,因此它的用途有限。由帕姆使用。
~/。xprofile
Shell脚本。这是在用户登录X Window系统时执行的。这里定义的变量对每个X应用程序都是可见的。使用~/bin
或~/go/bin
等值扩展路径
,或定义用户特定的GOPATH
或NPM\u HOME
的完美选择。该文件包含在其他脚本中,因此请使用POSIX shell语法,而不是用户shell的语法。通过快捷方式启动的图形文本编辑器或IDE将看到这些值。
~/。配置文件
,~/。
~/。
Wayland上的GNOME启动用户登录shell以获取环境。它有效地使用了登录shell配置
~/。配置文件
,~/。
环境
- 环境. dhttps://linux.die.net/man/1/environment.d
- bash
- 破折号
Ubuntu
登录Shell和非登录Shell之间的区别?
您需要将其添加到您的~/. file
或~/. bashrc
文件中。
export PATH="$PATH:/path/to/dir"
根据您所做的工作,您可能还希望符号链接到二进制文件:
cd /usr/bin
sudo ln -s /path/to/binary binary-name
请注意,这不会自动更新会话剩余部分的路径。为此,您应该运行:
source ~/.profile
or
source ~/.bashrc
问题内容: 我试图将目录添加到我的路径,以便它始终位于我的Linux路径中。我试过了: 这可行,但是每次我退出终端并启动新的终端实例时,此路径都会丢失,因此我需要再次运行export命令。 我该如何做才能将其永久设置? 问题答案: 有多种方法可以做到这一点。实际解决方案取决于目的。 变量值通常存储在分配列表或在系统或用户会话开始时运行的Shell脚本中。如果使用Shell脚本,则必须使用特定的Sh
问题内容: 通过MySQL命令行客户端,我试图设置全局mysql_mode: 这适用于当前会话,但是在我重新启动服务器后,sql_mode返回其默认值:’‘,一个空字符串。 如何将sql_mode永久设置为TRADITIONAL? 如果相关,MySQL是WAMP软件包的一部分。 谢谢。 问题答案: 将此添加到您的my.cnf文件(如果使用Windows,则将其添加到my.ini): 并重新启动服务
问题内容: 我试图永久设置DatePickerDialog标题时遇到问题。 DatePickerFragment.java MainActivity.java 当我单击按钮DatePickerDialog时,对话框标题为“设置日期”,但是当我更改日期时,标题包含选定的日期,而不是“设置日期”。如何永久设置此对话框标题? 经过API 8-10测试。 在此先感谢您,对不起我的英语。帕特里克 问题答案:
问题内容: 如何设置“ curl”以在终端中永久使用代理服务器? 问题答案: 您可以在〜/ .bashrc文件中创建别名: 另一个解决方案是使用(也许是更好的解决方案)文件(如果文件不存在,则创建它):
我正在使用my.conf文件中的default_time_zone='+00:00'并重新启动mysql服务器。但默认时区仍然显示系统。
我尝试了所有我能在网上找到的方法,但没有一个有效。 我想永久地设置和环境变量,以便在IntelliJ中可以发出类似“mvn”的命令。 我已将脚本写入如下所示:屏幕截图 但在我重新启动Mac并发出echo$JAVA_HOME后,输出仍然是空的。 我也尝试了如这个回答所说,但也不起作用。 有人能帮帮我吗?提前感谢!