【问题标题】:In the install path of Git for Windows, what's the difference between ./git-bash.exe and bin/bash.exe and bin/sh.exe?在 Git for Windows 的安装路径中,./git-bash.exe 与 bin/bash.exe 和 bin/sh.exe 有什么区别?
【发布时间】:2019-05-27 14:05:06
【问题描述】:

在 git for windows 的安装路径中,我找到了这 3 个 exe:

./git-bash.exe,

./bin/bash.exe,

./bin/sh.exe,

启动其中任何一个都会给我一个可用的终端。

第一个是安装时创建的开始菜单中的默认快捷方式,第二个在VSCode文档中用于设置VSCode中的集成终端,第三个在ConEmu文档中提到。

它们之间有什么区别,我应该使用哪个?

【问题讨论】:

  • 第一个是终端模拟器,而 bash 和 sh 是 shell。

标签: git git-bash


【解决方案1】:

要回答这个问题,你需要先了解“shell”与“终端应用程序”。

“shell”是您的命令的解释器。当您在 cmd 和 bash 中键入相同的命令时,您会得到不同的结果,因为它们是不同的解释器。 shell的例子包括cmdpowershellshbashzsh等(bashzsh都是sh的更强大的版本)。在 Windows 上,这些 shell 以 .exe 文件的形式存在。双击它们将启动一个 CLI 窗口。窗口是 Windows 提供的一个最基本的“终端应用程序”,窗口没有正式名称。

“终端应用程序”是模拟过去物理终端的 GUI,它们提供标签、字体、颜色等 UI 功能。终端应用程序的示例包括 Git BashConEmu、@ 中的终端987654332@,新的Window Terminal等。你可以打开它们里面的任何shell。

回到原来的问题:sh.exebash.exe 是 shell。如果您有自己喜欢的终端应用程序,您将使用这些。 git-bash.exe 是一个终端应用程序(一个非常基本的应用程序,它的名字是“mintty”),它会自动打开 bash shell。如果您有自己喜欢的终端应用程序(如ConEmu 或新的Windows Terminal),则无需使用git-bash.exe。但是,git-bash.exe 确实包含一些环境设置。要在首选终端中启动bash.exe 的最佳方式,您可以从ConEmu Doc 中获得一些灵感。

【讨论】:

    【解决方案2】:

    git-bash是“Git for windows”的一部分,提供类似于*nix bash 的命令行环境。

    Windows 10 包含“Windows 子系统”,它可以在 Windows 内部提供 Linux 环境(包括 shbash,可以在 Difference between sh and bash 找到简短的比较)

    您可以将它们中的任何一个用于 git。与您的同事使用相同可能是一个优势(如果您需要有关 shell 或脚本的任何帮助)。

    【讨论】:

    • 感谢您链接 sh 和 bash 之间的差异,这很有用。然而,这个问题并没有问任何关于 WSL 的问题。
    【解决方案3】:

    Bourne-Again Shell 或bashsh 的超集,即您可以在sh 中执行的任何操作也可以在bash 中执行。 Bashmore features 让编写脚本更容易。

    另一方面,Git bashGit for Windows 中包含的msys shell,因为 Windows 本身不支持 bash 功能(除非您添加 Windows Sub-sytem for Linux)。

    【讨论】:

      猜你喜欢
      • 2019-01-14
      • 2019-12-28
      • 2020-03-28
      • 2021-08-07
      • 2017-03-08
      • 2019-12-07
      • 2021-04-23
      • 2016-01-30
      • 2011-04-08
      相关资源
      最近更新 更多