如果您使用的是 Windows 11 或 Windows 10,你会发现预安装了 PowerShell 和 Windows 终端。两者都是命令行界面,允许您输入文本命令来执行各种任务,但它们有何不同?
PowerShell 是对命令提示符的改进
Windows 11 中的 Windows PowerShell 界面
Microsoft 于 2006 年推出了 PowerShell,将人们在命令提示符下的操作提升到了一个新的水平。由于 Microsoft 在 .NET Framework 之上构建了 PowerShell,因此您可以使用 .NET 语言和基于文本的命令与操作系统进行交互。
PowerShell 最流行的语言是 C#,它允许您解锁该工具的高级功能并提高您的工作效率。
除了标准命令之外,PowerShell 还具有 200 多个 cmdlet,这是 Microsoft 定义为“轻量命令”的特殊类型的 C# 类。该数量可能会有所不同,具体取决于系统中安装的模块。
当 PowerShell 执行它们时,它们会返回一个您可以操作的 .NET 对象。例如,这使您不仅可以与计算机上由 .NET Core 提供支持的程序进行交互,还可以处理它们的输入(不需要任何复杂的代码)。
此外,虽然 PowerShell 可以以与 CMD 相同的方式运行批处理文件,但它还允许您在 PowerShell 中安排任务,从而实现更高的自动化节省时间。这样,您就可以更好地计划您的行动。
Windows Terminal 是一个终端模拟器
配置文件下拉列表已展开的 Windows 终端
Microsoft 在 2019 年(Windows 10 时代)推出了 Windows Terminal 作为终端模拟器。在这种情况下,它可以模拟命令行 shell 的行为和功能,包括命令提示符和 PowerShell。该应用最著名的一点是为 Windows 带来了社区长期以来对 Linux 羡慕不已的命令行工具:BASH (Bourne Again SHell)。BASH (Bourne Again SHell)。
要在 Windows 终端中运行 BASH 和其他 Linux shell,包括 ZSH、FISH 和 Ksh (KornShell),您首先必须启用适用于 Linux 的 Windows 子系统 ( WSL)。
您还可以在 Windows 终端中运行 Azure Cloud Shell,这样您就可以从 Windows 终端中管理 Azure 资源。
用户界面和定制
Windows 终端的设置页面
Windows 终端最显着的功能之一是转向现代选项卡式界面,使您可以并行运行多个命令行实用程序。例如,您可以在使用 PowerShell、BASH 或 Azure 时同时运行命令提示符的多个实例。 这是 PowerShell 无法做到的。
PowerShell 和 Windows 终端的用户界面都是可自定义的。在 PowerShell 中,您可以在较小程度上通过更改字体、字体颜色和提示来直观地自定义环境。您可以以多种方式自定义 Windows 终端,包括调整起始配置文件设置、配色方案、交互和渲染选项。
请注意,您还可以使用 Windows 终端中的预设配色方案自定义 PowerShell。
Unicode 和 UTF 支持
在 Windows 终端中,由于其 Unicode 和 UTF 支持,您可以使用其他语言的表情符号和字符。当您将其与其新的加速 GPU 文本渲染引擎结合使用时,它可以毫无问题地显示非标准字符。例如,您可以从网站复制表情符号并将其粘贴到 Windows 终端中,它将正确显示。
PowerShell 还支持 Unicode 和 UTF,但您可能会遇到编码问题,例如特定字符的错误和限制。对于其他语言的字符和表情符号尤其如此。 Windows Terminal 在这方面提供了更好的体验。
社区支持
Windows Terminal 和 PowerShell 是开源项目,有活跃的社区参与其开发。两个社区都对这些项目充满热情,并将不断支持他们的应用程序、提高其性能并添加更多功能。还有适用于 Windows 终端和 PowerShell 的大量文档,因此您会发现不乏论坛、教程和指南来帮助您有效地使用它们。
Windows 终端就是您所需要的
PowerShell 有助于将 .NET Framework 的强大功能引入命令行环境,而 Windows Terminal 则可以在 Windows 计算机上模拟各种 shell,包括来自 Linux 的 shell。
此外,与 PowerShell 相比,Terminal 具有更多的自定义选项和更好的 Unicode/UTF 支持。
虽然这些工具中的每一种本身都很强大,但无需使用 Windows 终端打开 PowerShell,因为它也可以模拟 Shell 环境。