1️⃣ 基本对比
| 项目 | CMD | PowerShell | Bash | Zsh |
|---|---|---|---|---|
| 系统平台 | Windows | Windows(跨平台可装) | Linux / macOS(Windows 用 WSL / Git Bash) | Linux / macOS(Windows 用 WSL) |
| 脚本后缀 | .bat / .cmd | .ps1 | .sh | .zsh |
| 输出 | 纯文本 | 对象(.NET) | 纯文本 | 纯文本(功能更强) |
| 是否跨平台 | ❌ | ✅ | ✅ | ✅ |
| 使用特点 | 最基础命令行 | 自动化脚本、运维 | Linux 默认 Shell | Bash 增强版,交互更好 |
| 典型用途 | 简单命令、批处理 | Windows 高级运维 | Linux/macOS 运维、开发 | 个性化高效终端 |
2️⃣ 主要用途场景
CMD
- Windows 自带
- 适合执行
ping、ipconfig、dir等命令 - 写简单的
.bat脚本
示例:
echo Hello World
dir
pause
PowerShell
- Windows 系统管理和自动化
- 支持 .NET 对象管道
- 跨平台也能用(PowerShell Core)
示例:
Get-Process | Where-Object {$_.CPU -gt 50}
Restart-Service -Name "Spooler"
Bash
- Linux、macOS 默认
- 文本处理能力强,适合服务器脚本、运维、部署
示例:
ps aux | grep nginx
for file in *.log; do mv "$file" "$file.bak"; done
Zsh
- Bash 的增强版
- 兼容 Bash 语法,功能更丰富
- 支持插件(oh-my-zsh)和自动补全
示例:
for file in *.log; do mv "$file" "$file.bak"; done
3️⃣ VSCode 中使用
- VSCode 终端可以自定义:
- 用 Git Bash(装了 Git for Windows)
- 用 WSL(Linux Bash)
- 用 PowerShell / CMD(系统自带)
- macOS 默认就是 Zsh
查看当前终端:
echo $0
4️⃣ 场景推荐
| 需求 | 推荐 |
|---|---|
| Windows 简单命令 | CMD |
| Windows 运维自动化 | PowerShell |
| Linux/macOS 脚本 | Bash |
| 高效交互体验 | Zsh |
| Windows 用 Linux 命令 | Git Bash 或 WSL |
总结:
CMD 简单,PowerShell 适合 Windows 运维,Bash 是 Linux 核心,Zsh 是 Bash 的增强版。