引言

如果我在十几年前跟你说「Microsoft Love Linux」,你肯定觉得我鬼打墙了,Windows 和 Linux 可一直都是竞争对手。时任微软 CEO Steve Ballmer 还曾公开宣称 Linux 是「癌症」,毕竟 Linux 作为免费、开源的 Windows 替代品,抢走了微软不少的市场份额和营收。

后来,可能是为了与 VMware 等虚拟化厂商竞争,以及发展云计算平台的需要,微软在 Hyper-V 虚拟化平台上增加了对 Linux 的原生支持,让 Windows 也可以在 Hyper-V 虚拟机中运行 Linux 系统。但是,在 Hyper-V 中运行 Linux 虚拟机需要消耗大量的系统资源,而且宿主机(Host OS)与虚拟机(Guest OS)之间的交互也比较麻烦。


什么是 WSL 2?

时间来到 2017 年,事情正在起变化🤣。微软正式发布了「适用于 Linux 的 Windows 子系统」,即人们熟知的 Windows Subsystem for Linux,简称 WSL。

在 2019 年,微软又基于 Hyper-V 架构的部分功能,推出了全新的 WSL 2。它能够在一个高度优化的虚拟化中运行完整的 Linux 内核。

WSL 2 只需要较少的系统资源,就能实现 Windows 和 Linux 之间的无缝集成。虽然 WSL 2 也使用了虚拟化技术,但它会自动在后台运行和管理,无需用户手动配置或维护(要维护也可以)。

WSL 2 主要面向将 Windows 作为生产力工具,但又希望在 Linux 环境中完成工作的用户和开发人员。你可以运行grep、awk 和sed等命令行工具,以及依赖这些工具的 Bash 脚本。不仅如此,你还可以从 WSL 命令行启动 Windows 应用,甚至在 Windows 上运行 Linux 图形应用。


WSL的基本用法

  • 安装

    1
    wsl --install
  • 查看是否安装成功

    1
    wsl --version
  • 手动更新 WSL 版本:

    1
    wsl --update
  • 查看已安装的发行版、WSL 版本信息和当前状态

    1
    wsl --list --verbose 
  • 重新指定默认发行版

    1
    wsl --set-default <DistroName>
  • 删除子系统

    1
    wsl --unregister Ubuntu-20.04
  • 关闭所有虚拟机(一般在更改配置后使用,shutdown后需要等待8秒让配置生效)

    1
    wsl --shutdown

Windows 11 和 Linux 文件系统互访

  • Windows访问Linux
    在左侧导航窗格中找到并点击「Linux」,就可以像浏览 Windows 文件一样浏览 Linux 文件了

  • Linux访问Windows
    访问C盘直接

    1
    cd /mnt/c

    访问D盘同理


其他设置

1
2
3
4
5
6
7
8
9
10
11
# 安装网络工具
sudo apt install net-tools

# 开启并安装ssh服务
which sshd
sudo apt install openssh-server
# 启动并设置开机自启 SSH 服务
sudo systemctl enable ssh
sudo systemctl start ssh
# 检查是否成功启动
sudo systemctl status ssh

需要注意的是,默认情况下 WSL 的网络和系统行为与传统 Linux 不同,WSL 的 SSH 服务无法直接被外部访问,因此,需要修改Windows系统用户主目录下的.wslconfig文件,设置:

1
networkingMode=mirrored

即可启用镜像网络模式,Windows和Linux共享一个相同的ip地址。

参考

https://www.sysgeek.cn/install-wsl-2-windows/

https://learn.microsoft.com/zh-cn/windows/wsl/

https://learn.microsoft.com/zh-cn/windows/wsl/wsl-config