CMD,PowerShell、Linux/MAC设置环境变量
以下是 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
)。