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

在Windows上,Git Bash与Windows Power Shell与命令提示符之间有什么区别,windows,shell,powershell,command-prompt,git-bash,Windows,Shell,Powershell,Command Prompt,Git Bash,我是一个习惯于使用Mac终端的Mac用户。现在我正在使用Windows 这些CLI选项之间有什么区别 什么时候我应该使用一个而不是另一个 是否有更多的CLI选项我应该考虑? 如果您是Mac用户,尝试适应Windows,您会使用什么CLI 我尝试使用Windows的原因是,我希望确保Docker项目的CLI适用于Windows用户,我可以将来自容器的文件写入Windows,并确保我的自述文件具有针对Windows用户的说明。基本上,我也会在Windows上测试我所做的一切,比如Python。G

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

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

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

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

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

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


如果我是一个尝试适应Windows的Mac用户。。。视情况而定。短期内,使用类似于
bash
的熟悉工具会更容易。但从长远来看,你——更重要的是,你的潜在用户——可能不想依赖第三方工具,特别是对于Windows用户,这通常会带来额外的学习曲线


当…时使用哪一个。。。这实际上取决于你想要完成什么——无论是在技术功能方面还是在你想要呈现给用户的界面方面。如上所述,我认为PosiS壳比CLI更适合脚本编写,除非您只需要运行一个CMDLET(内置的或自己创建的)。恕我直言,
gitbash
不是一个非常完整的实现,我怀疑没有多少Windows安装有它,它只支持Windows Vista,也就是说,不支持Windows XP。PowerShell是一个笨拙的、过于冗长的令人讨厌的东西,任何理智的人都不愿意去学习它——我认为你可以运行到Windows7。几乎所有的Windows版本都可以使用命令提示符,但其语法和特性都很糟糕。我没有把它作为一个答案,因为这只是我的意见。YMMV。