在 CentOS 里“配置 env(环境变量)”常见有几种方式,取决于作用范围(当前用户 / 所有用户 / 某个服务)和是否永久生效。下面按使用场景给你总结一下。
export VAR_NAME=value
示例:
export JAVA_HOME=/usr/java/jdk1.8.0_301
export PATH=$JAVA_HOME/bin:$PATH
⚠️ 关闭终端后失效。
编辑当前用户的环境变量文件:
vi ~/.bashrc
# 或
vi ~/.bash_profile
在末尾添加:
export JAVA_HOME=/usr/java/jdk1.8.0_301
export PATH=$JAVA_HOME/bin:$PATH
使生效:
source ~/.bashrc
✅ 只对该用户生效
✅ 登录 / 新开终端自动加载
编辑系统环境变量文件:
sudo vi /etc/profile
在末尾添加:
export JAVA_HOME=/usr/java/jdk1.8.0_301
export PATH=$JAVA_HOME/bin:$PATH
生效:
source /etc/profile
⚠️ 影响所有用户,需谨慎修改
CentOS 推荐把环境变量放到:
/etc/profile.d/
例如:
sudo vi /etc/profile.d/myenv.sh
内容:
#!/bin/bash
export JAVA_HOME=/usr/java/jdk1.8.0_301
export PATH=$JAVA_HOME/bin:$PATH
赋予执行权限:
sudo chmod +x /etc/profile.d/myenv.sh
✅ 方便管理
✅ 不影响 /etc/profile 本身
如果是服务(如 Java 程序):
sudo systemctl edit your-service
添加:
[Service]
Environment="JAVA_HOME=/usr/java/jdk1.8.0_301"
Environment="PATH=/usr/java/jdk1.8.0_301/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin"
重载:
sudo systemctl daemon-reload
sudo systemctl restart your-service
env
echo $JAVA_HOME
printenv PATH
export 不能少PATH 一定要包含原 $PATHbash,注意 .bashrc 和 .profile 区别source如果你能告诉我:
我可以给你更精确的配置示例。