温馨提示×

如何设置CentOS env变量

小樊
46
2026-08-04 13:11:55
栏目: 智能运维

在 CentOS 中设置环境变量(env 变量)有多种方式,取决于作用范围(当前用户 / 所有用户 / 临时 / 永久)和使用场景。下面按常见情况说明。


一、临时设置(仅当前 shell 会话有效)

只在当前终端生效,关闭终端后失效。

export VAR_NAME=value

示例:

export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH

验证:

echo $JAVA_HOME

二、永久设置(按作用范围)

✅ 1. 仅对当前用户生效

编辑用户主目录下的配置文件:

vi ~/.bashrc

或(登录 shell):

vi ~/.bash_profile

添加:

export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH

使配置生效:

source ~/.bashrc

✅ 2. 对所有用户生效(推荐用于系统级变量)

编辑:

sudo vi /etc/profile

或新建文件(推荐):

sudo vi /etc/profile.d/myenv.sh

内容:

export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH

赋予执行权限(可选但推荐):

sudo chmod +x /etc/profile.d/myenv.sh

加载:

source /etc/profile

优点

  • 不影响系统原有配置
  • 便于管理多个环境变量文件

三、针对 systemd 服务设置环境变量(CentOS 7+)

如果是系统服务需要环境变量,不能直接用 /etc/profile

方法 1:在 service 文件中设置

[Service]
Environment="JAVA_HOME=/usr/local/java"
Environment="PATH=/usr/local/java/bin:/usr/bin:/bin"

方法 2:使用 environment 文件

[Service]
EnvironmentFile=/etc/sysconfig/myapp

/etc/sysconfig/myapp 内容:

JAVA_HOME=/usr/local/java
PATH=/usr/local/java/bin:/usr/bin:/bin

然后:

sudo systemctl daemon-reload
sudo systemctl restart myapp

四、查看环境变量

env
printenv
echo $VAR_NAME

五、取消环境变量

unset VAR_NAME

六、常见注意事项

  1. PATH 不要覆盖
    PATH=$JAVA_HOME/bin:$PATH
    
  2. 变量名一般大写
  3. 登录 shell vs 非登录 shell
    • 登录 shell:读取 /etc/profile~/.bash_profile
    • 非登录 shell:读取 ~/.bashrc

如果你有具体场景(如 Java / Python / Docker / systemd / 多用户),可以告诉我,我可以给你精确配置示例

0