首页 > 解决方案 > Git bash 和 WSL 有什么区别

问题描述

我刚刚在我的 Windows 机器上安装了 Git SCM。我的机器之前安装了 Node。我可以在 git bash 中使用 node -v 。但是,为什么我能够在 Git Bash 中而不是在 WSL Bash 中使用 Windows 应用程序。

WSL Bash 内部

hello@comp:~$ node -v

Command 'node' not found, but can be installed with:

sudo apt install nodejs

在 Git Bash 里面——

hello@comp MINGW64 
$ node -v
v12.10.0

标签: bashgitgit-bashwindows-subsystem-for-linux

解决方案


WSL 是一个类似 Linux 的兼容层。您在 WSL 之上运行 Linux 应用程序,他们认为它们在 Linux 上本地运行,而系统调用被转换为 Windows 操作系统系统调用(WSL2 - 尚未发布 - 是在 Windows 内运行的完整 Linux 内核)。您确实可以通过 /mnt/c/... 访问 Windows 文件,但就 Windows-Linux 互操作性而言,这就是您所期望的一切。

另一方面,Git-bash 是一个Windows应用程序——一个运行 Windows 应用程序的 shell。其中一些可以使用 Linux 兼容(Cygwin) 编译。但他们不必如此。这提供了一种不太“类似 Linux”的体验,但如果您想要的只是一些 Linux 命令行工具并且不需要安装成熟的 Linux 可执行文件,这可能是一个很好的折衷方案。


推荐阅读