在 Debian(以及一般的 Linux)里,“env 值”通常指环境变量。要让环境变量持久化,取决于你想对谁、什么时候生效。下面按常见场景说明。
~/.bashrc(交互式 shell)适合登录后使用的环境变量。
nano ~/.bashrc
在末尾加:
export MY_VAR="value"
生效:
source ~/.bashrc
注意:仅对 bash 交互 shell 有效。
~/.profile 或 ~/.bash_profile更适合登录 shell(如 SSH 登录)
nano ~/.profile
添加:
export MY_VAR="value"
/etc/environment(最通用)不写 export,直接写
sudo nano /etc/environment
内容示例:
MY_VAR="value"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
✅ 对所有用户和服务生效
❌ 不支持变量展开(如 $HOME)
重新登录后生效。
/etc/profile.d/(推荐系统级脚本方式)sudo nano /etc/profile.d/myenv.sh
内容:
#!/bin/sh
export MY_VAR="value"
赋可执行权限:
sudo chmod +x /etc/profile.d/myenv.sh
✅ 对所有用户登录 shell 生效
✅ 支持脚本逻辑
如果你发现:
echo $MY_VAR 有值systemctl 启动的服务读不到那是因为 systemd 不读 bashrc/profile
sudo systemctl edit my-service
写入:
[Service]
Environment=MY_VAR=value
或:
EnvironmentFile=/etc/myenv.conf
systemctl --user import-environment
或在:
~/.config/systemd/user.conf
export MY_VAR="value"
重启/退出 shell 后失效。
echo $MY_VAR
env | grep MY_VAR
| 场景 | 推荐方式 |
|---|---|
| 单用户 shell | ~/.bashrc |
| 所有用户 shell | /etc/profile.d/*.sh |
| 所有程序/服务 | /etc/environment |
| systemd 服务 | systemctl edit |
| 脚本内部 | 在脚本里 export |
如果你能说明:
我可以给你精确配置示例。