bash - 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
解决方案
WSL 是一个类似 Linux 的兼容层。您在 WSL 之上运行 Linux 应用程序,他们认为它们在 Linux 上本地运行,而系统调用被转换为 Windows 操作系统系统调用(WSL2 - 尚未发布 - 是在 Windows 内运行的完整 Linux 内核)。您确实可以通过 /mnt/c/... 访问 Windows 文件,但就 Windows-Linux 互操作性而言,这就是您所期望的一切。
另一方面,Git-bash 是一个Windows应用程序——一个运行 Windows 应用程序的 shell。其中一些可以使用 Linux 兼容库(Cygwin) 编译。但他们不必如此。这提供了一种不太“类似 Linux”的体验,但如果您想要的只是一些 Linux 命令行工具并且不需要安装成熟的 Linux 可执行文件,这可能是一个很好的折衷方案。
推荐阅读
- amazon-web-services - 如何从公共 s3 url 获取整个对象列表
- wso2 - WSO2 esb 验证器调解器未显示确切失败
- python - 将字典插入使用 Python 中的 JSON 创建的 SQL 数据库
- django - 使用平面结构代码提示表单错误
- javascript - 如何通过承诺检查异步函数何时完成执行?
- azure-devops - 部署组目标机器代理和 VSTS 服务器之间的连接如何工作?
- performance - CPU 利用率压力测试
- angular - 无法让 automapper-ts 在 Angular 2+ 项目中工作
- c# - 将我的控制器工厂设置为自定义控制器后,我可以使用 DefaultControllerFactory
- css - 如何在asp.net后面的.ashx.cs代码中添加css