【Shell】CMD、PowerShell、Bash、Zsh 区别总结

510 阅读1分钟

1️⃣ 基本对比

项目CMDPowerShellBashZsh
系统平台WindowsWindows(跨平台可装)Linux / macOS(Windows 用 WSL / Git Bash)Linux / macOS(Windows 用 WSL)
脚本后缀.bat / .cmd.ps1.sh.zsh
输出纯文本对象(.NET)纯文本纯文本(功能更强)
是否跨平台
使用特点最基础命令行自动化脚本、运维Linux 默认 ShellBash 增强版,交互更好
典型用途简单命令、批处理Windows 高级运维Linux/macOS 运维、开发个性化高效终端

2️⃣ 主要用途场景

CMD

  • Windows 自带
  • 适合执行 pingipconfigdir 等命令
  • 写简单的 .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 的增强版。