在 CentOS(以及其他 Linux 系统)里,要看你说的 env(环境变量) 是哪种场景,结论不一样:
env 命令本身env 只是一个临时查看/设置环境变量的命令,它本身不能“保存”任何东西。
例如:
env
只是显示当前进程的环境变量。
env VAR=123 command
只是给 command 临时设置变量,退出后失效。
在终端里直接:
export MY_VAR=abc
✅ 当前 shell 及子进程可用
❌ 关闭终端 / 重新登录后消失
编辑用户家目录下的配置文件:
~/.bashrc
# 或
~/.bash_profile
添加:
export MY_VAR=abc
然后:
source ~/.bashrc
✅ 仅对该用户生效
✅ 重启 / 重新登录仍在
/etc/profile
# 或
/etc/profile.d/myenv.sh
例如新建:
/etc/profile.d/myenv.sh
内容:
export MY_VAR=abc
chmod +x /etc/profile.d/myenv.sh
✅ 所有用户、所有 shell 登录都生效
如果是 systemd 服务,普通 env 不会生效,需要:
/etc/environment
或
[Service]
Environment=MY_VAR=abc
env不能永久保存,但环境变量可以永久保存,只要写进配置文件。
如果你能说清楚:
我可以给你更精确的配置示例。