在 CentOS 中修改 环境变量(env),常见做法取决于作用范围和生效时间。下面按常见场景给你一个完整说明(适用于 CentOS 7 / 8 / Stream)。
关闭终端后失效
export VAR_NAME=value
示例:
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
查看:
echo $JAVA_HOME
env
修改用户家目录下的配置文件:
~/.bashrc(最常用)vim ~/.bashrc
添加:
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
生效:
source ~/.bashrc
✅ 适合:交互式 shell、SSH 登录
~/.bash_profile(登录 shell)vim ~/.bash_profile
添加:
export PATH=$PATH:/opt/myapp/bin
生效:
source ~/.bash_profile
一般建议:
- 交互环境 →
.bashrc- 登录环境 →
.bash_profile
/etc/profilesudo vim /etc/profile
添加:
export GLOBAL_VAR=/opt/global
export PATH=$PATH:$GLOBAL_VAR/bin
生效:
source /etc/profile
⚠️ 会影响所有用户,谨慎修改
/etc/profile.d/*.shsudo vim /etc/profile.d/myenv.sh
内容:
#!/bin/bash
export MY_ENV=value
export PATH=$PATH:/usr/local/myapp/bin
赋权:
sudo chmod +x /etc/profile.d/myenv.sh
✅ 最规范、最安全的方式
export PATH=/new/path:$PATH
永久生效就写入上面任一配置文件。
env
printenv
echo $PATH
unset VAR_NAME
从对应配置文件中删除 export 行,然后:
source 文件名
如果是 systemd 服务,不能用 bash 配置:
sudo vim /etc/systemd/system/myapp.service
[Service]
Environment="JAVA_HOME=/usr/local/java"
Environment="PATH=/usr/local/java/bin:/usr/bin"
然后:
sudo systemctl daemon-reload
sudo systemctl restart myapp
| 场景 | 推荐文件 |
|---|---|
| 当前用户 | ~/.bashrc |
| 登录用户 | ~/.bash_profile |
| 所有用户 | /etc/profile.d/*.sh |
| 系统服务 | systemd unit 文件 |
如果你能告诉我:
我可以给你精确到命令级别的配置方案。