在 CentOS 中,“永久设置环境变量(env)”通常有几种方式,取决于作用范围(用户级 / 系统级)和使用场景(登录 shell / 非登录 shell / 服务)。
下面按最常见场景给你说明。
适合 bash 用户(CentOS 默认)
vi ~/.bashrc
在文件末尾添加:
export JAVA_HOME=/usr/local/java
export PATH=$JAVA_HOME/bin:$PATH
使配置立即生效:
source ~/.bashrc
✅ 登录和非登录 shell 都会加载
.bashrc(CentOS 默认)
vi ~/.bash_profile
添加:
export MY_ENV=test
生效:
source ~/.bash_profile
适合 ssh 登录、su - 用户名 的场景
sudo vi /etc/profile.d/myenv.sh
内容:
export APP_HOME=/opt/app
export PATH=$APP_HOME/bin:$PATH
赋予执行权限:
sudo chmod +x /etc/profile.d/myenv.sh
重新登录或:
source /etc/profile
✅ 这是 CentOS 官方推荐方式
sudo vi /etc/profile
在末尾添加:
export GLOBAL_ENV=prod
如果你是想让 服务(如 nginx、java 程序) 读到环境变量:
sudo systemctl edit xxx.service
添加:
[Service]
Environment=ENV_NAME=value
或者:
EnvironmentFile=/etc/sysconfig/xxx
~/.bashrc 里写需要 root 的命令cron 任务 不会读取 .bashrcBASH_ENVecho $ENV_NAME
env | grep ENV_NAME
如果你能告诉我:
我可以给你更精确的配置示例。