目录

  1. 核心环境与概念 (Core Environments & Concepts)
    • 命令提示符 (cmd.exe) vs. PowerShell
    • PowerShell 核心哲学:一切皆对象 (Everything is an Object)
    • 管道 (|)、重定向 (>, >>)
    • 执行策略 (Execution Policy)
  2. 文件与目录管理 (File & Directory Management)
    • Get-ChildItem (ls, dir), Set-Location (cd), New-Item, Remove-Item, Copy-Item, Move-Item
  3. 文本处理与查看 (Text Processing & Viewing)
    • Get-Content (cat, type), Select-String, more
  4. 系统信息与监控 (System Information & Monitoring)
    • Get-Process (ps, tasklist), Stop-Process (kill, taskkill), Get-Service, systeminfo, wmic (旧)
  5. 进程与服务管理 (Process & Service Management)
    • Get-Process, Stop-Process, Start-Service, Stop-Service, Restart-Service, Get-Service
  6. 用户与权限管理 (User & Permission Management)
    • whoami, net user, Get-LocalUser, icacls, takeown
  7. 网络工具 (Networking Tools)
    • ping, ipconfig, Get-NetIPAddress, Test-NetConnection, netstat, Resolve-DnsName
  8. 软件包管理 (Software Package Management)
    • winget (官方), Chocolatey (社区)
  9. 系统管理与维护 (System Administration & Maintenance)
    • schtasks, sfc, chkdsk, diskpart, shutdown
  10. PowerShell 独有高级技巧 (Exclusive PowerShell Advanced Skills)
    • 对象管道 (|)
    • Where-Object (过滤)
    • ForEach-Object (循环)
    • Select-Object (选择属性)
    • Sort-Object (排序)
  11. 获取帮助 (Getting Help)
    • Get-Help

1. 核心环境与概念 (Core Environments & Concepts)

  • 命令提示符 (cmd.exe): 传统的 Windows 命令行,基于 DOS。语法简单,处理的是纯文本,适合简单的批处理任务。正在被 PowerShell 逐步取代。
  • PowerShell: 现代的、面向对象的自动化引擎和脚本语言。
    • 核心哲学:一切皆对象 (Everything is an Object): 这是 PowerShell 与 Linux Shell 最根本的区别。当 Get-Process 输出进程列表时,你得到的不是文本,而是一个个包含完整属性(如 CPU、内存、句柄数)的进程对象。这使得你可以进行精确的过滤、排序和操作。
    • 示例: Get-Process | Where-Object {$_.CPU -gt 100} (获取 CPU 时间大于 100 秒的进程)。你操作的是对象的 .CPU 属性,而不是用 grep 去匹配文本。
  • 管道 (|) 和重定向 (>, >>): 功能与 Linux 类似,但在 PowerShell 中,管道传递的是 对象
    • Get-Process | Select-String "chrome" (将进程列表转为文本,再进行文本搜索)。
    • Get-Process | Out-File -FilePath C:\processes.txt (重定向对象输出到文件)。
  • 执行策略 (Execution Policy): PowerShell 的安全功能,防止恶意脚本运行。
    • Get-ExecutionPolicy: 查看当前策略。
    • Set-ExecutionPolicy RemoteSigned: (管理员权限) 常用设置,允许运行本地脚本和签名的远程脚本。

2. 文件与目录管理 (File & Directory Management)

PowerShell 的命令是 动词-名词 格式,非常清晰。它也为熟悉 Linux/cmd 的用户提供了别名(Alias)。

