WSL 常用命令与配置

一、基础概念

  • WSL:Windows 子系统 Linux,让你在 Windows 上直接运行 Linux 环境。
  • WSL 1 vs WSL 2:
    • WSL 1:通过翻译层运行,访问 Windows 文件较快。
    • WSL 2:基于真实 Linux 内核(轻量级虚拟机),系统调用兼容性好、性能高,推荐使用。

二、安装与卸载

命令 说明
wsl --install 一键安装 WSL(默认安装 Ubuntu)
wsl --install -d <发行版名> 安装指定发行版,如 wsl --install -d Debian
wsl --install --no-distribution 仅安装 WSL,不装发行版
wsl --list --online / wsl -l -o 查看可在线安装的发行版列表
wsl --unregister <发行版名> 卸载(注销)某发行版,会删除其所有数据

三、查看与状态

命令 说明
wsl --list / wsl -l 列出已安装的发行版
wsl --list --verbose / wsl -l -v 列出发行版(含版本号、运行状态)
wsl --list --running 仅列出正在运行的发行版
wsl --status 查看 WSL 默认配置与状态
wsl --version 查看 WSL 版本信息
wsl -l -q 仅列出发行版名称(安静模式)

四、启动与运行

命令 说明
wsl 启动默认发行版
wsl -d <发行版名> 启动指定发行版
wsl -u <用户名> 以指定用户启动,如 wsl -u root
wsl -d <发行版> -u <用户> <命令> 在指定发行版以指定用户执行命令
wsl -e <命令> 执行单条命令后退出,如 wsl -e ls -la
wsl --cd <路径> 在指定目录下启动
wsl ~ 在 Linux 家目录下启动

五、关闭与重启

命令 说明
wsl --shutdown 立即关闭所有发行版及 WSL 虚拟机
wsl --terminate <发行版名> / wsl -t <名> 关闭指定发行版

修改 .wslconfig 配置后,需 wsl --shutdown 重启才能生效。


六、版本管理

命令 说明
wsl --set-default-version 2 设置新装发行版默认使用 WSL 2
wsl --set-version <发行版名> 2 将某发行版转换为 WSL 2
wsl --set-version <发行版名> 1 将某发行版转换为 WSL 1
wsl --set-default <发行版名> / wsl -s <名> 设置默认发行版

七、更新与维护

命令 说明
wsl --update 更新 WSL 内核
wsl --update --pre-release 更新到预览版内核
wsl --update --rollback 回滚到上一个内核版本

八、导入与导出(备份 / 迁移)

命令 说明
wsl --export <发行版名> <文件.tar> 导出发行版为 tar 备份
wsl --import <新名> <安装目录> <文件.tar> 从 tar 导入创建发行版
wsl --import <新名> <安装目录> <文件.tar> --version 2 导入并指定版本

示例:迁移发行版到 D 盘

1
2
3
4
5
6
# 1. 导出
wsl --export Ubuntu D:\backup\ubuntu.tar
# 2. 注销原发行版
wsl --unregister Ubuntu
# 3. 导入到新位置
wsl --import Ubuntu D:\wsl\Ubuntu D:\backup\ubuntu.tar

九、文件互访

Windows 访问 Linux 文件

  • 资源管理器地址栏输入:\\wsl$\<发行版名> 或 \\wsl.localhost\<发行版名>
  • 例如:\\wsl$\Ubuntu\home\

Linux 访问 Windows 文件

  • Windows 盘符挂载在 /mnt/ 下:
    • C 盘 → /mnt/c
    • D 盘 → /mnt/d
1
2
3
cd /mnt/d/app-data        # 进入 D 盘目录
explorer.exe . # 在 WSL 中用资源管理器打开当前目录
code . # 用 VS Code 打开当前目录

十、配置文件

1. 全局配置 .wslconfig

位置:C:\Users\<用户名>\.wslconfig(控制 WSL 2 虚拟机全局资源)

1
2
3
4
5
[wsl2]
memory=4GB # 限制内存
processors=2 # 限制 CPU 核心数
swap=2GB # 交换空间大小
localhostForwarding=true # 端口转发

2. 发行版配置 /etc/wsl.conf

位置:发行版内部 /etc/wsl.conf(控制单个发行版行为)

1
2
3
4
5
6
7
8
9
10
11
12
13
[boot]
systemd=true # 启用 systemd

[automount]
enabled=true # 自动挂载 Windows 盘
root=/mnt/ # 挂载点

[network]
generateHosts=true
generateResolvConf=true

[user]
default=yourname # 默认登录用户

十一、常用组合速查

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 查看状态
wsl -l -v

# 关闭全部
wsl --shutdown

# 进入指定发行版的 root
wsl -d Ubuntu -u root

# 更新 WSL
wsl --update

# 设置默认发行版
wsl -s Ubuntu

# 备份
wsl --export Ubuntu D:\ubuntu-backup.tar

十二、常见问题

问题 解决
修改 .wslconfig 不生效 执行 wsl --shutdown 后重新进入
WSL 占用内存过高 在 .wslconfig 中限制 memory,或定期 wsl --shutdown
找不到发行版 wsl -l -v 检查名称是否正确
systemd 不可用 在 /etc/wsl.conf 中设置 systemd=true 并重启 WSL
磁盘空间不释放 需手动压缩 vhdx 虚拟磁盘文件

提示:大多数 wsl 命令的参数都有长短两种写法,如 --list = -l,--verbose = -v。