介绍

  1. 详情看参考官方文档:适用于 Linux 的 Windows 子系统文档 | Microsoft Docs
  2. 提供Linux系统环境,减少传统虚拟机或者双启动的设置开销。
  3. 可用功能:
    • Microsoft Store 中选择你偏好的 GNU/Linux 分发版。
    • 运行 Bash shell 脚本和 GNU/Linux 命令行应用程序,包括:
      1. 工具:vim、emacs、tmux
      2. 语言:NodeJS、Javascript、Python、Ruby、C/C++、C# 与 F#、Rust、Go 等
      3. 服务:SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL。
      4. 使用自己的 GNU/Linux 分发包管理器安装其他软件。
      5. 使用类似于 Unix 的命令行 shell 调用 Windows 应用程序。
      6. 在 Windows 上调用 GNU/Linux 应用程序。

wsl1和wsl2的性能比对:

功能WSL 1WSL 2
Windows 和 Linux 之间的集成
启动时间短
与传统虚拟机相比,占用的资源量少
可以与当前版本的 VMware 和 VirtualBox 一起运行
托管 VM
完整的 Linux 内核
完全的系统调用兼容性
跨 OS 文件系统的性能

WSL 2 仅适用于 Windows 10 版本 1903、内部版本 18362 或更高版本。

通过按 win + R,检查 Windows 版本,然后键入 winver,选择“确定”。

WSL 2 也适用于 VMware 15.5.5+VirtualBox 6+

WSL 2 Linux 内核是开源的。 可查看由构建该内核的团队撰写的博客文章随 Windows 一起提供 Linux 内核

但目前存在以下问题:

  • WSL 2 不支持访问串行端口。
  • WSL 2 的跨os文件性能较弱
  • WSL 2 的内存使用量会随使用而缩放。 如果有长时间运行的 WSL 会话或访问非常大量的文件,此缓存可能会耗尽 Windows 内存。

WSL安装

自动安装

可以直接去Microsoft Store商城直接下载,这样简单又快捷。

参考官方文档:安装 WSL | Microsoft Docs

安装指令:

1
wsl --install

如果你需要使用旧版本的WSL安装步骤(直接跳到下文—手动安装WSL):安装 WSL | Microsoft Docs

可通过以下命令安装指定的linux发行版:

  1. 先获取可用的Linux发行版列表

    1
    wsl --list --online
  2. 指定安装的Linux发行版名称

    1
    2
    wsl --install -d <Distribution Name> # <Distribution Name>是发行版的名称
    wsl --install -d Ubuntu-22.04

Linux子系统迁移

这里为什么要迁移,我想大家都知道,如果你不迁移,默认使用的是C盘,这样你使用下去,会让你的C盘爆满,到时候你想迁移也是很无奈的,这里先一步迁移是因为安装时还很小,后续迁移太大,执行起来估计很麻烦。

  1. 查询安装的Linux子系统

    1
    wsl -l --all -v
  2. 停止Linux子系统

    1
    2
    wsl --shutdown Ubuntu22.04
    wsl -l --all -v

    这里你执行wsl -l --all -v去看会显示

    1
    2
    3
    NAME            STATE           VERSION
    * Ubuntu-22.04 Stopped 2
    # 主要看 Ubuntu-22.04 右边显示的 Stopped,如果没有关闭显示的是 Running。
  3. Linux子系统导入其他盘

    1
    2
    wsl --export Ubuntu22.04 d:\wsl\Ubuntu22.04.tar
    # 创建一个路径,把Linux进行压缩保存
  4. 注销当前Linux子系统

    1
    wsl --unregister Ubuntu22.04

    这里会显示”正在注销…”这时你执行wsl -l --all -v这看见显示没有安装

  5. 重新导入linux子系统

    1
    wsl --import Ubuntu22.04 D:\wsl\Ubuntu22.04 D:\wsl\Ubuntu22.04.tar

    左边的是你需要安装的路径,右边是你刚才压缩的路径位置。

  6. 这里我们还需要找回账户

    1
    ubuntu2204 config --default-user name(这里填写你的Linux用户名)

扩展内容

Linux用源是国外的源,这里使用都需要科学上网,对于一些人来说有点麻烦,这里我们把它替换成国内源。

换apt源

  1. 更改sources.list文件,更改前先进行备份

    1
    sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
  2. 备份好后开始进行编辑

    1
    sudo vim /etc/apt/sources.list
  3. 开始进行编辑sources.list文件

    • 按下键盘上的 I 键进行编辑(终端下面出现Import或者插入才行)

    • 将原内容 全部用 # 注释掉(或者删掉),然后将从下面的apt清华源网址中找到的对应版本的apt源复制粘贴

  4. 退出进行编辑保存

    按下esc键或shift+:,然后 :wq 保存

    更换完源后需要更新+软件更新:

    1
    sudo apt update && sudo apt upgrage -y && sudo apt autoremove

    这里准备了几个国内源:

    国内源
    Ubuntu 22.04 LTS 阿里源
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    deb http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy-security main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy-updates main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy-proposed main restricted universe multiverse
    deb http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
    deb-src http://mirrors.aliyun.com/ubuntu/ jammy-backports main restricted universe multiverse
    Ubuntu 22.04 LTS 清华源
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    # 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-security main restricted universe multiverse

    # 预发布软件源,不建议启用
    # deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
    # deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
    Ubuntu 22.04 LTS 中科大源
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    deb https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-updates main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-backports main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-security main restricted universe multiverse
    deb https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
    deb-src https://mirrors.ustc.edu.cn/ubuntu/ jammy-proposed main restricted universe multiverse
    Ubuntu 22.04 LTS 163源
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    deb http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
    deb http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ jammy main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ jammy-security main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ jammy-updates main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ jammy-proposed main restricted universe multiverse
    deb-src http://mirrors.163.com/ubuntu/ jammy-backports main restricted universe multiverse

到这里就基本完成了,这里版本我安装没有出现任何问题,如果你有什么问题可以在评论区留言。