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