首页/系统/信创系统运维速查/环境变量与 profile 配置
命令与包管理65 条

环境变量与 profile 配置

环境变量持久化位置要分清:/etc/profile.d 全局、~/.bashrc 交互 shell、~/.bash_profile 登录 shell;放错位置是“命令在面板里生效、SSH 里没有”的根因。

信创系统运维速查系统更新于 2026-10-12
全局/etc/profile、/etc/profile.d/*.sh
用户~/.bashrc(交互)、~/.bash_profile(登录)
临时export 仅当前会话

全局配置示例

全局配置示例
sudo tee /etc/profile.d/app-env.sh >/dev/null <<'EOF'
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk
export PATH=$JAVA_HOME/bin:$PATH
EOF
source /etc/profile.d/app-env.sh
source /etc/profile.d/app-env.sh 2>/dev/null; echo $JAVA_HOME
systemd 服务不读 profile,服务用的环境变量要写在 unit 的 Environment= 或 EnvironmentFile。

易错点

  • 非交互 shell(脚本/cron/systemd)不加载 .bashrc,别把服务依赖变量写在那里
  • profile.d 脚本要控制权限避免被非授权写入,全局变量影响所有用户

数据来源与参考

  • Bash 手册
  • systemd 环境变量文档
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