WSL使用教程-在Windows上运行Linux环境
- Linux系统
- 2026-02-25
- 1137热度
- 0评论
WSL2 使用教程
📝 简介:WSL (Windows Subsystem for Linux) 是在 Windows 上运行 Linux 环境的子系统,让你无需虚拟机即可使用完整的 Linux 工具链。
1. 安装 WSL
💡 安装前检查
- 电脑系统为 Windows 11(
Win+R输入winver查看)且开启了虚拟化 - 拥有管理员权限,网络正常
1.1 快速安装
打开 PowerShell(管理员),运行:
wsl --install
1.2 安装特定发行版
wsl --install -d <发行版名称>
1.3 手动启用(如已安装但未启用)
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
⚠️ 重要:安装完成后必须重启电脑,首次启动会要求设置用户名和密码。
ℹ️ 信息:WSL2 是 WSL1 的升级版,使用真正的 Linux 内核,兼容性和性能更好,推荐使用 WSL2。
2. 启动与进入
2.1 图形方式
按 Win 键搜索 "Ubuntu" 点开,直接进入 Linux 终端。
2.2 命令方式
wsl # 进入默认发行版
wsl -d <发行版名称> # 进入指定发行版
wsl -u root # 以 root 身份进入
wsl -- ls /home # 不进入 shell,直接执行命令
2.3 什么时候会启动?
WSL2 的 VM(任务管理器中的 vmmem 进程)不会开机自启,以下操作会触发启动:
- 打开 Ubuntu 图标 / 终端输入
wsl/ VS Code Remote-WSL 打开项目 - 访问
\\wsl$路径(资源管理器、IDE 扫描、固定到快速访问等)
📝 注意:正常开机后
vmmem 不存在,只有触发上述操作才会出现。
2.4 什么时候会关闭?
自动关闭流程(两阶段)
关掉最后一个终端 → ~15秒后 → 发行版 Stopped
所有发行版 Stopped → ~60秒后 → VM 关闭(vmmem 消失,内存释放)
时间参数:
- 15 秒:硬编码,不可调
- 60 秒:可通过
.wslconfig中vmIdleTimeout修改(单位毫秒,-1= 永不自动关) - 前提:WSL 内没有后台进程(tmux/screen/nohup 等会阻止自动关闭)
手动关闭
wsl --shutdown # 立刻杀掉所有发行版 + VM(vmmem 马上消失)
wsl --terminate Ubuntu # 只杀特定发行版,VM 等 60s 后自动关
wsl -t Ubuntu # --terminate 的简写
💡 提示:
--shutdown 常用于:改完 .wslconfig 后生效、内存占用太高、排查问题。
3. 管理发行版
3.1 基础管理命令
wsl -l -v # 查看已安装的发行版和运行状态
wsl --list --online # 查看可用的在线发行版
wsl --set-default Ubuntu # 设置默认发行版
wsl --set-default-version 2 # 设置默认 WSL 版本为 2(推荐)
wsl --unregister <名称> # 卸载某个发行版(数据会丢失!)
3.2 从 rootfs 镜像安装发行版
通过 wsl --list --online 可以查看官方支持的发行版,但有时需要使用特定版本(如 Ubuntu 18.04)或其他未在列表中的发行版,这时需要手动下载并导入文件系统镜像。
❓ 问题:什么是文件系统镜像?
文件系统镜像(rootfs)
- 包含完整 Linux 目录结构(
/bin、/etc、/usr等)的压缩包 - 通常为
.tar.gz格式 - WSL 可以直接导入并运行
ISO 镜像
- 用于物理机或虚拟机安装的光盘镜像
- 包含安装程序和引导加载器
- 不能直接用于 WSL
关键区别:WSL 不需要完整的操作系统安装流程,只需要文件系统本身,因此使用 rootfs 而非 ISO。
3.2.1 导入步骤
第一步:下载文件系统镜像
以 Ubuntu 18.04 为例,从官方镜像站下载:
⚠️ 警告:选择
ubuntu-base-18.04.x-base-amd64.tar.gz 格式的文件,不是 ubuntu-18.04.x-desktop-amd64.iso。
第二步:创建安装目录
# 建议放在非 C 盘
mkdir D:\WSL\Ubuntu-Base-1804
第三步:执行导入命令
wsl --import <实例名称> <安装目录> <tar.gz路径>
# 示例
wsl --import UbuntuBase1804 D:\WSL\Ubuntu-Base-1804 C:\Downloads\ubuntu-base-18.04.5-base-amd64.tar.gz
第四步:验证导入结果
# 查看发行版列表
wsl --list --verbose
# 输出应包含 UbuntuBase1804,状态为 Running 或 Stopped
# 进入系统
wsl -d UbuntuBase1804
第五步:初始化系统
⚠️ 重要:Base 镜像是最小化安装,需要手动配置
# 1. 更新软件源
apt update && apt upgrade -y
# 2. 安装基础工具
apt install -y sudo vim wget curl
# 3. 创建普通用户
adduser <用户名>
usermod -aG sudo <用户名>
# 4. 退出(准备设置默认用户)
exit
在 PowerShell 中设置默认用户:
# 编辑 /etc/wsl.conf
wsl -d UbuntuBase1804 -u root
nano /etc/wsl.conf
添加以下内容:
[user]
default=<用户名>
保存后执行 wsl --shutdown 重启生效。
4. 备份与迁移
4.1 基础备份与恢复
# 备份前建议先关闭发行版,确保数据完整性
wsl --terminate Ubuntu
# 导出备份
wsl --export Ubuntu D:\backup\ubuntu.tar
# 导入恢复
wsl --import MyUbuntu D:\wsl\ D:\backup\ubuntu.tar
4.2 迁移 WSL 到其他磁盘
💡 提示:WSL 默认安装在 C 盘(
C:\Users\<用户名>\AppData\Local\Packages\),随着使用时间增长,虚拟磁盘文件会越来越大。建议迁移到其他磁盘以节省 C 盘空间。
4.2.1 迁移步骤
第一步:关闭并导出现有发行版
# 查看当前发行版名称和状态
wsl -l -v
# 关闭目标发行版(确保数据完整性)
wsl --terminate Ubuntu
# 导出到临时文件(以 Ubuntu 为例)
wsl --export Ubuntu D:\temp\ubuntu-backup.tar
第二步:注销删除原发行版
# ⚠️ 注意:此操作会删除 C 盘上的原实例,确保已导出备份
wsl --unregister Ubuntu
第三步:导入到新位置
# 创建目标目录
mkdir D:\WSL\Ubuntu
# 导入到新位置
wsl --import Ubuntu D:\WSL\Ubuntu D:\temp\ubuntu-backup.tar
第四步:设置默认用户
⚠️ 警告:导入后默认以 root 登录,需要恢复原用户以避免权限问题。
# 方式一:通过注册表修改(推荐)
ubuntu config --default-user <你的用户名>
# 方式二:手动编辑 /etc/wsl.conf
wsl -d Ubuntu
sudo nano /etc/wsl.conf
在 /etc/wsl.conf 中添加:
[user]
default=你的用户名
保存后执行 wsl --shutdown 重启生效。
第五步:清理临时文件
del D:\temp\ubuntu-backup.tar
✅ 成功:验证迁移结果
- ✅ 执行
wsl -l -v确认发行版正常 - ✅ 进入 WSL 检查文件和配置是否完整
- ✅ 检查
D:\WSL\Ubuntu\目录下的 ext4.vhdx 文件(虚拟磁盘)
5. 文件系统互访
5.1 Windows 访问 WSL 文件
在资源管理器地址栏输入:
\\wsl$\Ubuntu\home\用户名\
5.2 WSL 访问 Windows 文件
ls /mnt/c/ # C 盘
cd /mnt/c/Users/用户名/Desktop # 桌面
explorer.exe . # 用 Windows 资源管理器打开当前目录
💡 提示:代码项目放在 WSL 内部(
/home/)比放在 /mnt/c/ 快很多。
6. 配置文件
默认位置:C:\Users\<用户名>\.wslconfig(没有可以新建一个)
[wsl2]
memory=8GB # 内存限制
processors=4 # CPU 核心数
swap=4GB # 交换空间
networkingMode=mirrored # 镜像网络(解决 localhost 互通)
[interop]
enabled=true # 允许调用 Windows 程序
appendWindowsPath=true # Linux 中可用 Windows PATH
⚠️ 重要:修改后需重启 WSL
```powershell
wsl --shutdown
```
7. 开发环境初始化
进入 WSL 后执行:
# 系统更新
sudo apt update && sudo apt upgrade -y
# 基础工具
sudo apt install -y build-essential git curl wget vim
# Python
sudo apt install -y python3 python3-pip
# Node.js(通过 nvm)
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.0/install.sh | bash
source ~/.bashrc
nvm install 18
# Git 配置
git config --global user.name "Your Name"
git config --global user.email "your@email.com"
# pip 国内加速
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
8. Docker
8.1 方式一:WSL 内直接安装
sudo apt install -y docker.io docker-compose
sudo usermod -aG docker $USER # 免 sudo
newgrp docker
sudo service docker start # 启动
docker run hello-world # 验证
8.2 方式二:Docker Desktop(推荐)
- 安装 Docker Desktop
- Settings → Resources → WSL integration → 勾选你的发行版
- WSL 中直接使用
docker命令
9. VS Code 集成
在 WSL 项目目录中执行:
code .
ℹ️ 信息:首次运行会自动安装 VS Code Server,之后 Windows 的 VS Code 会远程连接到 WSL。
也可以在 VS Code 中安装 Remote - WSL 扩展手动连接。
10. 常用维护命令
wsl --update # 更新 WSL 内核
wsl --shutdown # 关闭所有 WSL 实例
wsl --status # 查看 WSL 状态
wsl --version # 查看版本信息
11. 常见问题
| 问题 | 解决方案 |
|---|---|
| WSL 启动慢 | wsl --shutdown 重启;检查 .wslconfig 配置 |
| 内存占用过大 | .wslconfig 中设置 memory=8GB 限制内存 |
| 网络不通/localhost 不通 | .wslconfig 中设置 networkingMode=mirrored |
| Docker 启动失败 | sudo service docker start;或用 Docker Desktop |
/mnt/c 权限错误 |
sudo mount -t drvfs C: /mnt/c -o metadata |
| macOS 与 Linux 的 sed 差异 | WSL 中使用 Linux 原生 sed,无需担心 |
12. 快速参考
| 操作 | 命令 |
|---|---|
| 进入 WSL | wsl |
| 查看发行版 | wsl -l -v |
| 重启 WSL | wsl --shutdown |
| 更新内核 | wsl --update |
| 备份 | wsl --export Ubuntu backup.tar |
| 访问 WSL 文件 | \\wsl$\Ubuntu\home\ |
| 访问 Windows 文件 | /mnt/c/ |
| 打开资源管理器 | explorer.exe . |
| 启动 Docker | sudo service docker start |
| 打开 VS Code | code . |