在Windows上,Git Bash与Windows Power Shell与命令提示符之间有什么区别

时间:2019-05-29 13:49:17

标签: windows shell powershell command-prompt git-bash

我是一个习惯于Mac终端的Mac家伙。现在我正在使用Windows。

  • 这些CLI选项之间的区别是什么?
  • 我什么时候应该使用另一个?
  • 还有更多我应该考虑的CLI选项吗?
  • 如果您是试图适应Windows的Mac电脑,您将使用什么CLI?

我尝试使用Windows的原因是,我想确保Docker项目的CLI对Windows用户有效,我可以将来自容器的文件写入Windows,并确保README文件具有针对Windows用户的说明。 。并基本上也测试我在Windows上所做的一切,例如Python。

1 个答案:

答案 0 :(得分:2)

Git bash是bash,它也是IIRC,也是MacOS上的默认shell。尽管存在多种实现(CygWin,MinGW等),但它不是Windows上的默认Shell。
Git与许多* NIX实用程序捆绑在一起;为了避免与类似命名的Windows命令发生“冲突”,最常见的安装选项是安装bash,使其他类似* NIX的命令仅在运行bash时可用。 Git安装程序将创建一个快捷方式来启动此bash的“私有”版本,从而启动“ git bash”。

命令提示符运行默认的Windows Shell CMD.EXE,它是旧的MS-DOS命令Shell COMMAND.COM的派生版本。它的功能远不如大多数* NIX shell。例如,它直到最近才支持if / then / else构造,并且不支持shell函数或别名(尽管对于这些限制有一些解决方法)。

PowerShell更像是脚本环境。我将它与UNIX / Linux系统上的Perl进行了比较,它比标准Shell强大得多,但不一定是我想在命令行中使用的东西。
要注意的一件事是,某些PowerShell功能需要的PowerShell版本比默认安装在特定Windows版本上的更高,并且更新PowerShell通常需要管理员权限。根据版本,您可能还需要更新.NET Framework。


如果我是试图适应Windows的Mac人士,那就取决于。从短期来看,使用类似bash这样的熟悉的语言会更容易。但是从长远来看,您-更重要的是您的潜在用户-可能不希望依赖第三方工具,尤其是对于Windows用户而言,通常会带来额外的学习曲线。

在什么情况下使用什么...实际上取决于您要实现的目标-无论是技术功能还是要呈现给用户的界面。如上所述,除非您只需要运行cmdlet(内置的或自己创建的cmdlet),否则我认为PowerShell比CLI更适合脚本编写。