Windows系统下WSL的启动与配置全攻略

11 次阅读

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 版本:

PowerShell
wsl --list --verbose

输出示例:

  NAME            STATE           VERSION
* Ubuntu          Running         2

其中 VERSION 显示为 2 表示当前 Linux 发行版运行在 WSL 2 环境。

二、Windows 开启 WSL 功能

使用 WSL 前,需要先启用 Windows 相关系统组件。

方法一:使用 PowerShell 命令开启

以管理员身份打开 PowerShell,执行:

PowerShell
wsl --install

该命令会自动完成以下操作:

  • 开启 Windows 子系统 Linux 功能;

  • 开启虚拟机平台;

  • 安装最新 WSL 内核;

  • 默认安装 Ubuntu Linux。

执行完成后,根据提示重启电脑即可。

如果系统较旧,可以手动启用:

PowerShell
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

开启虚拟机平台:

PowerShell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重启系统:

PowerShell
shutdown /r /t 0

三、安装 Linux 发行版

WSL 支持多个 Linux 发行版,包括:

  • Ubuntu

  • Debian

  • Kali Linux

  • openSUSE

  • Oracle Linux

查看可安装发行版:

PowerShell
wsl --list --online

示例:

NAME              FRIENDLY NAME
Ubuntu            Ubuntu
Debian            Debian GNU/Linux
kali-linux        Kali Linux Rolling

安装指定发行版:

PowerShell
wsl --install -d Ubuntu

安装完成后,首次启动会要求创建 Linux 用户:

Enter new UNIX username:
New password:

该账号用于 Linux 环境中的日常操作。

四、启动 WSL 的多种方式

WSL 提供多种启动方式,用户可以根据使用场景选择。

1. 使用开始菜单启动

安装 Linux 发行版后,可以直接:

  1. 打开 Windows 开始菜单;

  2. 搜索 Ubuntu;

  3. 点击启动。

这种方式适合日常开发使用。

2. 使用命令启动默认 Linux

打开 PowerShell 或 CMD:

PowerShell
wsl

系统会进入默认 Linux 环境。

例如:

Bash
user@computer:~$

表示已经进入 Linux Shell。

3. 启动指定发行版

如果安装多个 Linux 系统:

PowerShell
wsl -d Ubuntu

或者:

PowerShell
wsl --distribution Debian

4. 以指定用户启动

例如使用 root 用户:

PowerShell
wsl -u root

或者:

PowerShell
wsl --user root

常用于系统维护和权限管理。

五、WSL 常用管理命令

掌握 WSL 命令可以快速管理 Linux 环境。

查看已安装系统

PowerShell
wsl -l

详细查看:

PowerShell
wsl -l -v

查看 WSL 状态

PowerShell
wsl --status

可以查看:

  • 默认发行版;

  • 默认 WSL 版本;

  • 内核版本。

设置默认发行版

如果安装多个 Linux:

PowerShell
wsl --set-default Ubuntu

以后执行:

PowerShell
wsl

会自动进入 Ubuntu。

设置 WSL 版本

将发行版转换为 WSL 2:

PowerShell
wsl --set-version Ubuntu 2

转换过程可能需要几分钟。

关闭 WSL

关闭所有运行中的 Linux:

PowerShell
wsl --shutdown

适用于:

  • 释放内存;

  • 重启 Linux 环境;

  • 修改配置后重新加载。

六、配置 WSL 网络环境

WSL 2 使用虚拟网络,因此 Linux 和 Windows 之间存在独立网络环境。

查看 Linux IP:

Bash
ip addr

查看 Windows 主机 IP:

Bash
cat /etc/resolv.conf

通常情况下:

  • Windows 可以访问 WSL 服务;

  • WSL 可以访问 Windows 网络;

  • 两者共享互联网连接。

启动 Web 服务后,例如:

Bash
python3 -m http.server 8000

可以直接通过:

http://localhost:8000

