在Git for Windows的安装路径中,什么';/git-bash.exe与bin/bash.exe和bin/sh.exe之间的区别是什么?

在Git for Windows的安装路径中,什么';/git-bash.exe与bin/bash.exe和bin/sh.exe之间的区别是什么?,git,git-bash,Git,Git Bash,在git for windows的安装路径中,我找到了以下3个EXE: /git bash.exe /bin/bash.exe /bin/sh.exe 启动它们中的任何一个都会给我一个可用的终端 第一个是安装创建的开始菜单中的默认快捷方式,第二个在VSCode文档中用于在VSCode中设置集成终端,第三个在ConEmu文档中提到 它们之间有什么区别?我应该使用哪一种?git bash是“git for windows”的一部分,提供了类似于*nix bash的命令行环境 Windows 10包括

在git for windows的安装路径中,我找到了以下3个EXE:

/git bash.exe

/bin/bash.exe

/bin/sh.exe

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

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


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

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

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


您可以将其中任何一个用于git。使用与同事相同的工具可能是一种优势(如果您需要shell或脚本方面的帮助)。

Bourne shell或
bash
sh
的超集,也就是说,您可以在
sh
中执行的任何操作也可以在
bash
中执行<代码>Bash使编写脚本变得更容易


另一方面,
gitbash
是包含在
gitforwindows
中的
msys
shell,因为Windows本机不支持bash功能(除非您添加)。要回答这个问题,您需要先了解“shell”与“终端应用程序”

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

“终端应用程序”是一种模拟旧时代物理终端的GUI,它们提供诸如选项卡、字体、颜色等UI功能。终端应用程序的示例包括
Git Bash
ConEmu
、VSCode中的终端、新的
窗口终端等。您可以打开其中的任何外壳


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

首先是终端仿真器,bash和sh是shell。感谢您链接sh和bash之间的差异,这非常有用。然而,这个问题并没有问任何关于WSL的问题。只需添加
bash.exe
sh.exe
的超集,具有更优雅的语法和更多的功能。