在 Debian 里配置 环境变量(env),常见场景有:临时生效、用户级、系统级、服务级。下面按常用程度给你一个完整说明。
export VAR_NAME=value
示例:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
✅ 关闭终端后失效
✅ 常用于测试
只对当前用户生效。
~/.bashrc(交互式 shell)nano ~/.bashrc
在末尾添加:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
生效:
source ~/.bashrc
~/.profile(登录 shell)适合 登录时加载(如 SSH 登录)
nano ~/.profile
添加:
export PATH="$HOME/bin:$PATH"
~/.bashrc vs ~/.profile| 文件 | 何时生效 |
|---|---|
~/.bashrc |
打开终端 |
~/.profile |
登录系统 |
~/.bash_profile |
登录 shell(若存在会覆盖 profile) |
/etc/environment(推荐)✅ 简单
❌ 不支持变量扩展
sudo nano /etc/environment
示例:
JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/lib/jvm/java-17-openjdk-amd64/bin"
⚠️ 不写 export
/etc/profile.d/*.sh(推荐 ✅)系统级、结构清晰
sudo nano /etc/profile.d/myenv.sh
内容:
export JAVA_HOME=/usr/lib/jvm/java-17-openjdk-amd64
export PATH=$JAVA_HOME/bin:$PATH
权限:
sudo chmod +x /etc/profile.d/myenv.sh
[Service]
Environment="VAR_NAME=value"
Environment="PATH=/usr/local/bin:/usr/bin"
或:
EnvironmentFile=/etc/myapp/env
env
printenv
echo $PATH
❌ 在 /etc/environment 里写 export
❌ 修改后不 source 或重新登录
❌ PATH 覆盖而不是追加
| 场景 | 推荐方式 |
|---|---|
| 临时测试 | export |
| 当前用户 | ~/.bashrc |
| 所有用户 | /etc/profile.d/*.sh |
| systemd 服务 | Environment |
如果你有具体需求(比如 Java / Python / Docker / CUDA / 某个软件),可以直接告诉我,我给你一份精确可用的配置。