什么是 PowerShell?
PowerShell 由命令行 shell 和脚本语言两部分组成。 它最初是一种框架,用于在 Windows 中自动执行管理任务。 PowerShell 现已发展为一种跨平台工具,用于执行多种任务。
命令行 shell 缺少图形界面,让你无法使用鼠标与图形元素进行交互。 相反,你需要在计算机控制台中键入文本命令。 下面是使用控制台的一些优点:
- 与控制台交互通常比使用图形界面快。
- 在控制台中,可以运行成批命令,因此它非常适合用于持续集成管道的任务自动化。
- 你可使用控制台与云资源和其他资源交互。
- 可在文本文件中存储命令和脚本,并使用源代码管理系统。 这可能是最大的优点之一,因为你的命令可重复且可审核。 在许多系统(特别是政府系统)中,必须跟踪和评估或审核一切内容。 审核涵盖了从数据库更改到脚本所做的更改的所有内容。
功能
PowerShell 通过传统 shell 共享某些功能:
- 内置帮助系统:大多数 shell 都有一些帮助系统,你可以在其中了解有关命令的详细信息。 例如,你可以了解命令的作用以及它支持的参数。 PowerShell 中的帮助系统提供有关命令的信息,并与联机帮助文章集成。
- 管道:传统 shell 使用管道按顺序运行多个命令。 一个命令的输出是下一个命令的输入。 PowerShell 实现了传统 shell 传达的这种概念,但它又有所不同,因为它对文本上的对象进行操作。 本模块稍后会详细介绍此功能。
- 别名:别名是可用于运行命令的替代名称。 PowerShell 支持使用常见别名,如
cls
(清除屏幕)和ls
(列出文件)。 因此,对于熟悉的命令,新用户可利用其对其他框架的知识,而不必记住 PowerShell 名称。
PowerShell 不同于传统的命令行 shell,具体体现在以下几方面:
-
它对文本上的对象进行操作。 在命令行 shell 中,你必须运行输出和输入可能不同的脚本,因此你最终会对输出进行格式化并提取所需的数据。 而在 PowerShell 中,可以使用对象作为输入和输出。 这意味着格式设置和数据提取所需时间会更少。
-
它具有 cmdlet。 PowerShell 中的命令称为 cmdlet(念作 commandlet)。 与其他许多 shell 环境不同,在 PowerShell 中,cmdlet 是在常见运行时而不是单独的可执行文件上生成的。 此特性在参数分析和管道行为方面提供了一致的体验。
Cmdlet 通常采用对象输入并返回对象。 PowerShell 中的核心 cmdlet 是在 .NET Core 中生成的,采用的是开放源代码形式。 你可以使用来自社区和其他来源的更多 cmdlet、脚本和函数来扩展 PowerShell,也可以在 .NET Core 或 PowerShell 中生成自己的 cmdlet。
-
它具有多种类型的命令。 PowerShell 中的命令可以是本机可执行文件、cmdlet、函数、脚本或别名。 运行的每个命令都属于这些类型之一。 由于 cmdlet 是一种命令,因此,命令和 cmdlet 通常可互换使用。
安装
在此模块中,你将练习如何在计算机上使用 PowerShell。 PowerShell 可用于多种平台,但如果你使用的计算机运行的是 Linux、macOS 或早期版本的 Windows,则需要安装它。
每个 OS 对安装 PowerShell 的说明各不相同。 在继续之前,请花几分钟时间安装 PowerShell 或验证 PowerShell 安装。 此模块的下一个单元将介绍如何验证你的安装。
Windows
如果运行的是 Windows 8 或更高版本,则应已安装名为 Windows PowerShell 的 PowerShell 版本。 此版本与最新的 PowerShell 版本略有不同,但它可用于学习目的。
可从“开始”菜单打开 Windows PowerShell。
其他操作系统
如果你的计算机运行的不是 Windows 8 或更高版本,则需要安装 PowerShell。 若要查找针对你的 OS 的安装说明,请参阅安装各种版本的 PowerShell。
适用于 Visual Studio Code 的 PowerShell 扩展
建议你使用适用于 Visual Studio Code 的 PowerShell 扩展来创作 PowerShell 脚本和运行此模块中的命令。 使用此扩展,可运行命令,还有助于执行代码片段、完成代码以及突出显示语法。