WSL
WSL简介
官方文档:https://learn.microsoft.com/zh-cn/windows/wsl/
适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。
WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。
- 使用 WSL 安装和运行各种 Linux 发行版,例如 Ubuntu、Debian、Kali 等。
- 安装 Linux 发行版并从 Microsoft Store 接收自动更新、导入 Microsoft Store 中不可用的 Linux 发行版,或构建你自己的客户 Linux 发行版。
- 将文件存储在独立的 Linux 文件系统中,具体取决于安装的发行版。
- 运行命令行工具,例如 BASH。
- 运行常用的 BASH 命令行工具(例如
grep
、sed
、awk
)或其他 ELF-64 二进制文件。 - 运行 Bash 脚本和 GNU/Linux 命令行应用程序,包括:
- 工具:vim、emacs、tmux
- 语言:NodeJS、JavaScript、Python、Ruby、C/C++、C# 和 F#、Rust、Go 等。
- 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。
- 使用自己的 GNU/Linux 分发包管理器安装其他软件。
- 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。
- 在 Windows 上调用 GNU/Linux 应用程序。
- 运行直接集成到 Windows 桌面的 GNU/Linux 图形应用程序
- 使用你的设备 GPU 加速 Linux 上运行的机器学习工作负载。
WSL版本比较
官方资料:https://learn.microsoft.com/zh-cn/windows/wsl/compare-versions
功能 | WSL 1 | WSL 2 |
---|---|---|
Windows 和 Linux 之间的集成 | ✅ | ✅ |
启动时间短 | ✅ | ✅ |
与传统虚拟机相比,占用的资源量少 | ✅ | ✅ |
可以与当前版本的 VMware 和 VirtualBox 一起运行 | ✅ | ❌ |
托管 VM | ❌ | ✅ |
完整的 Linux 内核 | ❌ | ✅ |
完全的系统调用兼容性 | ❌ | ✅ |
跨 OS 文件系统的性能 | ✅ | ❌ |
systemd 支持 | ❌ | ✅ |
IPv6 支持 | ✅ | ✅ |
WSL快速安装
- 查看可用的linux发行版
1 | wsl --list --online |
- 安装默认linux发行版【在此安装过程中,你将需要重启计算机】
1 | wsl --install |
发行版创建用户
使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。
系统将要求你为 Linux 发行版创建“用户名”和“密码”。
此帐户将被视为 Linux 管理员,能够运行
sudo
(Super User Do) 管理命令。
[!NOTE]
修改密码:
- 若要更改或重置密码,请打开 Linux 发行版并输入命令:
passwd
。- 系统会要求你输入当前密码,然后要求输入新密码,之后再确认新密码。
忘记密码:
请打开 PowerShell,并使用以下命令进入默认 WSL 分发版的根目录:
wsl -u root
如果需要在非默认分发版中更新忘记的密码,请使用命令:
wsl -d Debian -u root
,并将Debian
替换为目标分发版的名称。在 PowerShell 内的根级别打开 WSL 发行版后,可使用此命令更新密码:
passwd <username>
其中
<username>
是发行版中帐户的用户名,而你忘记了它的密码。系统将提示你输入新的 UNIX 密码,然后确认该密码。
在被告知密码已成功更新后,请使用以下命令在 PowerShell 内关闭 WSL:
exit
。
WSL最佳实践
- 开始使用
- 设置 Linux 用户名和密码
- 更新和升级包
- 添加其他发行版
- 设置 Windows Terminal
- 文件存储
- 设置你最喜欢的代码编辑器
- 使用 Git 设置版本管理
- 使用 Docker 设置远程开发容器
- 设置数据库
- 设置 GPU 加速以提高性能
- 基本 WSL 命令
- 装载外部驱动器或 USB
- 运行 Linux GUI 应用
- 其他资源
WSL进阶技术
WSL基本命令
官方资料:https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands
- 安装 WSL 和 Linux 的默认 Ubuntu 发行版。
1 | wsl --install |
- 列出可用的 Linux 发行版
1 | wsl --list --online |
- 列出已安装的 Linux 发行版
1 | wsl --list --verbose |
- 将 WSL 版本设置为 1 或 2
1 | wsl --set-version <distribution name> <versionNumber> |
[!WARNING]
在 WSL 1 和 WSL 2 之间切换可能非常耗时,并且可能会由于两种体系结构之间的差异而导致失败。
对于包含大型项目的分发,建议在尝试转换之前备份文件。
- 设置默认 WSL 版本
1 | wsl --set-default-version <Version> |
- 设置默认 Linux 发行版
1 | wsl --set-default <Distribution Name> |
- 将目录更改为主页
1 | wsl ~ |
- 运行特定的 Linux 发行版
1 | wsl --distribution <Distribution Name> --user <User Name> |
- 更新 WSL
1 | wsl --update |
- 检查 WSL 状态
1 | wsl --status |
- 检查 WSL 版本
1 | wsl --version |
- Help 命令
1 | wsl --help |
- 以特定用户的身份运行
1 | wsl --user <Username> |
- 更改发行版的默认用户
1 | <DistributionName> config --default-user <Username> |
- 关闭
1 | wsl --shutdown |
- 终止
1 | wsl --terminate <Distribution Name> |
- 标识 IP 地址
1 | wsl hostname -i 标识通过 WSL 2 安装的 Linux 分发版 IP 地址(WSL 2 VM 地址) |
- 注销或卸载 Linux 发行版
1 | 尽管可以通过 Microsoft Store 安装 Linux 发行版,但无法通过 Store 将其卸载。 |