在 Windows 10 上,git-bash 和 cygwin shell 可以做同样的事情吗?
什么可以做而另一个不能?
例如,
哪些程序和命令可以在一个中运行而在另一个中不能运行?
例如,在 git-bash 中,我无法运行某些 Windows 命令:
$ reg add "HKCU\Software\Microsoft\VisualStudio\14.0_Config\MSBuild" /v EnableOutOfProcBuild /t REG_DWORD /d 0 /f
ERROR: Invalid syntax.
Type "REG ADD /?" for usage.
Run Code Online (Sandbox Code Playgroud)
但是在 Cygwin 中,它运行良好
$ reg add "HKCU\Software\Microsoft\VisualStudio\14.0_Config\MSBuild" /v EnableOutOfProcBuild /t REG_DWORD /d 0 /f
The operation completed successfully.
Run Code Online (Sandbox Code Playgroud)
本来以为 git-bash 和 cygwin 都可以在 Windows 下运行程序。那么为什么 git-bash 不起作用,而 cygwin 可以?
谢谢。
Alw*_*ing 11
不同之处在于 Cygwin 知道如何处理所谓的“Win32”路径名。粗略地说,它知道“\”是一个路径名分隔符,而不是像 Bash 中那样的 shell 转义字符。您显示的错误是 Bash 将 "\" 解释为转义字符。(编辑:您可以尝试将一个 \ 替换为两个,从而转义反斜杠,以便 Bash 将命令正确传递给 reg.exe。)
话虽如此,虽然 Cygwin 可以理解 Windows 路径名,但它不喜欢这样做。该文档警告您不要使用它们。当然,时不时地向后滑一点也无妨。但是,虽然您可以在 Cygwin 中运行 Windows 程序,但建议您应该在 CMD.EXE 处理器中运行 Windows 程序,并在 Cygwin 中运行 UNIX 程序,以确保您的长期理智。
小智 5
两者之间有很多重叠之处。但最终它们是 Bash shell 的不同实现。
Cygwin 有大量可供安装的可选软件,包括多种不同的编程语言、编译器、各种网络工具等。您还可以安装 X Window 系统和许多 X 应用程序。
有了 Git Bash,你就可以得到你所得到的,而且安装额外的工具有点困难。实际上我的工作站上都有,因为有些事情我无法在 git bash 中完成。我也从 git bash 窗口调用 Cygwin 应用程序取得了非常复杂的成功。
此外,Cygwin 是一个完整的 POSIX 环境,而不仅仅是 Bash,因此您通常可以在其中编译非分布式代码。例如,如果您找到了一个不错的 Linux 工具的源代码,您通常可以为 Cygwin 编译该工具。对于 Git Bash 来说就不那么重要了。正如我上面提到的,即使您为 Cygwin 编译它,它也可能无法在 Git Bash 中工作。
除此之外,它们大多非常相似。有趣的是,Git Bash 包含cygpath
用于转换 Windows 和 Posix 文件路径的命令,因为 Git Bash 是基于 MinGW 的 AFAIK,而 MinGW 是与 Cygwin 不同的系统。
归档时间: |
|
查看次数: |
16422 次 |
最近记录: |