WSL 命令大全(完全指南)
- [WSL 命令大全(完全指南)](#WSL 命令大全(完全指南))
-
- [📋 **目录**](#📋 目录)
- [1. 安装与管理](#1. 安装与管理)
- [2. 发行版操作](#2. 发行版操作)
- [3. 运行与控制](#3. 运行与控制)
- [4. 导入与导出](#4. 导入与导出)
- [5. 配置与设置](#5. 配置与设置)
- [6. 文件系统操作](#6. 文件系统操作)
- [7. 网络与端口](#7. 网络与端口)
- [8. 用户管理](#8. 用户管理)
- [9. 诊断与日志](#9. 诊断与日志)
- [10. 实用技巧](#10. 实用技巧)
- [🔧 **快速参考表**](#🔧 快速参考表)
- [📚 **更多资源**](#📚 更多资源)
版本为wsl2对于早期的wsl命令以下手册不适用。
WSL 命令大全(完全指南)
📋 目录
1. 安装与管理
基础安装
powershell
# 安装 WSL(默认 Ubuntu)
wsl --install
# 安装指定发行版
wsl --install -d <发行版名称>
# 列出可用发行版
wsl --list --online
wsl -l -o # 简写
# 更新 WSL
wsl --update
版本管理
powershell
# 查看 WSL 版本
wsl --version
# 升级到 WSL2
wsl --set-version <发行版> 2
# 设置默认版本
wsl --set-default-version 2
卸载与重置
powershell
# 完全卸载 WSL(Windows 功能)
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux
dism.exe /online /disable-feature /featurename:VirtualMachinePlatform
# 重启后生效
shutdown /r /t 0
2. 发行版操作
列出发行版
powershell
# 列出所有已安装的发行版
wsl --list
wsl -l # 简写
# 详细列表(包含状态和版本)
wsl --list --verbose
wsl -l -v # 简写
# 列出所有发行版(包括未运行的)
wsl --list --all
wsl -l -a # 简写
# 列出正在运行的发行版
wsl --list --running
wsl -l -r # 简写
# 以安静模式输出(仅名称)
wsl --list --quiet
删除发行版
powershell
# 注销并删除发行版(⚠️数据会丢失!)
wsl --unregister <发行版名称>
# 示例
wsl --unregister Ubuntu
wsl --unregister Debian
wsl --unregister "Ubuntu-22.04" # 名称包含空格时用引号
# 批量删除
wsl --list | ForEach-Object { wsl --unregister $_ }
重命名发行版
powershell
# WSL 没有直接的重命名命令,需要导出再导入
wsl --export Ubuntu ubuntu_backup.tar
wsl --unregister Ubuntu
wsl --import NewUbuntuName C:\WSL\NewUbuntu\ ubuntu_backup.tar
3. 运行与控制
启动与进入
powershell
# 启动默认发行版
wsl
wsl ~ # 从当前目录启动
# 启动指定发行版
wsl -d <发行版名称>
wsl --distribution <发行版名称>
# 以特定用户启动
wsl -u <用户名>
wsl --user <用户名>
# 以 root 用户启动
wsl -u root
wsl --user root
# 启动但不进入 Shell
wsl --exec <命令>
wsl -e <命令>
停止与控制
powershell
# 停止特定发行版
wsl --terminate <发行版名称>
wsl -t <发行版名称> # 简写
# 停止所有发行版
wsl --shutdown
# 立即关闭 WSL
wsl --shutdown --force
# 暂停发行版
wsl --terminate <发行版> # 实际是停止
运行 Linux 命令
powershell
# 不进入 Shell 直接执行命令
wsl ls -la
wsl pwd
wsl whoami
# 执行复杂命令
wsl bash -c "cd ~ && ls -la"
# 从 PowerShell 传参
wsl echo "Hello from Windows"
wsl grep "pattern" /path/to/file
4. 导入与导出
备份与恢复
powershell
# 导出发行版到文件
wsl --export <发行版> <保存路径.tar>
wsl --export Ubuntu D:\backups\ubuntu_backup.tar
# 从文件导入发行版
wsl --import <发行版名称> <安装路径> <文件路径.tar> [选项]
wsl --import Ubuntu C:\WSL\Ubuntu\ D:\backups\ubuntu_backup.tar
# 导入时指定版本
wsl --import Ubuntu C:\WSL\Ubuntu\ backup.tar --version 2
# 导入为新发行版(不覆盖)
wsl --import Ubuntu_Backup C:\WSL\Backup\ backup.tar
压缩选项
powershell
# 导出时使用 vhdx 格式(WSL2 专用)
# 需要手动复制 VHDX 文件
# 位置:%LOCALAPPDATA%\Packages\<Package>\LocalState\ext4.vhdx
# 检查导出文件信息
wsl --import --help
5. 配置与设置
默认发行版设置
powershell
# 设置默认发行版
wsl --set-default <发行版名称>
wsl -s <发行版名称> # 简写
# 查看当前默认发行版
wsl --get-default
# 更改默认用户(需要编辑配置文件)
# 在 WSL 中运行:
sudo nano /etc/wsl.conf
# 添加:
[user]
default=yourusername
全局配置
powershell
# 查看 WSL 配置
wsl --status
# 生成诊断日志
wsl --collect-diagnostics
# 重置 WSL 配置
# 1. 停止所有发行版
wsl --shutdown
# 2. 重启 LxssManager 服务
net stop LxssManager
net start LxssManager
wsl.conf 配置文件
bash
# /etc/wsl.conf 示例
[automount]
enabled = true
root = /mnt/
options = "metadata,uid=1000,gid=1000,umask=022"
mountFsTab = true
[network]
generateHosts = true
generateResolvConf = true
[interop]
enabled = true
appendWindowsPath = true
[user]
default = yourusername
[boot]
systemd = true
6. 文件系统操作
跨系统文件访问
powershell
# 从 Windows 访问 Linux 文件
\\wsl$\Ubuntu\home\username
\\wsl$\ # 列出所有发行版
# 从 Linux 访问 Windows 文件
/mnt/c/Users/Username
/mnt/d/ # D盘
# 在 PowerShell 中直接访问
cd \\wsl$\Ubuntu\home
ls \\wsl$\Ubuntu\etc
挂载管理
powershell
# 在 WSL 中挂载新驱动器
sudo mount -t drvfs D: /mnt/d
# 查看磁盘空间
wsl df -h
wsl --system df -h # 系统级信息
# 检查文件系统
wsl fsck
7. 网络与端口
网络配置
powershell
# 查看 IP 地址
wsl hostname -I
wsl ip addr show
# WSL2 固定 IP(需要 PowerShell 脚本)
# 创建 %USERPROFILE%\.wslconfig
[wsl2]
networkingMode=mirrored
dnsTunneling=true
firewall=true
autoProxy=true
# 端口转发(Windows 中执行)
netsh interface portproxy add v4tov4 listenport=80 listenaddress=0.0.0.0 connectport=80 connectaddress=192.168.101.100
服务管理
powershell
# 在 WSL 中启动服务
wsl sudo service ssh start
wsl sudo systemctl start nginx
# 检查端口监听
wsl netstat -tulpn
wsl ss -tulpn
8. 用户管理
用户操作
powershell
# 创建新用户(在 WSL 中)
wsl sudo adduser newuser
# 更改密码
wsl sudo passwd username
# 切换用户
wsl su - username
wsl sudo -i # 切换到 root
默认用户设置
powershell
# 方法1:修改 wsl.conf
# 方法2:使用 PowerShell 命令
<发行版> config --default-user <用户名>
# 示例:
ubuntu config --default-user myuser
ubuntu2004 config --default-user myuser
9. 诊断与日志
诊断命令
powershell
# 查看 WSL 状态
wsl --status
# 收集诊断信息
wsl --collect-diagnostics
# 查看日志
wsl --log tail # 实时日志
wsl --log dump # 导出日志
# 启用详细日志
# 创建或编辑 %USERPROFILE%\.wslconfig
[wsl2]
kernelCommandLine = "systemd.unified_cgroup_hierarchy=0 debug"
常见问题排查
powershell
# 检查 WSL 是否运行正常
wsl --list --verbose
# 重启 WSL 服务
net stop LxssManager && net start LxssManager
# 重置网络
wsl sudo dhclient -r && wsl sudo dhclient
# 检查内存使用
wsl free -h
wsl top
10. 实用技巧
快捷命令
powershell
# 常用别名设置(添加到 PowerShell Profile)
function wsl-list { wsl -l -v }
function wsl-stop { wsl --shutdown }
function wsl-ubuntu { wsl -d Ubuntu }
function wsl-debian { wsl -d Debian }
# 从当前目录启动 WSL
function wsl-here {
$currentPath = (Get-Location).Path
wsl --cd $currentPath
}
集成开发环境
powershell
# VS Code 集成
code --remote wsl+Ubuntu
# Docker 集成
wsl docker --version
# 在 WSL 中运行 VS Code
wsl code .
性能优化
powershell
# 配置内存限制
# 编辑 %USERPROFILE%\.wslconfig
[wsl2]
memory=4GB # 限制内存使用
processors=4 # CPU 核心数
localhostForwarding=true
# 磁盘清理
wsl sudo apt clean
wsl sudo apt autoremove
跨平台脚本
powershell
# 混合 PowerShell 和 Bash 脚本
$files = wsl ls /home/user/documents
foreach ($file in $files) {
wsl cat "/home/user/documents/$file" | Out-File "C:\temp\$file.txt"
}
# 从 Windows 调用 Linux 工具
wsl grep -r "pattern" /path | Select-String "pattern"
🔧 快速参考表
| 类别 | 常用命令 | 说明 |
|---|---|---|
| 列表 | wsl -l -v |
查看所有发行版 |
| 启动 | wsl |
启动默认发行版 |
| 停止 | wsl --shutdown |
关闭所有 WSL |
| 删除 | wsl --unregister |
删除发行版 |
| 导出 | wsl --export |
备份发行版 |
| 导入 | wsl --import |
恢复发行版 |
| 运行 | wsl <命令> |
执行 Linux 命令 |
| 用户 | wsl -u root |
以 root 运行 |
| 目录 | wsl ~ |
从用户目录启动 |
| 状态 | wsl --status |
查看 WSL 状态 |
📚 更多资源
powershell
# 获取完整帮助
wsl --help
wsl --help full
# 官方文档
start https://docs.microsoft.com/windows/wsl/
# 社区资源
start https://github.com/microsoft/WSL