WSL使用教程-在Windows上运行Linux环境
- Linux系统
- 23小时前
- 64热度
- 0评论
WSL使用教程
WSL (Windows Subsystem for Linux) —— 在Windows上运行Linux环境
打开 PowerShell 或 命令提示符,运行以下命令以安装WSL和默认的Linux发行版(通常是Ubuntu):
1. 安装WSL
打开 PowerShell(管理员),运行:
wsl --install
安装特定发行版:
wsl --install -d <发行版名称>
若已安装WSL但未启用,手动启用:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
安装完成后重启电脑,首次启动会要求设置用户名和密码。
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后自动关
--shutdown常用场景:改完.wslconfig后生效、内存占用太高、排查问题
3. 管理发行版
wsl -l -v # 查看已安装的发行版及状态
wsl --list --online # 查看可用的在线发行版
wsl --set-default Ubuntu # 设置默认发行版
wsl --set-default-version 2 # 设置默认WSL版本为2(推荐)
wsl --unregister <名称> # 卸载某个发行版(数据会丢失!)
4. 备份与迁移
wsl --export Ubuntu D:\backup\ubuntu.tar # 导出备份
wsl --import MyUbuntu D:\wsl\ D:\backup\ubuntu.tar # 导入恢复
5. 文件系统互访
Windows访问WSL文件:
资源管理器地址栏输入:\\wsl$\Ubuntu\home\用户名\
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:
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
方式一: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 # 验证
方式二: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,无需担心 |
快速参考
| 操作 | 命令 |
|---|---|
| 进入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 . |