在 CentOS 里永久配置环境变量(env),常用有以下几种方式,按作用范围由小到大说明,推荐按你需要的方式选择。
~/.bashrc(最常用)适合当前用户,登录或打开新 shell 自动生效。
vi ~/.bashrc
添加:
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
让配置立即生效:
source ~/.bashrc
✅ 适合:开发环境、普通用户
~/.bash_profile只在登录 shell(如 ssh 登录)时生效。
vi ~/.bash_profile
添加:
export ENV_VAR=value
生效:
source ~/.bash_profile
/etc/profile对所有用户、登录 shell 生效。
sudo vi /etc/profile
添加:
export GLOBAL_VAR=value
生效:
source /etc/profile
⚠️ 不推荐大规模使用,影响所有用户。
/etc/profile.d/ 下新建脚本(✅ 推荐)这是 CentOS 官方推荐方式。
sudo vi /etc/profile.d/myenv.sh
内容:
export MY_ENV=value
export PATH=/opt/app/bin:$PATH
赋予执行权限:
sudo chmod +x /etc/profile.d/myenv.sh
生效:
source /etc/profile
✅ 优点:
ENV_VAR=value command
例如:
JAVA_HOME=/usr/local/java java -version
如果你是为 systemd 服务配置环境变量:
sudo vi /etc/systemd/system/myapp.service
[Service]
Environment="JAVA_HOME=/usr/local/java"
Environment="PATH=/usr/local/java/bin:/usr/bin"
重载:
sudo systemctl daemon-reload
✅ bash vs sh
bashsh,~/.bashrc 不会生效✅ PATH 顺序
export PATH=/new/path:$PATH
✅ 引号问题
export VAR="value"
| 使用场景 | 推荐方式 |
|---|---|
| 当前用户 | ~/.bashrc |
| 所有用户 | /etc/profile.d/*.sh |
| 系统服务 | systemd Environment |
| 临时测试 | export |
如果你愿意,可以告诉我: