当前位置: 首页 > 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.jsqmd.com/news/1014700/

相关文章:

  • 6%AFFF/AR抗溶性水成膜消防泡沫液前十榜单汇总,浙江金瑞恒在精细化工园区应用广泛 - 品牌速递
  • 什么是AI辅助编程?一文详解
  • 如何用3行命令搞定M3U8视频下载:终极完整教程
  • 独立开发者的 3D 资产生成:一套轻量级工作流实战
  • NSK NH20GM 直线导轨技术指南
  • 3%AFFF/AR抗溶性水成膜泡沫灭火剂前十榜单揭秘,浙江金瑞恒在石英砂行业广受好评 - 品牌速递
  • 从MATLAB代码到故障诊断:手把手教你分析风机CMS振动数据(附完整脚本)
  • 2026年管道泵十大口碑品牌推荐:辽阳立式管道泵/静音防爆/地暖热水增压循环泵技术解析 - 品牌发掘
  • 联想拯救者工具箱深度解析:10个提升游戏本性能的核心技巧
  • 终极指南:用KKManager轻松管理Illusion游戏模组,告别混乱安装
  • Onekey完整教程:如何一键解锁Steam游戏DLC内容
  • 构建高性能Windows Syslog服务器:架构设计与技术实现深度解析
  • 2026年 农资原料厂家推荐榜单:氯化铵/硫酸铵/氯化钾/甲醇/甲醛/冰醋酸/锌粉/甲苯/二甲苯等核心化工品实力厂商深度解析 - 品牌发掘
  • 珠海市黄金回收三家门店实地探店综合测评 - 靖昱黄金回收
  • 洛雪音乐音源终极指南:5步实现全网无损音乐免费下载
  • Arch Linux / Niri 配置笔记
  • React/Vue 全栈开发:CSS Houdini 与自定义绘制 API 的实践
  • 3分钟快速掌握:如何用dex2jar轻松破解Android应用逆向分析难题
  • K近邻(KNN) 方法来填补缺失值
  • 2026年朝鲜旅游靠谱机构排行及避坑指南 - 互联网科技品牌测评
  • DBPanel:Go 语言自研 Linux 服务器管理面板,轻量安全且极速部署,基础功能长久免费!
  • 2026年腾讯云618大促零基础步骤:OpenClaw如何安装?Token Plan配置与大模型接入流程
  • 元器件柜子器件(6×10)
  • MPC8260 I2C控制器与并行I/O端口配置详解:从缓冲描述符到引脚复用
  • 5、Zookeeper-分布式锁
  • 如何免费激活IDM完整版:3分钟永久解锁极速下载体验
  • 5000+戴森球计划工厂蓝图:从零到星际帝国的建造指南
  • 阳江市黄金回收三家门店实地探店综合测评 - 靖昱黄金回收
  • SonnetDB 多模型能力更新:向量、全文搜索、S3 对象桶与消息队列场景总览
  • 深度剖析智能自动化框架:基于图像识别的鸣潮游戏革命性解决方案