PowerShell 命令 (别名) cmd 等效命令 功能描述 实用示例 (PowerShell)
Get-ChildItem (ls, gci, dir) dir 列出目录内容 Get-ChildItem -Path C:\Windows -Recurse -Filter "*.log" (递归查找 C:\Windows 下所有 .log 文件)。
Set-Location (cd, sl) cd 切换目录 cd C:\Users\Public
New-Item (ni) mkdir, type nul > 创建新文件或目录 New-Item -Path ".\new_dir" -ItemType Directory (创建目录)。
New-Item -Path ".\new_file.txt" -ItemType File (创建文件)。
Remove-Item (rm, del, ri) del, rmdir 删除文件或目录 Remove-Item -Path ".\old_file.txt" -Force (强制删除文件)。
Remove-Item -Path ".\old_dir" -Recurse -Force (强制递归删除目录)。
Copy-Item (cp, copy, ci) copy, xcopy 复制文件或目录 Copy-Item -Path ".\source.txt" -Destination "C:\backup\" (复制文件)。
Copy-Item -Path ".\source_dir" -Destination "C:\backup\" -Recurse (复制目录)。
Move-Item (mv, move, mi) move 移动文件或目录 Move-Item -Path ".\file.txt" -Destination "..\archive\" (移动文件)。
Rename-Item (ren, rni) ren 重命名文件或目录 Rename-Item -Path ".\old_name.txt" -NewName "new_name.txt"

3. 文本处理与查看 (Text Processing & Viewing)

PowerShell 命令 (别名) cmd 等效命令 功能描述 实用示例 (PowerShell)
Get-Content (cat, gc, type) type 获取文件内容 Get-Content -Path "C:\Windows\System32\drivers\etc\hosts"
Get-Content -Wait N/A 类似 tail -f,实时跟踪文件 Get-Content -Path "C:\logs\app.log" -Wait
Select-String (sls) findstr 强大的文本/对象搜索,类似 grep Get-Content app.log | Select-String -Pattern "Error" -CaseSensitive (在日志中区分大小写地搜索 “Error”)。
more more 分页显示内容 Get-Process | more

4. 系统信息与监控 (System Information & Monitoring)

PowerShell 命令 cmd 等效命令 功能描述 实用示例 (PowerShell)
Get-Process (ps, gps) tasklist 获取进程列表(对象) Get-Process | Sort-Object -Property CPU -Descending | Select-Object -First 10 (查找 CPU 占用最高的前 10 个进程)。
systeminfo systeminfo 显示详细的系统信息 systeminfo
Get-WmiObject (旧) / Get-CimInstance (新) wmic Windows 管理规范,可获取几乎所有系统信息 Get-CimInstance -ClassName Win32_OperatingSystem | Select-Object Caption, Version (获取操作系统名称和版本)。
Get-HotFix wmic qfe list 查看已安装的系统补丁 Get-HotFix | Sort-Object -Property InstalledOn (按安装时间排序补丁)。

5. 进程与服务管理 (Process & Service Management)

PowerShell 命令 cmd 等效命令 功能描述 实用示例 (PowerShell)
Stop-Process (kill, spps) taskkill 按名称或 ID 停止进程 Stop-Process -Name "notepad" (停止所有记事本进程)。
Stop-Process -Id 1234 -Force (强制停止 PID 为 1234 的进程)。
Get-Service (gsv) sc query 获取服务列表(对象) Get-Service | Where-Object {$_.Status -eq 'Running'} (获取所有正在运行的服务)。
Start-Service sc start 启动服务 Start-Service -Name "Spooler" (启动打印机服务)。
Stop-Service sc stop 停止服务 Stop-Service -Name "Spooler" -Force
Restart-Service sc stop/start 重启服务 Restart-Service -Name "wuauserv" (重启 Windows Update 服务)。

6. 用户与权限管理 (User & Permission Management)

PowerShell 命令 cmd 等效命令 功能描述 实用示例
whoami whoami 显示当前用户信息 whoami /all (显示更详细的信息,包括 SID)。
Get-LocalUser net user 获取本地用户列表 Get-LocalUsernet user username new_password (修改密码)。
icacls cacls (旧) 修改文件/目录的访问控制列表 (ACLs) icacls "C:\data" /grant "Users:(OI)(CI)M" /T (为 Users 组授予对 data 目录及其子项的修改权限)。
takeown N/A 获取文件/目录的所有权 takeown /F "C:\secret" /R /D Y (递归获取 secret 目录的所有权)。

7. 网络工具 (Networking Tools)

