1. 安装与设置
1.1 基础安装
|
命令 |
说明 |
示例 |
|
wsl –install |
一键安装WSL和默认的Linux发行版(一般是Ubuntu) |
|
|
wsl –install -d <Distro> |
安装指定的Linux发行版 |
wsl –install -d Debian |
|
wsl –update |
更新WSL内核和系统组件到最新版本 |
|
|
wsl –update rollback |
回滚到上一版本的WSL内核 |
|
|
wsl –set-default-version 2 |
设置新安装的发行版默认使用WSL2 |
请注意:在新版本的Windows 10和Windows 11中,一般只需执行wsl –install命令即可完成安装和配置。手册以当前主流的WSL 2为准。
1.2 版本检查与设置
powershell
# 检查当前WSL版本
wsl --status
# 查看WSL版本信息
wsl --version
# 设置默认使用WSL2
wsl --set-default-version 2
2. 发行版管理
2.1 基本管理命令
|
命令 |
说明 |
示例 |
|
wsl -l 或 wsl –list |
列出已安装的所有发行版 |
|
|
wsl -l -v 或 wsl –list –verbose |
列出已安装发行版的详细信息(包括名称、状态、WSL版本) |
|
|
wsl –set-version <Distro> <Version> |
将指定发行版在WSL 1和2之间转换 |
wsl –set-version Ubuntu 2 |
|
wsl –set-default <Distro> |
设置默认的Linux发行版 |
wsl –set-default Ubuntu |
|
wsl –terminate <Distro> |
终止(停止)指定的发行版运行 |
wsl –terminate Debian |
|
wsl –shutdown |
立即关闭所有正在运行的发行版和WSL2虚拟机,释放资源 |
2.2 备份与恢复
|
命令 |
说明 |
示例 |
|
wsl –export <Distro> <FileName> |
将指定发行版导出为tar格式的备份文件 |
wsl –export Ubuntu .ubuntu_backup.tar |
|
wsl –import <Distro> <InstallLocation> <FileName> |
从备份文件导入一个新的发行版 |
wsl –import NewUbuntu .WSL .ubuntu_backup.tar |
|
wsl –unregister <Distro> |
注销并卸载指定发行版(会永久删除该发行版及其所有数据!) |
wsl –unregister OldLinux |
3. 运行与操作
3.1 启动与退出
|
命令 |
说明 |
示例 |
|
wsl |
启动默认的Linux发行版 |
|
|
wsl -d <Distro> |
启动指定的Linux发行版 |
wsl -d Debian |
|
wsl ~ |
在用户的主目录中启动Linux发行版 |
|
|
wsl –user <Username> |
以指定用户身份运行WSL |
wsl –user root |
|
wsl <Linux命令> |
不进入Shell,直接在Windows中执行单条Linux命令 |
wsl ls -la |
|
exit |
在WSL Shell中运行此命令可以退出并关闭该发行版 |
3.2 用户管理
bash
# 更改发行版的默认用户(适用于Ubuntu等发行版)
<DistributionName> config --default-user <Username>
# 示例:将Ubuntu的默认用户改为"johndoe"
ubuntu config --default-user johndoe
注意:此命令可能不适用于所有发行版,尤其是手动导入的。对于导入的发行版,一般需要通过修改/etc/wsl.conf文件来更改默认用户。
4. 文件系统交互
4.1 跨系统文件访问
|
命令 |
说明 |
示例 |
|
explorer.exe . |
在WSL中运行,会在Windows文件资源管理器中打开当前Linux目录 |
|
|
\\wsl$\<Distro>\ |
在Windows文件资源管理器的地址栏输入,可直接访问WSL发行版的文件系统 |
\\wsl$\Ubuntu-22.04\home |
|
/mnt/c/Users/ |
在WSL中访问Windows的C盘用户目录 |
cd /mnt/c/Users/YourName |
|
wslpath -w <Linux路径> |
将Linux路径转换为Windows路径 |
wslpath -w /home/user |
|
notepad.exe <文件> |
用Windows的记事本打开WSL中的文件 |
notepad.exe ./example.txt |
4.2 路径转换工具
bash
# Linux路径转Windows路径
wslpath -w /home/user/documents
# Windows路径转Linux路径
wslpath -u "C:UsersYourName"
5. 系统信息与状态
5.1 状态检查命令
|
命令 |
说明 |
示例 |
|
wsl –status |
查看WSL的总体状态,包括默认版本、内核版本等配置信息 |
|
|
wsl –version |
查看WSL及其各组件的版本信息 |
|
|
wsl –help |
查看所有WSL命令和选项的协助信息 |
|
|
ip addr |
在WSL中运行,查看WSL虚拟机的IP地址 |
5.2 网络诊断
bash
# 查看WSL网络接口信息
ip addr show eth0
# 测试网络连通性
ping google.com
# 查看端口监听情况
netstat -tulpn
6. 进阶配置与调优
6.1 资源限制配置(.wslconfig)
在Windows用户目录(如C:Users<YourUserName>)下创建名为.wslconfig的文件,来全局控制WSL2虚拟机的资源使用。
示例配置:
ini
[wsl2]
memory=8GB # 限制最大内存使用
processors=4 # 限制使用的CPU核心数
swap=0 # 设置交换空间大小
localhostForwarding=true # 开启localhost端口转发
常用配置选项:
- memory: 最大内存限制(如4GB、8GB)
- processors: CPU核心数
- swap: 交换空间大小(0表明禁用)
- localhostForwarding: 是否启用localhost端口转发
- kernel: 自定义内核路径
- kernelCommandLine: 内核启动参数
重大:修改此配置后,需要运行 wsl –shutdown 重启WSL才能生效。
6.2 WSL发行版配置(/etc/wsl.conf)
/etc/wsl.conf 文件允许你精细控制WSL与Windows的交互方式,配置在WSL发行版内部进行。
6.2.1 常用配置详解
|
配置段 |
配置项 |
说明与常用值 |
|
[interop] |
enabled |
– true(默认): 允许运行Windows原生程序(如notepad.exe)。 |
|
appendWindowsPath |
– true(默认): 将Windows的PATH附加到WSL的PATH后。 |
|
|
[network] |
generateHosts |
– true(默认): WSL自动生成/etc/hosts文件。 |
|
generateResolvConf |
– true(默认): WSL自动生成/etc/resolv.conf文件。 |
|
|
[user] |
default |
设置默认登录用户,例如:default = yourusername。 |
|
[automount] |
enabled |
– true(默认): 自动挂载Windows驱动器。 |
|
root |
设置Windows驱动器的挂载点,默认:/mnt/ |
6.2.2 配置示例与操作步骤
典型配置示例:
ini
# 示例:优化WSL配置
[interop]
enabled = true # 允许运行Windows程序
appendWindowsPath = false # 关键:不自动混合Windows路径,避免冲突
[network]
generateHosts = true
generateResolvConf = true
[user]
default = yourusername # 替换为你的WSL用户名
[automount]
enabled = true
root = /mnt/
配置步骤:
- 在WSL的终端中,运行以下命令(需要sudo权限):
- bash
- sudo nano /etc/wsl.conf
- 写入配置内容,保存并退出编辑器(在nano中按Ctrl+X,然后按Y确认,最后回车)。
- 重启WSL使配置生效:
- powershell
- wsl –shutdown
- 之后重新打开WSL终端即可。
6.2.3 路径管理进阶
禁用 appendWindowsPath 后,如果仍需要频繁使用某个Windows程序,可以手动将其所在路径添加到WSL的PATH环境变量中。
例如,添加常用工具路径:
bash
# 在WSL的shell配置文件(如~/.bashrc或~/.zshrc)中添加:
# VSCode
export PATH=$PATH:"/mnt/c/Program Files/Microsoft VS Code/bin"
# Windows System32(用于运行一些Windows工具)
export PATH=$PATH:"/mnt/c/Windows/System32"
# 其他常用Windows程序路径
export PATH=$PATH:"/mnt/c/Program Files/Git/cmd"
添加后执行 source ~/.bashrc 或重新启动终端即可生效。
6.3 性能优化提议
- 将项目文件存储在WSL文件系统中
- 访问Linux文件系统:/home/username/projects
- 避免在/mnt/c/下直接操作Windows文件,以获得更好的I/O性能
- 合理配置内存限制
- 开发环境:4-8GB内存一般足够
- 内存密集型任务:根据需求调整,但不要超过系统总内存的80%
- 禁用不必要的服务
- 在WSL中禁用不需要的systemd服务
- 使用轻量级替代方案
7. 故障排除与常用技巧
7.1 常见问题解决
WSL启动失败:
powershell
# 重置WSL状态
wsl --shutdown
# 等待几秒后重新启动
网络连接问题:
bash
# 在WSL中重置网络
sudo dhclient -r
sudo dhclient
文件权限问题:
bash
# 修复WSL中的文件权限
sudo chown -R $USER:$USER ~/
7.2 实用技巧
在Windows中快速打开WSL当前目录:
bash
# 在WSL中执行
explorer.exe .
在WSL中直接使用Windows编辑器:
bash
# 使用VSCode打开当前目录
code .
# 使用Notepad++打开文件(如果已安装)
notepad++ filename.txt
端口转发检查:
bash
# 查看WSL中监听的端口
netstat -tulpn
# 在Windows中测试端口连通性
telnet localhost <port>
这份完整手册涵盖了WSL2的安装、日常使用、配置优化和故障排除等方面。提议根据实际需求调整配置,并定期查看微软官方WSL文档获取最新信息。