/etc/environment
和 /etc/profile
是 Linux 系统中用于定义环境变量和启动脚本的两个不同的配置文件。它们的作用和应用场景有所区别:
-
/etc/environment
:- 这是系统范围内的环境配置文件。
- 它是由 PAM (Pluggable Authentication Module) 模块读取的,适用于所有通过 PAM 的会话。
/etc/environment
的内容被解析为环境变量,但不被解释为脚本。环境变量设置为 KEY=“value” 的形式,没有导出(export)语句,每行一个变量定义。- 通常用于设置系统范围内的简单环境变量,这些变量对所有用户和守护进程均有效。
-
/etc/profile
:- 这是针对登录会话的全局初始化脚本,仅在启动登录 shell 时执行(如通过控制台、ssh 等登录系统)。
/etc/profile
是一个 shell 脚本,可以包含详细的编程逻辑,如条件语句等。- 通常在
/etc/profile
内部使用“export”命令来设置环境变量,并且其内容可以根据需要运行各种初始化命令。 - 它可能会调用其他脚本,比如
/etc/profile.d/*.sh
,以进一步进行环境或行为的定制化。
总结区别:
/etc/environment
用于定义全系统范围内必须的环境变量。/etc/profile
通常用于执行更复杂的初始化命令和环境设置,并且是特定于 shell 登录会话的。- 修改
/etc/environment
后通常需要重新登录或重启系统,而/etc/profile
对于新的登录会话立即生效。 /etc/profile
可以用于执行配置环境变量之外的其他任何启动命令或脚本。
因此,基于配置需求使用这两个文件时,要考虑其加载时机和针对性以确保环境变量和启动脚本按预期运行。