PowerShell 命令 cmd 等效命令 功能描述 实用示例
ping / Test-Connection ping 测试网络连通性 (ICMP) Test-Connection -ComputerName 8.8.8.8 -Count 4
Get-NetIPAddress ipconfig 获取 IP 地址配置 Get-NetIPAddress -AddressFamily IPv4 (只看 IPv4 地址)。
Test-NetConnection (tnc) telnet (部分) 强大的网络诊断工具,可测端口 Test-NetConnection -ComputerName github.com -Port 443 (测试到 github.com 的 443 端口是否可达)。
netstat netstat 显示网络连接、路由表等 netstat -ano \| findstr "LISTENING" (查找所有监听端口及对应 PID)。
Resolve-DnsName nslookup DNS 查询 Resolve-DnsName -Name google.com -Type A (查询 A 记录)。

8. 软件包管理 (Software Package Management)

这是 Windows 命令行现代化的重要标志。需要在管理员权限的 PowerShell 中运行。

命令 功能描述 实用示例
winget Windows 官方包管理器 winget search vscode (搜索 Visual Studio Code)。
winget install Microsoft.VisualStudioCode (安装)。
winget upgrade --all (升级所有已安装的包)。
choco Chocolatey,强大的社区包管理器 choco search 7zip (搜索)。
choco install 7zip -y (安装)。

9. 系统管理与维护 (System Administration & Maintenance)

这些多是传统的、功能强大的可执行程序。

命令 功能描述 实用示例
schtasks 创建和管理计划任务 schtasks /Create /SC DAILY /TN "My Backup" /TR "C:\scripts\backup.bat" /ST 23:00 (创建每日任务)。
sfc 系统文件检查器 sfc /scannow (扫描并修复受保护的系统文件)。
chkdsk 检查磁盘并修复错误 chkdsk C: /f /r (检查并修复 C 盘的错误)。
diskpart 磁盘分区管理工具 (交互式) diskpart -> list disk -> select disk 1 -> clean危险!
shutdown 关闭或重启计算机 shutdown /r /t 0 (立即重启)。
shutdown /s /f /t 60 (60秒后强制关机)。

10. PowerShell 独有高级技巧 (Exclusive PowerShell Advanced Skills)

这是 PowerShell 的精髓,通过组合这些命令可以实现强大的自动化。

  • Where-Object (?) – 过滤对象:
    • Get-Service | Where-Object {$_.Status -eq 'Stopped'} (找到所有已停止的服务)。
  • ForEach-Object (%) – 遍历对象:
    • Get-Service | Where-Object {_.Status -eq 'Stopped'} | ForEach-Object { Restart-Service -Name_.Name -Verbose } (尝试重启所有已停止的服务)。
  • Select-Object (select) – 选择属性:
    • Get-Process | Sort-Object WS -Descending | Select-Object -First 5 -Property ProcessName, ID, WS (查找内存占用最高的前5个进程,并只显示名称、ID和工作集大小)。
  • Sort-Object (sort) – 排序对象:
    • Get-ChildItem C:\ | Sort-Object Length -Descending (按文件大小降序排列 C 盘根目录下的文件)。

11. 获取帮助 (Getting Help)

PowerShell 拥有非常强大的内置帮助系统。

  • Get-Help [命令]: 获取命令的帮助信息。
    • Get-Help Get-Process
  • -Examples: 查看实用示例。
    • Get-Help Get-Process -Examples
  • -Full: 查看最完整的帮助信息。
    • Get-Help Get-Process -Full
  • -Online: 在浏览器中打开在线帮助文档。
    • Get-Help Get-Process -Online
  • Update-Help: (管理员权限) 更新本地的帮助文件。

最终建议 (Final Advice)

  1. 拥抱 PowerShell: 如果你需要在 Windows 上进行任何严肃的命令行工作,请优先学习和使用 PowerShell。
  2. 以管理员身份运行: 许多系统管理命令需要提升权限。右键点击 PowerShell/终端 图标,选择“以管理员身份运行”。
  3. 多用 Tab 键: PowerShell 的自动补全功能极其强大,可以补全命令、参数、路径、甚至参数值。
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。