在 CentOS 中,环境变量的设置位置取决于作用范围(系统级 / 用户级)和使用场景(登录 shell / 非登录 shell / 服务)。下面按常见情况说明:
~/.bash_profile
~/.bash_login
~/.profile
CentOS 默认读取顺序:
.bash_profile → .bash_login → .profile
✅ 最常用:
vi ~/.bash_profile
添加:
export JAVA_HOME=/usr/local/java
export PATH=$PATH:$JAVA_HOME/bin
生效:
source ~/.bash_profile
~/.bashrc
适用于:
示例:
vi ~/.bashrc
export PATH=$PATH:/your/path
生效:
source ~/.bashrc
/etc/profile
或更好方式(CentOS 推荐):
/etc/profile.d/*.sh
✅ 推荐做法:
vi /etc/profile.d/myenv.sh
内容:
export PATH=$PATH:/opt/app/bin
赋权:
chmod +x /etc/profile.d/myenv.sh
/etc/bashrc
(影响所有用户的 bash)
/etc/systemd/system/xxx.service
在 [Service] 中:
Environment=JAVA_HOME=/usr/local/java
Environment=PATH=/usr/local/bin:/usr/bin
重新加载:
systemctl daemon-reload
export PATH=$PATH:/tmp/test
⚠️ 关闭终端后失效
env
echo $PATH
| 场景 | 文件 |
|---|---|
| 当前用户登录 | ~/.bash_profile |
| 当前用户终端 | ~/.bashrc |
| 所有用户 | /etc/profile.d/*.sh |
| 系统服务 | systemd unit |
如果你能说明:
✅ 是 用户还是系统
✅ 是 命令、脚本还是服务
✅ CentOS 版本(6 / 7 / 8 / Stream)
我可以给你更精确的配置示例。