PowerShell 实战教程:从第一条命令到日常自动化的完整指南
【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell
如果你想在 Windows、Linux 和 macOS 上用同一套脚本环境搞定日常自动化,PowerShell 是目前最省心的选择。这是一份面向新手的 PowerShell 教程:PowerShell 是微软开发并开源的跨平台命令行工具,也是 PowerShell 脚本语言的官方实现仓库,在三大平台上都能提供一致且高效的体验。全文按"先跑起来,再慢慢深入"的顺序展开:先认识界面,执行第一批命令,学会处理报错,然后创建你的第一个 .ps1 脚本,接着看命令预测器、跨平台实践和模块安装,最后导览源码目录、规划学习路径。想读源码的话,可以直接git clone https://gitcode.com/GitHub_Trending/po/PowerShell到本地。
上图是 PowerShell 的官方形象。它没有听起来那么"企业级",装好就能用。
第一次启动:认识提示符和这个极简界面
装好以后,在终端输入pwsh就能进入交互环境。你会看到类似PS C:\>这样的提示符——PS是 PowerShell 的固定前缀,冒号后面跟着你当前所在的目录路径。
整个界面就两样东西:提示符和光标。没有菜单栏,没有按钮,你直接在这里敲命令、按回车,结果立刻返回。第一次用不用紧张,把它当成一个"随叫随答"的助手就行。
查版本、看服务:执行你的第一批 PowerShell 命令
上来先做两件小事,熟悉"输入命令 → 看结果"的节奏:
- 输入
$PSVersionTable,回车,你会看到一张表格:PSVersion、PSEdition、OS、Platform等行依次列出,当前 PowerShell 的版本信息一目了然。 - 输入
Get-Service,系统会列出机器上所有服务的名称、状态和启动类型,这是管理员排查问题时的第一手材料。
还有一个值得试的命令是Get-ExperimentalFeature:回车后系统以表格形式列出所有实验性功能的状态和描述,想提前尝鲜哪个新特性,先看这张表再决定。
命令打错了别慌:看懂 PowerShell 的纠错提示
新手最常见的情况是:命令拼错、记岔了名字。这时 PowerShell 不会只丢给你一句"找不到命令"就完事——它的反馈机制会自动识别可能的正确命令,并给出建议。比如你敲了get-servic,它很可能直接提示你是不是想执行Get-Service。
这个"纠错建议"看似小事,实际能省不少时间:照着提示修正,比翻文档快得多,报错信息本身就是一份学习材料。
如何快速创建你的第一个 .ps1 脚本文件
命令一条条敲很爽,但重复的工作流更适合写成脚本。创建脚本文件不用打开记事本,一条New-Item就够了:在当前目录执行New-Item -Path ./first.ps1 -ItemType File,回车,.ps1脚本文件就建好了。
打开first.ps1,把之前手动敲过的几条命令贴进去,以后执行pwsh ./first.ps1就能一键跑完整个流程。这就是从"敲命令"迈向"写 PowerShell 脚本"的第一步,也是日常自动化里最常用的姿势。
命令预测器:输入一半,就能快速选中上次用过的命令
⚡ 用熟之后你会发现 PowerShell 还有个效率利器:命令预测器。当你输入部分命令后,它会在提示符旁边展示相关的命令历史——比如你敲过很多遍Get-Process,输入Get-P后预测列表里它就会浮出来,方向键一按即可选中。
它和 Tab 补全是两种体验:补全帮你找"系统里有什么",预测器帮你找"我刚才用什么"。两个都用上,打字量能砍掉一大截。
在 Linux 上执行 PowerShell:跨平台体验有多一致 🚀
很多人以为 PowerShell 只属于 Windows,实际上它在 Linux 上一样能打。看这张真实截图:在 Ubuntu 终端里,Import-Module加载模块、执行自定义 cmdlet、uname -a查看系统信息、$PSVersionTable查看版本——和 Windows 上完全是同一套命令、同一种输出风格,只是Platform一项显示为 Unix。
这意味着你在 Windows 上写好的 PowerShell 脚本,换个平台大概率能直接跑。跨平台不是口号,是日常。
最快安装 PowerShell 模块的方法:交给 NuGet 包管理器
内置命令不够用的部分靠模块补齐。安装模块最快的方式是走 NuGet 包管理器:在包管理器窗口里搜你要的包(比如System.Management.Automation),选版本、点安装,引用和依赖就配置好了。
除了包管理器界面,日常更常用的是直接在终端执行Find-Module和Install-Module来查找、安装、更新模块;装完用Import-Module加载,扩展功能即刻生效。
想更进一步,自己开发一个 cmdlet 模块?官方在 docs/cmdlet-example/ 里放了完整示例,流程从新建一个类库项目开始:
接着照着示例把 cmdlet 类写出来,声明参数、重写ProcessRecord,编译出的 dll 就能被Import-Module加载使用:
项目导览:核心模块与源码都在哪些目录
把仓库拉下来之后,源码主要集中在 src/ 下。挑几个和日常使用关系最密切的:
- 系统管理相关的命令(进程、服务、软件包等),实现在 src/Microsoft.PowerShell.Commands.Management/;
- 诊断工具类命令(性能计数器、事件日志等),在 src/Microsoft.PowerShell.Commands.Diagnostics/;
- 安全功能(证书、签名、执行策略),在 src/Microsoft.PowerShell.Security/。
遇到"这条命令底层到底怎么实现"的好奇心时,顺着目录名找过去就能定位到对应源码。
学习路径:文档、测试用例与构建工具
- 官方文档入口在 docs/:里面有构建指南(docs/building/)、cmdlet 开发示例(docs/cmdlet-example/)和社区流程说明,遇到问题先来这里翻。
- test/ 目录是隐藏宝藏:几百个 Pester 测试用例展示了各命令的标准用法和边界情况,读测试是学 PowerShell 命令最快的路径之一。
- tools/ 放着构建、打包和发布用的工具脚本,想参与构建或了解发版流程时从这里入手。
顺手记三个最常用的速查:$PSVersionTable看版本、Get-Service看服务、New-Item建脚本文件。
上手清单:接下来 5 件值得做的事
- 今天就把
$PSVersionTable和Get-ExperimentalFeature各敲一遍,花两分钟认下环境。 - 用
New-Item建一个.ps1,把你每天重复做的两三条操作写进去,跑通它。 - 打开命令预测器(
Set-PSReadLineOption -PredictionSource HistoryAndPlugin),强迫自己用预测代替全拼。 - 挑一台 Linux 或 macOS 机器装
pwsh,把上一步的脚本原样搬过去跑,体会跨平台一致性。 - 每周抽时间读 test/ 里两三个测试文件,边读边敲,用几个月时间把 PowerShell 命令用成肌肉记忆。
关键词:PowerShell、PowerShell 教程、PowerShell 命令、PowerShell 脚本、跨平台
【免费下载链接】PowerShellPowerShell for every system!项目地址: https://gitcode.com/GitHub_Trending/po/PowerShell
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考