当前位置: 首页 > news >正文

什么是PowerShell?Windows自带的“超级命令行”全面介绍

前言

很多Windows用户用过CMD(命令提示符),但未必知道系统里还藏着一个更强大的“命令行神器”——PowerShell。它能做哪些CMD做不到的事?为什么有人说它像Linux终端?这篇文章为你完整介绍PowerShell。

目录

一、PowerShell是什么?

二、PowerShell的诞生背景(简史)

1. 为什么微软要做PowerShell?

2. 发展里程碑

三、PowerShell的核心特性(这才是重点)

1. 一切皆对象,管道传递对象

2. 统一的命令命名规范:动词-名词(Verb-Noun)

3. 可以像访问文件系统一样访问其他系统组件

4. 强大的脚本语言和自动化能力

5. 别名系统:兼容Linux/CMD习惯

四、PowerShell与CMD、WSL的区别(一图看懂)

五、我应该学PowerShell吗?(适用场景)

1. 非常适合以下人群

2. 一个小例子:批量重命名照片

六、如何开始学习/使用PowerShell?

1. 打开方式

2. 常用命令入门

3. 升级到最新版Windows 10/11自带PowerShell 5.1,建议从GitHub安装PowerShell 7(跨平台版),体验更佳。

总结

演示:在PowerShell里输入 Get-Alias,看看有多少你熟悉的“老朋友”~


一、PowerShell是什么?

PowerShell是微软开发的一款跨平台命令行Shell和脚本语言。它于2006年首次发布,内置在Windows 7及之后的所有Windows版本中,并且从2016年起开源并支持macOS和Linux。

通俗地说:

  • Shell:像CMD一样,你可以敲命令、运行程序、管理文件。

  • 脚本语言:你可以把多条命令写入.ps1脚本文件,实现复杂的自动化任务。

它和CMD最本质的区别在于:

  • CMD处理的是文本(你看到什么,管道就传什么文本)。

  • PowerShell处理的是.NET对象(命令输出的不是字符串,而是带有属性的对象,管道传递的是对象本身)。

这就像一个是“传纸条”(文本),一个是“传Excel表格”(结构化对象)——后者能做的事情要多得多。


二、PowerShell的诞生背景(简史)

1. 为什么微软要做PowerShell?

在2000年代初期,Windows系统管理员面临一个尴尬局面:

  • 要管理Windows服务器,主要靠图形界面(点击鼠标)或者CMD里有限的命令。

  • 而Linux/Unix管理员早已习惯用强大的Shell脚本批量完成配置、监控、维护。

微软意识到,必须为Windows打造一个现代化的命令行环境。2002年,代号“Monad”的项目启动,负责人是Jeffrey Snover(后来被称为“PowerShell之父”)。他的名言是:

“我们不是在写一个更好的CMD,而是在解决系统管理的大问题。”

2. 发展里程碑

  • 2006年:PowerShell 1.0 发布,面向对象管道、Cmdlet概念正式亮相。

  • 2009年:Windows 7 / Server 2008 R2 开始内置PowerShell。

  • 2016年:PowerShell开源,发布.NET Core版(PowerShell Core 6.0),支持Linux/macOS。

  • 2020年后:PowerShell 7 成为长期支持版本,统一Windows和跨平台体验。


三、PowerShell的核心特性(这才是重点)

1. 一切皆对象,管道传递对象

这是PowerShell最根本的突破。例如,查看进程:

Get-Process

输出的不是一堆文字,而是System.Diagnostics.Process对象的集合。你可以直接筛选、排序、操作这些对象:

# 找出占用内存超过100MB的进程 Get-Process | Where-Object { $_.WorkingSet64 -gt 100MB } # 按CPU使用率排序,显示前5个 Get-Process | Sort-Object CPU -Descending | Select-Object -First 5

而在CMD里,你必须用复杂的文本解析(findstr、for循环)才能勉强实现,而且极易出错。

2. 统一的命令命名规范:动词-名词(Verb-Noun)

PowerShell的所有原生命令(叫Cmdlet,读作“command-let”)都遵循动词-名词格式,英语阅读友好

