以下是 CMD(Windows)、PowerShell(Windows)、Linux/Mac 在 临时/永久 环境变量操作上的对比表格:
环境变量操作对照表(CMD vs PowerShell vs Linux/Mac)
| 操作 | CMD(Windows) | PowerShell(Windows) | Linux/Mac(Bash/Zsh) |
|---|---|---|---|
| 设置临时变量 | set VAR=value |
$env:VAR = "value" |
export VAR=value |
| 查看变量 | echo %VAR% |
echo $env:VAR |
echo $VAR |
| 删除临时变量 | set VAR= |
Remove-Item Env:\VAR |
unset VAR |
| 设置永久变量(用户级) | setx VAR "value" |
[Environment]::SetEnvironmentVariable("VAR", "value", "User") |
在 ~/.bashrc 或 ~/.zshrc 添加 export VAR=value 并 source ~/.bashrc |
| 设置永久变量(系统级) | setx VAR "value" /M(需管理员) |
[Environment]::SetEnvironmentVariable("VAR", "value", "Machine")(需管理员) |
在 /etc/environment 或 /etc/profile 添加 export VAR=value 并 source /etc/profile |
| 查看所有变量 | set |
Get-ChildItem Env: |
env 或 printenv |
| 删除永久变量(用户级) | setx VAR "" |
[Environment]::SetEnvironmentVariable("VAR", "", "User") |
从 ~/.bashrc 或 ~/.zshrc 删除对应行并 source ~/.bashrc |
| 删除永久变量(系统级) | setx VAR "" /M(需管理员) |
[Environment]::SetEnvironmentVariable("VAR", "", "Machine")(需管理员) |
从 /etc/environment 或 /etc/profile 删除对应行并 source /etc/profile |
注意事项
-
临时变量:仅在当前终端窗口有效,关闭后失效。
-
永久变量
- Windows :需重启终端或运行
refreshenv(PowerShell)生效。 - Linux/Mac :修改配置文件后需运行
source或重启终端。
- Windows :需重启终端或运行
-
系统级变量(Windows/Linux):需要管理员权限。
-
Linux/Mac 的配置文件可能不同:
~/.bashrc(Bash)~/.zshrc(Zsh)/etc/environment(全局,不推荐直接修改)
示例(以 DASHSCOPE_API_KEY 为例)
1. 临时设置(当前终端有效)
| 终端类型 | 命令 |
|---|---|
| CMD | set DASHSCOPE_API_KEY=your-key |
| PowerShell | $env:DASHSCOPE_API_KEY = "your-key" |
| Linux/Mac | export DASHSCOPE_API_KEY=your-key |
2. 永久设置(用户级)
| 终端类型 | 命令 |
|---|---|
| CMD | setx DASHSCOPE_API_KEY "your-key" |
| PowerShell | [Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "your-key", "User") |
| Linux/Mac | 在 ~/.bashrc 添加 export DASHSCOPE_API_KEY=your-key 并运行 source ~/.bashrc |
3. 删除变量
| 终端类型 | 临时删除 | 永久删除 |
|---|---|---|
| CMD | set DASHSCOPE_API_KEY= |
setx DASHSCOPE_API_KEY "" |
| PowerShell | Remove-Item Env:\DASHSCOPE_API_KEY |
[Environment]::SetEnvironmentVariable("DASHSCOPE_API_KEY", "", "User") |
| Linux/Mac | unset DASHSCOPE_API_KEY |
从 ~/.bashrc 删除行并 source ~/.bashrc |
总结
-
临时变量:适用于测试,关闭终端后失效。
-
永久变量:写入配置文件或注册表,长期有效。
-
跨终端兼容性
- CMD 和 PowerShell 不共享临时变量。
- Linux/Mac 的变量对所有终端(Bash/Zsh)生效(如果写入
~/.bashrc或~/.zshrc)。