概述
在 Windows 系统上可以使用 Linux 命令行来安装依赖和环境,实现两个系统的协同工作。
WSL 是什么?(Windows Subsystem for Linux 详解)
WSL 全称 Windows Subsystem for Linux(Windows 子系统 Linux),是微软开发的一项核心技术。简单说就是:在 Windows 系统中无需虚拟机,直接运行完整的 Linux 内核和发行版(如 Ubuntu、Debian 等),实现 Windows 与 Linux 环境的无缝集成。
一、核心作用:解决 Windows 与 Linux 的兼容痛点
作为开发人员(尤其是涉及分布式、容器化开发),可能会遇到以下问题:
- 很多开源项目依赖 Linux 环境的命令行工具(
bash、make、gcc)、文件系统或服务(Docker 容器网络优化); - Windows 的 CMD/PowerShell 与 Linux 的
bash语法不兼容(如脚本、权限管理、路径格式); - 传统虚拟机(VMware、VirtualBox)占用资源高、启动慢,且 Windows 与虚拟机文件共享繁琐。
而 WSL 完美解决这些问题:
- 直接在 Windows 中运行 Linux 命令行,无需切换系统或启动虚拟机;
- 与 Windows 共享文件系统(如 WSL 可直接访问 Windows 的
C:\盘,路径为/mnt/c/); - 资源占用极低(仅占用必要内存/磁盘),启动秒级完成;
- 支持 Docker 桌面版直接集成(Docker 容器在 WSL 中运行更稳定、网络性能更好)。
二、WSL 的两个主要版本(WSL 1 vs WSL 2)
目前 WSL 有两个版本,推荐优先使用 WSL 2(项目依赖 Docker,WSL 2 是必需的):
| 特性 | WSL 1 | WSL 2(推荐) |
|---|---|---|
| 内核 | 模拟 Linux 内核 | 真正的 Linux 内核(微软定制) |
| 性能 | 文件 IO 速度慢 | 接近原生 Linux 性能 |
| 容器支持 | 不支持 Docker 原生运行 | 完美支持 Docker(与 Docker 桌面版深度集成) |
| 系统调用兼容性 | 有限制 | 几乎完全兼容 Linux 系统调用 |
| 适用场景 | 简单命令行工具使用 | 开发环境(Docker、编译、项目运行) |
执行 wsl --set-default-version 2 可将系统默认的 WSL 版本设置为 WSL 2,以满足 Docker 和项目的需求。
三、WSL 对开发者的实际价值
- 统一开发环境:本地开发(Windows 编辑器/IDE)+ 运行环境(WSL 2 Linux),避免'Windows 上能跑,Linux 服务器上跑不了'的兼容问题;
- Docker 优化:Docker 桌面版在 WSL 2 中运行时,容器的启动速度、网络稳定性、文件共享效率都远优于 Windows 原生模式;
- 原生 Linux 工具链:直接使用
git、make、gcc、ssh等 Linux 工具,无需额外安装 Windows 版本(如 Git Bash),语法和行为与服务器完全一致; - 轻量高效:相比虚拟机,WSL 2 启动快(秒级)、占用内存少,可同时运行多个 Linux 发行版(如 Ubuntu、CentOS),且相互隔离。





