首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Windows上,Git Bash与Windows Power Shell与命令提示符的区别是什么?

在Windows上,Git Bash与Windows Power Shell与命令提示符的区别是什么?
EN

Stack Overflow用户
提问于 2019-05-29 13:49:16
回答 2查看 23.8K关注 0票数 24

我是Mac的人,习惯了Mac的终端。现在我正在使用Windows。

  • 这些CLI选项之间的区别是什么?
  • 我什么时候应该用一个而另一个呢?
  • 我是否应该考虑更多的CLI选项?
  • 如果你是一个试图适应Windows的Mac用户,你会使用什么CLI?

我尝试使用Windows的原因是,我希望确保我的Docker项目的CLI为Windows用户工作,我可以将来自容器的文件写入Windows,并确保我的自述文件对Windows用户有指示。基本上测试我在Windows上所做的一切,比如Python。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-29 14:20:54

Git是bash,它也是MacOS上的默认外壳。它不是Windows上的默认shell,尽管有几个实现(CygWin、MinGW、.)。

Git与许多POSIX (UNIX/Linux/等)捆绑在一起。除了bash之外,为了避免与类似名称的bash命令发生“冲突”,最常见的安装选项是安装bash,使其他POSIX命令只有在运行bash时才可用。Git安装程序将创建一个快捷方式来启动这个“私有”版本的bash,从而启动"git“。

Windows命令提示符运行默认的Windows,CMD.EXE,它是旧的MS命令shell COMMAND.COM的衍生物。它的能力要比大多数POSIX shell低得多;例如,它直到最近才支持if/ than /else结构,并且它不支持shell函数或别名(尽管有一些解决这些限制的方法)。

PowerShell更像是一个脚本环境。我将其与UNIX/Linux系统上的Perl进行比较--比标准shell强大得多,但不一定是我想在命令行使用的东西。

需要注意的一件事是,一些更好的PowerShell特性可能要求您更新PowerShell版本--与PowerShell捆绑的版本通常是几年前的。更新PowerShell通常需要管理特权;根据版本的不同,您可能还需要更新.NET框架。

如果我是个想适应Windows的Mac用户.那得看情况。在短期内,使用类似bash之类的东西会更容易。但长期而言,你--更重要的是,你的潜在用户--可能不想依赖第三方工具,尤其是对于Windows用户来说,这通常会带来额外的学习曲线。

当..。这真的取决于你想要完成什么--无论是在技术功能方面,还是在你想向用户展示的界面方面。如上所述,我认为PowerShell比CLI更适合脚本编写,除非您只需要运行cmdlet (一个内置的或自己创建的cmdlet)。

票数 22
EN

Stack Overflow用户

发布于 2022-03-31 19:23:21

这是对shell之间的一些差异的高级概述,而不是通过特性比较的特性。

CMD (命令提示符)和PowerShell都是Windows的外壳。CMD.exe来自COMMAND.COM,它本身是从MS-DOS中诞生的,具有一些逻辑结构,可以运行程序、进程输出和执行您期望从shell执行的大多数基本任务。根据其他shell所能做的,它通常被认为是非常有限的,但是如果您知道如何使用它,它并不是无能为力的。然而,它从来没有真正的“设计”,新的功能在没有明确的路线图的情况下被加入。

Powershell是一个从底层设计到.NET的外壳,并内置了更现代的语言结构。微软将Powershell设计成了CMD.exe和批处理脚本的替代品,尽管CMD远未被人们所反对。Powershell可以直接调用.NET类,本机使用WMI对象,并内置了远程处理功能。它更类似于编程或脚本语言,而不是批处理脚本。现在围绕Powershell的社区要比批处理脚本强得多,通常建议用Powershell编写新代码,而不是继续使用批处理(CMD)脚本。

Powershell一开始确实觉得自己像CMD。您可以在其中运行程序并处理其输出,在大多数情况下,程序的行为与从PowershellCMD运行的程序完全相同。但是,您很快就会发现一些不同之处--并不是所有变量都被视为环境变量,变量都以$作为前缀,而不是包装在%中,而且Powershell管道比CMD管道强大得多。Powershell也是完全面向对象的,与大多数其他主要基于文本的shell语言相比,它是独一无二的。

你可以在这里读到更多介绍了为什么推荐Powershell而不是批处理脚本,CMD.exe和批处理文件也有很好的历史记录。

Git Bash是您习惯于在Linux和MacOS上使用的bash shell,而是为MacOS编译的。它有一个名称为Git的前缀,表示它是用用于Windows的Git安装的,这是一个git包,以及为用于Windows的Git编译的各种*nix实用程序,以便与git一起使用。您可以在其中运行shbash脚本,也可以调用它安装的Unix程序。

Unix实用程序通常也可以在CMDPowerShell中运行,但在默认情况下,安装程序不会将这些实用程序添加到系统或用户PATH中,因为不可能覆盖用户在其他上下文中可能使用的相同实用程序。基本上,它将安装在Git Bash中的实用程序隔离到Git Bash

除了git自动化之外,我不建议在任何与生产相关的方面使用Git Bash本身,在这种情况下,您可能更愿意自己管理cygwinmsys2或其他Unix兼容层的安装。但是在开发过程中它可以是一个方便的shell,尽管现在我更喜欢PowerShell而不是bash的Windows。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56362161

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档