![Windows PowerShell 是否与 Unix/Linux 的终端一样强大?](https://linux22.com/image/1395271/Windows%20PowerShell%20%E6%98%AF%E5%90%A6%E4%B8%8E%20Unix%2FLinux%20%E7%9A%84%E7%BB%88%E7%AB%AF%E4%B8%80%E6%A0%B7%E5%BC%BA%E5%A4%A7%EF%BC%9F.png)
是 Windows 吗电源外壳和Linux一样强大和高效terminal
吗?
线下有人告诉我,Windows PowerShell 是一种让 Unix 管理员在使用 Windows 时感觉更舒服的尝试,无需多言。但我猜,只有当它具有(或几乎)相同的效率时,他们才会感到舒服。
答案1
嗯,你的第一个问题是,你正在将 shell (PowerShell) 与终端进行比较。在 Linux 中,终端是发送和接收基于字符的 I/O 的东西,并且假定它背后有一个交互式用户(换句话说,它是用于包含shell)。最常见的 shell 之一是之内Ubuntu 的终端是猛击,但还有其他。
线下人士告诉我,无需多加解释,Windows PowerShell 是一种让 Unix 管理员在使用 Windows 时感觉更舒服的尝试。
实际上,正确的说法是 PowerShell 是 Windows 公开的大部分威盛,串口和。网交互式和可编写脚本的命令行环境中的对象模型 - 并且此命令行环境继续借用 Unix shell 中的许多概念 - 例如管道和 I/O 重定向,就像旧的 DOS(2.0 及更高版本)一样command.com
。cmd.exe
管道与 PowerShell 中的对象一起工作。您可以执行诸如创建 HTML 之类的操作,并且可能Excel如果你足够了解,可以随时使用电子表格。它当然是旧cmd.exe
shell 的升级/替换,与旧 shell 相比没有太大变化Windows NT 4.0。
至于语法,它不太像 Unix shell(尽管最终没有一个 cmdlet 用作/
开关或参数指示器),但有许多经典 Unix 命令的别名 - 例如ls
在 PowerShell 窗口中输入 就像 一样dir
。但这些只是别名(“Get-Alias”列出了这些?)。
关于 PowerShell 的功能,您确实有类似的功能,以纯脚本的方式,来自VB脚本和CScript- 尽管这两者都早于.NET。
大多数情况下,Unix 用户在使用 Bash 时不需要非常熟悉程序员或对象可能非常复杂的对象模型,而这对于许多高级和简单的 PowerShell 任务都是必需的。但这之所以可能,是因为许多标准都有明确的直接文本输出惯例POSIX命令。Windows 没有这种传统 - 它似乎更喜欢使用mmc
控制台来执行管理任务,多年来到处添加命令。此外,许多著名的 Unix 实用程序都很复杂,在使用前需要进行一些研究 -rsync
,wget
等等。效率可能更多地取决于一个人对自己使用的工具的了解程度。
答案2
Windows PowerShell 和 Unix shell 是两个不同的东西,各有优点。
Unix(shell)的理念是一切都是文件。Unix 命令的输入和输出可以像文件一样访问。这使得链接命令变得非常简单,并且将一个命令的输出重用到另一个命令中是 Unix shell 的强大之处。
据我所知,在 Windows PowerShell 中,一切都是对象。您可以将一个命令的结果作为对象传递给另一个命令。这确实很强大,但它没有 Unix 的简单概念。
我不认为 PowerShell 与 Unix shell 一样高效,但其他人认为它高效。
但这种比较毫无意义,因为 Windows 不是 *nix 系统,因此 *nix 概念不适用。与操作系统,PowerShell 是一个很大的改进。