WSL(Windows Subsystem for Linux,适用于 Linux 的 Windows 子系统)是微软为 Windows 用户提供的一套 Linux 运行环境,可以让开发者无需安装虚拟机,就能直接在 Windows 系统中运行 Linux 命令、开发工具以及服务器环境。对于需要同时使用 Windows 和 Linux 工具链的开发人员来说,WSL 极大提升了工作效率。
随着 WSL 2 架构的普及,它已经具备完整 Linux 内核支持、更好的文件系统性能以及更强的 Docker 兼容能力。本文将详细介绍 Windows 系统下 WSL 的启动方式、安装配置流程、常用命令以及性能优化技巧。
一、WSL 1 与 WSL 2 的区别
WSL 目前主要包含两个版本:WSL 1 和 WSL 2。
WSL 1 通过转换 Linux 系统调用实现兼容,不需要真正运行 Linux 内核,因此启动速度较快,占用资源较少。但由于缺少完整 Linux 内核,在部分场景下兼容性有限。
WSL 2 使用轻量级虚拟化技术运行真实 Linux 内核,具有以下优势:
-
完整支持 Linux 系统调用;
-
与 Docker 等容器工具兼容性更好;
-
文件读写性能明显提升;
-
支持更多 Linux 软件。
目前微软推荐使用 WSL 2 作为默认版本。
可以通过以下命令查看当前 WSL 版本:
PowerShellwsl --list --verbose
输出示例:
NAME STATE VERSION * Ubuntu Running 2
其中 VERSION 显示为 2 表示当前 Linux 发行版运行在 WSL 2 环境。
二、Windows 开启 WSL 功能
使用 WSL 前,需要先启用 Windows 相关系统组件。
方法一:使用 PowerShell 命令开启
以管理员身份打开 PowerShell,执行:
PowerShellwsl --install
该命令会自动完成以下操作:
-
开启 Windows 子系统 Linux 功能;
-
开启虚拟机平台;
-
安装最新 WSL 内核;
-
默认安装 Ubuntu Linux。
执行完成后,根据提示重启电脑即可。
如果系统较旧,可以手动启用:
PowerShelldism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
开启虚拟机平台:
PowerShelldism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
重启系统:
PowerShellshutdown /r /t 0
三、安装 Linux 发行版
WSL 支持多个 Linux 发行版,包括:
-
Ubuntu
-
Debian
-
Kali Linux
-
openSUSE
-
Oracle Linux
查看可安装发行版:
PowerShellwsl --list --online
示例:
NAME FRIENDLY NAME Ubuntu Ubuntu Debian Debian GNU/Linux kali-linux Kali Linux Rolling
安装指定发行版:
PowerShellwsl --install -d Ubuntu
安装完成后,首次启动会要求创建 Linux 用户:
Enter new UNIX username: New password:
该账号用于 Linux 环境中的日常操作。
四、启动 WSL 的多种方式
WSL 提供多种启动方式,用户可以根据使用场景选择。
1. 使用开始菜单启动
安装 Linux 发行版后,可以直接:
-
打开 Windows 开始菜单;
-
搜索 Ubuntu;
-
点击启动。
这种方式适合日常开发使用。
2. 使用命令启动默认 Linux
打开 PowerShell 或 CMD:
PowerShellwsl
系统会进入默认 Linux 环境。
例如:
Bashuser@computer:~$
表示已经进入 Linux Shell。
3. 启动指定发行版
如果安装多个 Linux 系统:
PowerShellwsl -d Ubuntu
或者:
PowerShellwsl --distribution Debian
4. 以指定用户启动
例如使用 root 用户:
PowerShellwsl -u root
或者:
PowerShellwsl --user root
常用于系统维护和权限管理。
五、WSL 常用管理命令
掌握 WSL 命令可以快速管理 Linux 环境。
查看已安装系统
PowerShellwsl -l
详细查看:
PowerShellwsl -l -v
查看 WSL 状态
PowerShellwsl --status
可以查看:
-
默认发行版;
-
默认 WSL 版本;
-
内核版本。
设置默认发行版
如果安装多个 Linux:
PowerShellwsl --set-default Ubuntu
以后执行:
PowerShellwsl
会自动进入 Ubuntu。
设置 WSL 版本
将发行版转换为 WSL 2:
PowerShellwsl --set-version Ubuntu 2
转换过程可能需要几分钟。
关闭 WSL
关闭所有运行中的 Linux:
PowerShellwsl --shutdown
适用于:
-
释放内存;
-
重启 Linux 环境;
-
修改配置后重新加载。
六、配置 WSL 网络环境
WSL 2 使用虚拟网络,因此 Linux 和 Windows 之间存在独立网络环境。
查看 Linux IP:
Baship addr
查看 Windows 主机 IP:
Bashcat /etc/resolv.conf
通常情况下:
-
Windows 可以访问 WSL 服务;
-
WSL 可以访问 Windows 网络;
-
两者共享互联网连接。
启动 Web 服务后,例如:
Bashpython3 -m http.server 8000
可以直接通过:
http://localhost:8000
在 Windows 浏览器访问。
七、配置 WSL 用户环境
进入 Linux 后,可以根据开发需求安装常用工具。
更新软件源:
Bashsudo apt update
升级软件:
Bashsudo apt upgrade
安装常用开发工具:
Bashsudo apt install git curl vim build-essential
查看 Linux 版本:
Bashcat /etc/os-release
查看内核:
Bashuname -a
八、WSL 文件系统使用技巧
WSL 中可以访问 Windows 文件。
Windows 磁盘默认挂载在:
Bash/mnt
例如:
C盘:
Bash/mnt/c
D盘:
Bash/mnt/d
访问 Windows 文件:
Bashcd /mnt/c/Users
同时,Windows 也可以访问 WSL 文件:
在资源管理器地址栏输入:
\wsl$
即可查看 Linux 文件。
不过,对于 Linux 开发项目,建议存放在 Linux 文件系统中,例如:
Bash/home/user/project
这样可以获得更好的读写性能。
九、配置 WSL 默认资源限制
WSL 2 会自动动态分配 CPU 和内存。如果需要限制资源,可以创建配置文件。
Windows 用户目录创建:
.wslconfig
例如:
INI[wsl2] memory=4GB processors=4 swap=2GB
参数说明:
-
memory:限制最大内存;
-
processors:限制 CPU 核心数量;
-
swap:设置交换空间。
修改后执行:
PowerShellwsl --shutdown
重新启动即可生效。
十、WSL 与 Docker 集成
WSL 2 是目前 Windows 使用 Docker 的推荐方案。
安装 Docker Desktop 后,可以开启:
Settings → Resources → WSL Integration
选择对应 Linux 发行版。
进入 WSL 后测试:
Bashdocker version
如果能够正常显示版本信息,说明 Docker 已经完成集成。
十一、WSL 常见问题解决
1. 提示“未启用虚拟机平台”
错误:
WslRegisterDistribution failed
解决:
确认 BIOS 已开启:
Intel VT-x AMD-V
同时启用:
Virtual Machine Platform
2. WSL 启动速度慢
优化方法:
-
使用 WSL 2;
-
减少后台 Linux 服务;
-
定期执行:
PowerShellwsl --shutdown
释放资源。
3. 文件访问速度慢
如果项目存放在:
Bash/mnt/c
大量 Node.js、Java、Python 项目可能出现性能下降。
建议移动到:
Bash/home/user/project
再通过 VS Code Remote WSL 开发。
4. 修改默认启动用户
查看发行版:
PowerShellwsl -l
设置默认用户:
PowerShellubuntu config --default-user username
不同发行版命令可能略有区别。
十二、WSL 开发环境推荐配置
对于前端、后端以及云原生开发场景,可以采用以下组合:
前端开发
安装:
Bashnode npm pnpm yarn
结合 VS Code 使用。
后端开发
安装:
BashOpenJDK Python Go Rust
直接运行 Linux 工具链。
容器开发
配置:
BashDocker Desktop + WSL 2
获得接近原生 Linux 的体验。
十三、VS Code 与 WSL 集成
微软官方提供 Remote WSL 扩展,可以让 VS Code 直接连接 Linux 环境。
使用方式:
进入 WSL:
Bashcode .
VS Code 会自动打开当前 Linux 目录。
这种方式具有以下优势:
-
使用 Linux 编译环境;
-
保留 Windows 图形界面;
-
支持 Git、终端、调试工具。
对于日常软件开发,这是目前最推荐的 WSL 使用方式。
十四、WSL 卸载与重置
如果需要删除 Linux 发行版:
查看名称:
PowerShellwsl -l
注销:
PowerShellwsl --unregister Ubuntu
注意:
该操作会删除对应 Linux 环境中的所有数据。
如果需要完全关闭 WSL:
关闭 Windows 功能:
Windows 功能 → 取消勾选 → 适用于 Linux 的 Windows 子系统
然后重启电脑即可。
总结
WSL 为 Windows 用户提供了一套高效的 Linux 开发环境,尤其适合程序开发、服务器测试、Docker 使用以及跨平台项目开发。通过 WSL 2,可以在无需安装传统虚拟机的情况下获得接近原生 Linux 的体验。
掌握 WSL 的启动方式、版本管理、资源配置、文件访问以及开发工具集成,可以显著提升 Windows 下的软件开发效率。对于开发人员而言,合理配置 WSL 已经成为现代 Windows 开发环境的重要组成部分。