在 Windows 浏览器访问。

七、配置 WSL 用户环境

进入 Linux 后,可以根据开发需求安装常用工具。

更新软件源:

Bash
sudo apt update

升级软件:

Bash
sudo apt upgrade

安装常用开发工具:

Bash
sudo apt install git curl vim build-essential

查看 Linux 版本:

Bash
cat /etc/os-release

查看内核:

Bash
uname -a

八、WSL 文件系统使用技巧

WSL 中可以访问 Windows 文件。

Windows 磁盘默认挂载在:

Bash
/mnt

例如:

C盘:

Bash
/mnt/c

D盘:

Bash
/mnt/d

访问 Windows 文件:

Bash
cd /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:设置交换空间。

修改后执行:

PowerShell
wsl --shutdown

重新启动即可生效。

十、WSL 与 Docker 集成

WSL 2 是目前 Windows 使用 Docker 的推荐方案。

安装 Docker Desktop 后,可以开启:

Settings
→ Resources
→ WSL Integration

选择对应 Linux 发行版。

进入 WSL 后测试:

Bash
docker version

如果能够正常显示版本信息,说明 Docker 已经完成集成。

十一、WSL 常见问题解决

1. 提示“未启用虚拟机平台”

错误:

WslRegisterDistribution failed

解决:

确认 BIOS 已开启:

Intel VT-x
AMD-V

同时启用:

Virtual Machine Platform

2. WSL 启动速度慢

优化方法:

  • 使用 WSL 2;

  • 减少后台 Linux 服务;

  • 定期执行:

PowerShell
wsl --shutdown

释放资源。

3. 文件访问速度慢

如果项目存放在:

Bash
/mnt/c

大量 Node.js、Java、Python 项目可能出现性能下降。

建议移动到:

Bash
/home/user/project

再通过 VS Code Remote WSL 开发。

4. 修改默认启动用户

查看发行版:

PowerShell
wsl -l

设置默认用户:

PowerShell
ubuntu config --default-user username

不同发行版命令可能略有区别。

十二、WSL 开发环境推荐配置

对于前端、后端以及云原生开发场景,可以采用以下组合:

前端开发

安装:

Bash
node
npm
pnpm
yarn

结合 VS Code 使用。

后端开发

安装:

Bash
OpenJDK
Python
Go
Rust

直接运行 Linux 工具链。

容器开发

配置:

Bash
Docker Desktop + WSL 2

获得接近原生 Linux 的体验。

十三、VS Code 与 WSL 集成

微软官方提供 Remote WSL 扩展,可以让 VS Code 直接连接 Linux 环境。

使用方式:

进入 WSL:

Bash
code .

VS Code 会自动打开当前 Linux 目录。

这种方式具有以下优势:

  • 使用 Linux 编译环境;

  • 保留 Windows 图形界面;

  • 支持 Git、终端、调试工具。

对于日常软件开发,这是目前最推荐的 WSL 使用方式。

十四、WSL 卸载与重置

如果需要删除 Linux 发行版:

查看名称:

PowerShell
wsl -l

注销:

PowerShell
wsl --unregister Ubuntu

注意:

该操作会删除对应 Linux 环境中的所有数据。

如果需要完全关闭 WSL:

关闭 Windows 功能:

Windows 功能
→ 取消勾选
→ 适用于 Linux 的 Windows 子系统

然后重启电脑即可。

总结

WSL 为 Windows 用户提供了一套高效的 Linux 开发环境,尤其适合程序开发、服务器测试、Docker 使用以及跨平台项目开发。通过 WSL 2,可以在无需安装传统虚拟机的情况下获得接近原生 Linux 的体验。

掌握 WSL 的启动方式、版本管理、资源配置、文件访问以及开发工具集成,可以显著提升 Windows 下的软件开发效率。对于开发人员而言,合理配置 WSL 已经成为现代 Windows 开发环境的重要组成部分。