WSL 命令大全(完全指南)
WSL 命令大全(完全指南)
版本为wsl2对于早期的wsl命令以下手册不适用。
WSL 命令大全(完全指南)
1. 安装与管理
基础安装
# 安装 WSL(默认 Ubuntu) wsl --install # 安装指定发行版 wsl --install -d <发行版名称> # 列出可用发行版 wsl --list --online wsl -l -o # 简写# 更新 WSL wsl --update 版本管理
# 查看 WSL 版本 wsl --version # 升级到 WSL2 wsl --set-version <发行版> 2 # 设置默认版本 wsl --set-default-version 2 卸载与重置
# 完全卸载 WSL(Windows 功能) dism.exe /online /disable-feature/featurename:Microsoft-Windows-Subsystem-Linux dism.exe /online /disable-feature/featurename:VirtualMachinePlatform # 重启后生效 shutdown /r /t 0 2. 发行版操作
列出发行版
# 列出所有已安装的发行版 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 删除发行版
# 注销并删除发行版(⚠️数据会丢失!) wsl --unregister <发行版名称> # 示例 wsl --unregister Ubuntu wsl --unregister Debian wsl --unregister "Ubuntu-22.04"# 名称包含空格时用引号# 批量删除 wsl --list |ForEach-Object{ wsl --unregister $_}重命名发行版
# WSL 没有直接的重命名命令,需要导出再导入 wsl --export Ubuntu ubuntu_backup.tar wsl --unregister Ubuntu wsl --import NewUbuntuName C:\WSL\NewUbuntu\ ubuntu_backup.tar 3. 运行与控制
启动与进入
# 启动默认发行版 wsl wsl ~ # 从当前目录启动# 启动指定发行版 wsl -d <发行版名称> wsl --distribution <发行版名称> # 以特定用户启动 wsl -u <用户名> wsl --user <用户名> # 以 root 用户启动 wsl -u root wsl --user root # 启动但不进入 Shell wsl --exec <命令> wsl -e <命令> 停止与控制
# 停止特定发行版 wsl --terminate <发行版名称> wsl -t <发行版名称> # 简写# 停止所有发行版 wsl --shutdown # 立即关闭 WSL wsl --shutdown --force # 暂停发行版 wsl --terminate <发行版> # 实际是停止运行 Linux 命令
# 不进入 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. 导入与导出
备份与恢复
# 导出发行版到文件 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 压缩选项
# 导出时使用 vhdx 格式(WSL2 专用)# 需要手动复制 VHDX 文件# 位置:%LOCALAPPDATA%\Packages\<Package>\LocalState\ext4.vhdx# 检查导出文件信息 wsl --import --help 5. 配置与设置
默认发行版设置
# 设置默认发行版 wsl --set-default <发行版名称> wsl -s <发行版名称> # 简写# 查看当前默认发行版 wsl --get-default# 更改默认用户(需要编辑配置文件)# 在 WSL 中运行: sudo nano /etc/wsl.conf # 添加:[user] default=yourusername 全局配置
# 查看 WSL 配置 wsl --status # 生成诊断日志 wsl --collect-diagnostics # 重置 WSL 配置# 1. 停止所有发行版 wsl --shutdown # 2. 重启 LxssManager 服务 net stop LxssManager net start LxssManager wsl.conf 配置文件
# /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 =true6. 文件系统操作
跨系统文件访问
# 从 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 挂载管理
# 在 WSL 中挂载新驱动器 sudo mount-t drvfs D: /mnt/d # 查看磁盘空间 wsl df -h wsl --system df -h # 系统级信息# 检查文件系统 wsl fsck 7. 网络与端口
网络配置
# 查看 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 服务管理
# 在 WSL 中启动服务 wsl sudo service ssh start wsl sudo systemctl start nginx # 检查端口监听 wsl netstat -tulpn wsl ss -tulpn 8. 用户管理
用户操作
# 创建新用户(在 WSL 中) wsl sudo adduser newuser # 更改密码 wsl sudo passwd username # 切换用户 wsl su - username wsl sudo -i # 切换到 root默认用户设置
# 方法1:修改 wsl.conf# 方法2:使用 PowerShell 命令 <发行版> config --default-user <用户名> # 示例: ubuntu config --default-user myuser ubuntu2004 config --default-user myuser 9. 诊断与日志
诊断命令
# 查看 WSL 状态 wsl --status # 收集诊断信息 wsl --collect-diagnostics # 查看日志 wsl --log tail # 实时日志 wsl --log dump # 导出日志# 启用详细日志# 创建或编辑 %USERPROFILE%\.wslconfig[wsl2] kernelCommandLine = "systemd.unified_cgroup_hierarchy=0 debug"常见问题排查
# 检查 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 Profile)function wsl-list { wsl -l -v }function wsl-stop { wsl --shutdown }function wsl-ubuntu { wsl -d Ubuntu }function wsl-debian { wsl -d Debian }# 从当前目录启动 WSLfunction wsl-here {$currentPath = (Get-Location).Path wsl --cd $currentPath}集成开发环境
# VS Code 集成 code --remote wsl+Ubuntu # Docker 集成 wsl docker --version # 在 WSL 中运行 VS Code wsl code .性能优化
# 配置内存限制# 编辑 %USERPROFILE%\.wslconfig[wsl2] memory=4GB # 限制内存使用 processors=4 # CPU 核心数 localhostForwarding=true # 磁盘清理 wsl sudo apt clean wsl sudo apt autoremove 跨平台脚本
# 混合 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 状态 |
📚 更多资源
# 获取完整帮助 wsl --help wsl --help full # 官方文档start https://docs.microsoft.com/windows/wsl/ # 社区资源start https://github.com/microsoft/WSL