简介
WSL是什么
Windows Subsystem for Linux(WSL)是适用于 Linux 的 Windows 子系统 (WSL) 可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。
为什么要安装WSL
- 无需虚拟化开销:WSL 不需要像虚拟机那样进行完整的虚拟化,因此它的性能更高,启动时间更快。它与 Windows 内核共享同一硬件资源,因此可以更好地集成到 Windows 系统中。
- 无需额外的硬件资源:与运行虚拟机相比,WSL 不需要额外的硬件资源来运行一个完整的虚拟化环境。这意味着用户可以在不影响主机性能的情况下运行 Linux 环境。
- 轻松访问 Windows 文件系统:WSL 允许用户直接访问 Windows 文件系统,这意味着用户可以在 Linux 和 Windows 之间轻松共享文件和目录。这种集成性可以极大地提高开发和工作效率。
- 无需远程连接:与连接到远程服务器相比,WSL 可以在本地运行,无需与远程服务器建立连接。这使得开发和测试过程更加简单和高效。
- 兼容性和一致性:WSL 提供了一个完整的 Linux 用户空间环境,与传统的虚拟机或远程服务器相比,它更具有一致性和兼容性。用户可以在其喜欢的 Linux 发行版中运行常见的命令和工具,而无需担心与 Windows 系统的兼容性问题。
版本选择
WSL存在两个版本,WSL和WSL2,如下是它们的特性对比。
功能 | WSL 1 | WSL 2 |
---|---|---|
Windows 和 Linux 之间的集成 | ✅ | ✅ |
启动时间短 | ✅ | ✅ |
与传统虚拟机相比,占用的资源量少 | ✅ | ✅ |
可以与当前版本的 VMware 和 VirtualBox 一起运行 | ✅ | ❌ |
托管 VM | ❌ | ✅ |
完整的 Linux 内核 | ❌ | ✅ |
完全的系统调用兼容性 | ❌ | ✅ |
跨 OS 文件系统的性能 | ✅ | ❌ |
systemd 支持 | ❌ | ✅ |
IPv6 支持 | ❌ | ✅ |
安装WSL2
官方文档: 安装WSL 微软
系统要求: Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 。
说明:如下所有安装命令都在具有管理员权限的PowerShell中执行(在管理员模式下打开 PowerShell 或 Windows 命令提示符)。
步骤
1. 启用WSL
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
2.启用虚拟化
执行如下命令后会提示需要重启,重启计算机即可。
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all
3.更新linux内核
下载并安装:
适用于 x64 计算机的 WSL2 Linux 内核更新包
4.设置WSL2为默认版本
wsl --set-default-version 2
5.选择Linux分发版本
列出所有可用的在线Linux版本
wsl -l -o
6.安装Linux分发版本
因为自动命令会将将Linux发行版的磁盘文件安装在C盘,所以如果对磁盘容量管理有需求的话建议使用手动安装方法选择安装位置。
方法1:自动安装
wsl --install -d 发行版名称
安装完毕后出现弹窗,输入Linux系统的账户名称及密码即可。
方法2:手动安装
后期位置迁移
假设你已经使用自动化方法安装了WSL,后期想要将Linux系统迁移至其他磁盘/路径,可以搜索LxRunOffline
工具尝试解决。
参考文章: 使用LxRunOffline迁移WSL
使用
账户配置
到此为止你应该已经成功创建Linux发行版并成功设置了账户。
接下来先来更新一下root账户的密码。
在登录已有帐户的基础上执行如下命令:
# 以使用当前用户的权限切换到root用户
sudo su -
# 切换到root账户后,设置root的密码
passwd root
常见命令
发行版的启动
# 进入默认发行版
wsl
# 进入指定发行版
wsl -d 发行版名称
# 设定某个发行版为默认
wsl -s 发行版名称
发行版的管理
# 查看已安装的发行版
wsl -l -v
# 发行版的删除(操作不可逆)
wsl --unregister 发行版名称
发行版的关闭
# 关闭默认发行版
wsl --shutdown
# 关闭特定发行版
wsl -t 发行版名称
wsl与win系统互通
wsl与windows命令互通
# wsl中调用windows命令
# 例1:调用windows的文件浏览器打开当前目录
explorer.exe .
# 例2:使用wsl环境打开vscode
(前提:vscode安装wsl插件;更新相关依赖库[sudo apt-get update])
code .
# windows系统cmd中调用wsl命令
# 例:调用wsl中的ls命令查看当前目录中的文件列表
wsl ls
wsl与windows文件互通
# wsl中查看windows系统文件(挂载于/mnt目录)
# 例如:查看c盘目录
cd /mnt/c; ls
# windows系统中查看wsl文件
# 方法1:在文件浏览器地址栏中输入 \\wsl$
# 方法2:通过文件浏览器侧边栏进入 Linux选项卡 中
常见应用
docker
1.检查系统配置需求
2.Docker Desktop安装&配置
3.使用wsl调用docker
systemd
最新版的wsl2已经支持在wsl中直接使用systemctl
命令