以下是 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
)。