在 CentOS 中,让 env(环境变量)永久生效,取决于你希望对谁生效以及在什么场景下生效。下面按常见情况说明:
/etc/profile(登录 shell)sudo vi /etc/profile
在文件末尾添加:
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
保存后执行:
source /etc/profile
✅ 生效范围:所有用户登录时
❌ 对非登录 shell(如 cron)不一定生效
/etc/profile.d/(推荐)sudo vi /etc/profile.d/myenv.sh
内容:
export MY_VAR=value
赋予执行权限:
sudo chmod +x /etc/profile.d/myenv.sh
重新登录即可生效。
✅ 优点:结构清晰,便于管理
常见文件:
~/.bash_profile(推荐,CentOS 默认)~/.bashrc示例:
vi ~/.bash_profile
添加:
export PATH=$PATH:/your/path
生效:
source ~/.bash_profile
✅ 只对当前用户生效
✅ 登录 shell 使用 .bash_profile
✅ 非登录 shell 用 .bashrc
cron 不会读取 profile,需要:
* * * * * export VAR=value; /path/script.sh
或在脚本中 source:
source /etc/profile
在 service 文件中:
[Service]
Environment=VAR=value
或:
EnvironmentFile=/etc/sysconfig/myapp
| 方式 | 是否永久 | 范围 |
|---|---|---|
export VAR=value |
❌ 临时 | 当前 shell |
/etc/profile |
✅ | 所有用户 |
~/.bash_profile |
✅ | 当前用户 |
profile.d/*.sh |
✅ | 所有用户 |
echo $VAR
env | grep VAR
如果你能说明:
我可以给你更精确的配置方式。