有多种方法可以做到这一点。实际解决方案取决于目的。
变量值通常存储在分配列表或在系统或用户会话开始时运行的Shell脚本中。如果使用Shell脚本,则必须使用特定的Shell语法和/
export或
set命令。
系统范围
/etc/environment
唯一作业列表,允许引用。完善,用于将全系统目录像/usr/local/something/bin
到PATH
变量或定义JAVA_HOME
。由PAM和SystemD使用。/etc/environment.d/*.conf
唯一作业列表,允许引用。完善,用于将全系统目录像/usr/local/something/bin
到PATH
变量或定义JAVA_HOME
。可以将配置分为多个文件,通常每个工具(Java,Go,NodeJS)一个文件。由SystemD使用,在设计上不会将这些值传递给用户登录Shell。/etc/xprofile
启动X Window系统会话时执行的Shell脚本。将为每个登录X Window System的用户运行此命令。对于PATH
对每个用户都有效的条目,这是一个不错的选择/usr/local/something/bin
。该文件包含在其他脚本中,因此请使用POSIX Shell语法而不是用户Shell的语法。/etc/profile
和/etc/profile.d/*
Shell脚本。对于仅使用shell的系统,这是一个不错的选择。这些文件仅在登录模式下由Shell读取。/etc/<shell>.<shell>rc
。Shell脚本。这是一个糟糕的选择,因为它是特定于单个shell的。在非登录模式下使用。
用户会话
~/.pam_environment
。唯一作业列表,不允许引用。如果是X Window System会话或Shell,则在每个用户会话开始时由PAM加载。您不能引用其他变量,包括HOME
或PATH
因此用途有限。由PAM使用。~/.xprofile
Shell脚本。当用户登录到X Window System系统时,将执行此操作。此处定义的变量对每个X应用程序都是可见的。PATH
用诸如~/bin
或~/go/bin
或定义用户特定GOPATH
或的值扩展的完美选择NPM_HOME
。该文件包含在其他脚本中,因此请使用POSIX Shell语法而不是用户Shell的语法。通过快捷方式启动的图形文本编辑器或IDE将看到这些值。~/.profile
,~/.<shell>_profile
,~/.<shell>_login
shell脚本。仅对从终端或终端仿真器启动的程序可见。对于仅使用shell的系统来说,这是一个不错的选择。由Shell在登录模式下使用。~/.<shell>rc
。Shell脚本。这是一个糟糕的选择,因为它是特定于单个shell的。由Shell在非登录模式下使用。
笔记
Wayland上的Gnome启动用户登录Shell来获取环境。它有效地利用登录shell配置
~/.profile,
~/.<shell>_profile,
~/.<shell>_login文件。
说明书
- 环境
- 环境
- 重击
- 短跑
发行特定文档
- 的Ubuntu
- archlinux
有关
登录外壳程序和非登录外壳程序之间的区别?