动词名词Cmdlet作用
GetProcessGet-Process获取进程
StopProcessStop-Process停止进程
GetServiceGet-Service获取服务
SetLocationSet-Location设置当前目录(相当于cd
GetChildItemGet-ChildItem获取子项(相当于ls/dir

这种命名方式让你不需要死记硬背——想做什么事,先想动词(Get/Set/New/Remove/Start/Stop...),再想名词,猜个八九不离十。

3. 可以像访问文件系统一样访问其他系统组件

PowerShell的“提供程序”(Provider)模型,让你能统一浏览不同类型的存储:

# 查看当前目录 Get-Location # 切换到注册表(就像切到D盘一样) cd HKLM:\SOFTWARE\ dir # 列出注册表项 # 切换到证书存储 cd Cert:\CurrentUser\My\ dir # 列出个人证书

支持的Provider包括:文件系统、注册表、证书、环境变量、WSMan、Active Directory等。你可以用Get-PSProvider查看全部。

4. 强大的脚本语言和自动化能力

PowerShell脚本(.ps1)支持:

  • 变量($name = "张三"

  • 条件判断(ifswitch

  • 循环(foreachwhile

  • 函数、错误处理(try/catch)、模块化。

一个典型的管理脚本示例:批量停止某类服务并记录日志。

$services = Get-Service | Where-Object { $_.Name -like "spool*" } foreach ($svc in $services) { Stop-Service $svc.Name -Force Write-Host "已停止: $($svc.Name)" }

5. 别名系统:兼容Linux/CMD习惯

这就是为什么你会觉得“像切换到Linux”。

PowerShell为常用Cmdlet提供了短别名,方便不同背景的用户:

别名真正的Cmdlet来源
lsGet-ChildItemLinux
pwdGet-LocationLinux
catGet-ContentLinux
dirGet-ChildItemCMD
cdSet-Location通用
psGet-ProcessLinux

注意:这些别名只是“快捷方式”,不是真的Linux命令。你可以用Get-Alias ls验证。


四、PowerShell与CMD、WSL的区别(一图看懂)

特性CMDPowerShellWSL
处理数据文本.NET对象Linux内核环境
默认命令dir,copy,delGet-ChildItem,Copy-Item,Remove-Itemls,cp,rm(真正的Linux工具)
脚本扩展名.bat.ps1.sh或任何Linux脚本
访问注册表通过reg命令直接cd进注册表需要额外工具
跨平台仅WindowsWindows + macOS + Linux仅Windows(宿主Linux内核)

结论

  • CMD:老式兼容,日常简单命令还能用。

  • PowerShell:现代、强大、跨平台,适合管理和自动化。

  • WSL:需要真正运行Linux二进制程序时用(比如编译Linux内核、运行Docker原生Linux容器)。


五、我应该学PowerShell吗?(适用场景)

1.非常适合以下人群

  • Windows系统管理员:管理AD、IIS、Hyper-V、Exchange等,官方大量提供PowerShell模块。

  • 开发运维(DevOps):用PowerShell编写CI/CD脚本、配置管理(配合DSC)。

  • 数据分析师/科学家:PowerShell可以处理CSV/JSON/XML,调用REST API。

  • 想提升工作效率的普通用户:批量重命名文件、自动备份、监控系统状态。

2.一个小例子:批量重命名照片

# 把当前目录所有.jpg文件改成“假期_001.jpg”格式 $i=1 Get-ChildItem *.jpg | ForEach-Object { Rename-Item $_ -NewName ("假期_{0:D3}.jpg" -f $i++) }

这种任务在CMD里要写好长一串,PowerShell只需几行。


六、如何开始学习/使用PowerShell?

1. 打开方式

  • Win + R,输入powershell,回车。

  • 或者右键“开始”菜单,选择“Windows PowerShell”或“终端”。

2. 常用命令入门

想做什么命令示例
查看帮助Get-Help Get-Process
查看当前目录Get-Location(或pwd
列出文件Get-ChildItem(或ls
查看进程Get-Process
查看服务Get-Service
查看命令历史Get-History

3. 升级到最新版
Windows 10/11自带PowerShell 5.1,建议从GitHub安装PowerShell 7(跨平台版),体验更佳。


总结

问题答案
PowerShell是CMD的升级版吗?不完全是,它是完全重写的现代化Shell,与CMD不是同一个东西。
为什么能敲lspwd内置了Linux风格别名,方便跨平台用户,但背后执行的仍是Windows原生Cmdlet。
它比CMD强在哪?对象管道、统一命令命名、访问注册表/证书、强大的脚本能力。
能代替CMD吗?绝大多数场景可以,而且更高效。CMD保留主要为了兼容老脚本。

一句话记住PowerShell

一个面向对象的、能像处理文件一样处理系统组件的、跨平台的现代化命令行和脚本环境。

如果你之前只知道CMD,那么从今天起,可以试着把powershell当作默认终端了。你会发现,Windows的命令行世界原来可以这么强大。


演示:在PowerShell里输入Get-Alias,看看有多少你熟悉的“老朋友”~

http://www.rkmt.cn/news/1526521.html

相关文章:

  • 3%AFFF/AR抗溶性水成膜泡沫灭火剂前十榜单揭秘,浙江金瑞恒在石英砂行业广受好评 - 品牌速递
  • NSK NH20GM 直线导轨技术指南
  • 2026年管道泵十大口碑品牌推荐:辽阳立式管道泵/静音防爆/地暖热水增压循环泵技术解析 - 品牌发掘
  • 联想拯救者工具箱深度解析:10个提升游戏本性能的核心技巧
  • 构建高性能Windows Syslog服务器:架构设计与技术实现深度解析
  • 2026年 农资原料厂家推荐榜单:氯化铵/硫酸铵/氯化钾/甲醇/甲醛/冰醋酸/锌粉/甲苯/二甲苯等核心化工品实力厂商深度解析 - 品牌发掘
  • 珠海市黄金回收三家门店实地探店综合测评 - 靖昱黄金回收
  • React/Vue 全栈开发:CSS Houdini 与自定义绘制 API 的实践
  • 阳江市黄金回收三家门店实地探店综合测评 - 靖昱黄金回收
  • 深度剖析智能自动化框架:基于图像识别的鸣潮游戏革命性解决方案
  • StarRailCopilot:崩坏星穹铁道全自动脚本终极指南,解放双手的智能游戏助手
  • [智能体-401]:项目:Make 平台 AI Agent 工作流程详解
  • 在macOS上玩转Xbox手柄:360Controller驱动完全指南
  • Fast-GitHub:彻底解决国内开发者访问GitHub的终极加速方案
  • 终极免费方案:Wand-Enhancer让你的游戏修改器突破时间限制
  • [智能体-404]:应用 - Make平台搭建智能体与AI原生的低代码智能体平台的比较
  • PCL2内存优化深度解析:3大核心技术让Minecraft流畅运行
  • RIP vs OSPF实战对比:在同一个GNS3拓扑里配置两种协议,看谁收敛更快、路由更优
  • 如何深度解析ComfyUI IPAdapter Plus多图输入与风格融合技术
  • 3分钟搞定Windows安卓应用安装:APK-Installer让跨平台如此简单!
  • 重载堡垒:MCM08010H05K00技术指南
  • 计算机Java毕设实战-基于 B/S 架构的在线招聘管理系统的设计与实现 面向企业与求职者的 Web 招聘服务平台【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 【测试文章】统好AI营销自动化测试
  • 计算机Java毕设实战-基于 B/S 架构的数学题库组卷管理系统的设计与实现 轻量化 Web 数学试题自动组卷系统【完整源码+LW+部署说明+演示视频,全bao一条龙等】
  • 软工实践个人总结
  • 循序渐进---Code Nova---实践团队总结
  • ClickHouse系统日志占了我20G硬盘?手把手教你配置TTL自动清理(附配置文件详解)
  • K8s PodDisruptionBudget 与滚动更新安全策略:从随意驱逐到有序迁移,集群稳定的守护机制
  • 如何用移动端AI创意工具重塑创意表达?探索实时视觉特效技术的完整指南
  • 法考备考资料推荐|客观题|主观题|资料已整理