unix - PowerShell 是否已准备好替换 Windows 上的 Cygwin shell?

标签 unix shell powershell

我正在考虑是否应该学习 PowerShell,还是坚持使用 Cygwin/Perl脚本/Unix shell脚本等

PowerShell 的好处是没有 Cygwin 的队友可以更轻松地使用脚本;但是,我不知道我是否真的会编写那么多通用脚本,或者人们是否会使用它们。

Unix 脚本是如此强大,PowerShell 是否足够接近以保证切换?

以下是我在 PowerShell 中寻找的一些具体内容(或等效内容):

  • grep
  • 排序
  • uniq
  • Perl(PowerShell 与 Perl 的功能有多接近?)
  • AWK
  • sed
  • file(提供文件信息的命令)
  • 等等

最佳答案

工具只是工具。
他们要么帮忙,要么不帮忙。
您需要帮助,否则就不需要。

如果您了解 Unix 并且这些工具可以满足您在 Windows 上的需要,那么您就是一个快乐的人,无需学习 PowerShell(除非您想探索)。

我的初衷是在 Windows 中包含一组 Unix 工具并使用它来完成(我们团队中的许多人都有深厚的 Unix 背景并且对该社区抱有极大的尊重。)

我发现这并没有多大帮助。原因是 AWK/grep/sed 不适用于 COM , WMI , ADSI 、注册表、证书存储等等

换句话说,UNIX 是一个围绕文本文件进行 self 调整的整个生态系统。因此,文本处理工具是有效的管理工具。 Windows 是一个完全不同的生态系统,围绕 API 和对象进行 self 调整。这就是我们发明 PowerShell 的原因。

我认为您会发现,在很多情况下,文本处理无法在 Windows 上满足您的需要。那时,您将需要使用 PowerShell。注意——这不是一个全有或全无的交易。在 PowerShell 中,您可以调用 Unix 工具(并使用它们的文本处理或 PowerShell 的文本处理)。您还可以从 Unix 工具调用 PowerShell 并获取文本。

再说一遍 - 这里没有宗教信仰 - 我们的重点是为您提供成功所需的工具。这就是为什么我们如此热衷于反馈。请告诉我们哪些地方在工作中遇到了困难,或者哪些地方您没有需要的工具,我们会将其列入 list 并进行处理。

老实说,我们正在把自己从 30 年的深渊中挖掘出来,所以这需要一段时间。也就是说,如果您选择 Windows Server 2008 的测试版/R2 和/或我们服务器产品的测试版,我想您会对这个漏洞被填补的速度感到震惊。

关于使用情况 - 迄今为止,我们的下载量已超过 350 万次。这不包括在 Windows Server 2008 中使用它的人,因为它作为可选组件包含在内,不需要下载。

V2 将在所有版本的 Windows 中发布。除了服务器核心之外,所有版本都默认启用它,因为它是可选组件。 Windows 7/Windows Server 2008 R2 发布后不久,我们将在所有平台(Windows XP 及更高版本)上提供 V2。换句话说 - 您在学习上的投资将适用于大量机器/环境。

最后一条评论。如果/当你开始学习 PowerShell 时,我想你会很高兴。大部分设计都深受我们的 Unix 背景的影响,因此虽然我们有很大不同,但您很快就会学会(在您不再提示它不是 Unix 之后:-))。

我们知道人们的学习预算非常有限 - 这就是为什么我们非常注重一致性。您将学到一些东西,然后您将一遍又一遍地使用它。

实验!享受!参与!

关于unix - PowerShell 是否已准备好替换 Windows 上的 Cygwin shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/573623/

相关文章:

linux - 如何使用 awk 打印第三列值等于 "0"而不是 0 的所有行?

c++ - 未按预期调用析构函数

linux - Ubuntu bash 脚本在第一列上进行 grepping 和切割

azure - 使用列表获取 Azure 资源

.net - 在 Windows 任务栏 (Powershell) 中显示进度

linux - 在 Bash 中模拟一个微调器以取得进步

c++ - 跨 unix 文件系统使用带有 popen 的 FILE 描述符时崩溃

linux - 如何解析 svn diff 结果?

linux - 正则表达式 - 查找具有一个字符串的事件

c# - 在 PowerShell 中提供 C# 抽象类的实现