参考 WSL 官方文档:https://learn.microsoft.com/zh-cn/windows/wsl/

什么是WSL?

适用于 Linux 的 Windows 子系统可让开发人员按原样运行 GNU/Linux 环境 - 包括大多数命令行工具、实用工具和应用程序 - 且不会产生传统虚拟机或双启动设置开销。
您可以:

  • 在 Microsoft Store 中选择你偏好的 GNU/Linux 分发版。
  • 运行常用的命令行软件工具(例如 grep、sed、awk)或其他 ELF-64 二进制文件。
  • 运行 Bash shell 脚本和 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 加速用于机器学习、数据科学场景等

什么是 WSL 2?

WSL 2 是适用于 Linux 的 Windows 子系统体系结构的一个新版本,它支持适用于 Linux 的 Windows 子系统在 Windows 上运行 ELF64 Linux 二进制文件。 它的主要目标是提高文件系统性能,以及添加完全的系统调用兼容性
这一新的体系结构改变了这些 Linux 二进制文件与Windows 和计算机硬件进行交互的方式,但仍然提供与 WSL 1(当前广泛可用的版本)中相同的用户体验。
单个 Linux 分发版可以在 WSL 1 或 WSL 2 体系结构中运行。 每个分发版可随时升级或降级,并且你可以并行运行 WSL 1 和 WSL 2 分发版。 WSL 2 使用全新的体系结构,该体系结构受益于运行真正的 Linux 内核。

比较 WSL 1 和 WSL 2

WSL 1 和 WSL 2 之间的主要区别在于,在托管 VM 内使用实际的 Linux 内核、支持完整的系统调用兼容性以及跨 Linux 和 Windows 操作系统的性能。 WSL 2 是安装 Linux 发行版时的当前默认版本,它使用最新最好的虚拟化技术在轻量级实用工具虚拟机 (VM) 内运行 Linux 内核。
比较功能

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

安装 WSL 2

检查是否可以安装

打开 CMD,输入:

systeminfo

检查虚拟化信息,比如下面:

Hyper-V 要求:
虚拟机监视器模式扩展: 是
固件中已启用虚拟化: 是
二级地址转换: 是
数据执行保护可用: 是

最后的信息如果出现上面的信息就是可以支持。

全新安装 WSL2

启用适用于 Linux 的 Windows 子系统功能

首先,以管理员身份打开 PowerShell 或 CMD,启用 Linux 子系统功能(或者在控制面板 - 程序 - 启用或关闭Windows功能 - 勾选适用于 Linux 的 Windows 子系统):

dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

启用虚拟机功能

首先,以管理员身份打开 PowerShell 或 CMD,启用虚拟机功能(或者在控制面板 - 程序 - 启用或关闭Windows功能 - 勾选虚拟机平台):

dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

启用后,需要重新启动计算机,以继续完成 WSL2 更新。
管理员身份打开 PowerShell 或 CMD 运行:

wsl --install

上述命令仅在完全未安装 WSL 时才有效,install 执行以下操作:

  • 启用可选的 WSL 和虚拟机平台组件
  • 下载并安装最新 Linux 内核
  • 将 WSL 2 设置为默认值
  • 下载并安装 Ubuntu Linux 发行版(默认发行版)(可能需要重新启动)

注意:如果是比较新的系统,使用 wsl --install 安装后将默认为 WSL2,但是老的系统安装后可能还是 WSL1,请参考下面介绍的升级到 WSL2。
如果需要安装其他发行版,请尝试运行:

> wsl --list --online
以下是可安装的有效分发的列表。
请使用“wsl --install -d <分发>”安装。NAME            FRIENDLY NAME
Ubuntu          Ubuntu
Debian          Debian GNU/Linux
kali-linux      Kali Linux Rolling
openSUSE-42     openSUSE Leap 42
SLES-12         SUSE Linux Enterprise Server v12
Ubuntu-16.04    Ubuntu 16.04 LTS
Ubuntu-18.04    Ubuntu 18.04 LTS
Ubuntu-20.04    Ubuntu 20.04 LTS

安装指定发行版:

wsl --install -d <DistroName>

安装好后重启以下就好了。
配置 WSL2
现在就可以打开刚开安装好的 Ubuntu 或者自己安装的系统了,会提示配置用户和密码,配置完毕即可享用。接着还可以配置一下国内源,安装一些常用的软件即可,正常 Linux 操作,这里就不赘述了。

升级到 WSL2

这种情况是你的 PC 系统版本太老只能安装 WSL1,或者之前安装过 WSL1,现在想要升级到 WSL2 的情况。建议 Windows 版本在 2004 以上。如果系统是老版本(1903、1909),请参考:旧版 WSL 的手动安装步骤。
首先必须启用适用于 Linux 的 Windows 子系统功能启用虚拟机功能,在上面全新安装 WSL2 时已经介绍过开启方法,这里不再重复,操作后继续向下看。

下载 Linux 内核更新包

下载最新包:适用于 x64 计算机的 WSL2 Linux 内核更新包。注:如果使用的是 ARM64 计算机,请下载 ARM64 包。
运行下载的更新包。 (双击以运行 - 系统将提示你提供提升的权限,选择“是”以批准此安装。)
安装完成后,就将 WSL 2 设置为默认版本。

将 WSL 版本设置为 1 或 2

wsl --set-version <distribution name> <versionNumber>

请将 <distribution name> 替换为发行版的名称,并将 <versionNumber> 替换为 1 或 2。可以使用 wsl -l -v 查看安装了哪些发行版。

设置默认 WSL 版本

wsl --set-default-version <Version>

将 WSL 设置为默认的版本后,之后再安装 WSL 将会以默认设置的版本进行安装。

安装 Windows Terminal

Windows Terminal 是一款非常现代化的终端工具,可以提供最佳的终端体验,可以打开 WSL 体验。
下载方式:在 MicroSoft Store 中搜索 Windows Terminal ,然后安装即可。安装后可以在设置中选择配色以及外观等。

安装 Linux 发行版

打开 Microsoft Store,选择你偏好的 Linux 发行版,然后安装即可。首次启动新安装的 Linux 发行版时,将打开一个控制台窗口,系统会要求你等待一分钟或两分钟。

下载发行版

在某些情况下,你可能无法(或不想)使用 Microsoft Store 安装 WSL Linux 发行版。 你可能正在运行不支持 Microsoft Store 的 Windows Server 或长期服务 (LTSC) 版本,或者你的公司网络策略和/或管理员不允许在你的环境中使用 Microsoft Store。 在这些情况下,虽然 WSL 本身可用,但你可能需要直接下载 Linux 发行版。
如果 Microsoft Store 应用不可用,可使用以下链接来下载并手动安装 Linux 发行版:

  • Ubuntu
  • Ubuntu 22.04 LTS
  • Ubuntu 20.04
  • Ubuntu 20.04 ARM
  • Ubuntu 18.04
  • Ubuntu 18.04 ARM
  • Ubuntu 16.04
  • Debian GNU/Linux
  • Kali Linux
  • SUSE Linux Enterprise Server 12
  • SUSE Linux Enterprise Server 15 SP2
  • SUSE Linux Enterprise Server 15 SP3
  • openSUSE Tumbleweed
  • openSUSE Leap 15.3
  • openSUSE Leap 15.2
  • Oracle Linux 8.5
  • Oracle Linux 7.9
  • Fedora Remix for WSL

下载 <distro>.appx 包到你选择的文件夹。
下载了发行版后,在该目录中运行以下命令,其中 app-name 是 Linux 发行版 .appx 文件的名称。

Add-AppxPackage .\app_name.appx

Appx 包下载完成后,可以通过双击 appx 文件开始运行新发行版。(命令 wsl -l 不会在此步骤完成之前显示发行版已安装)。

WSL 的基本命令

以下 WSL 命令以 PowerShell 或 Windows 命令提示符支持的格式列出。 若要通过 Bash/Linux 发行版命令行运行这些命令,必须将 wsl 替换为 wsl.exe。 若要获取完整的命令列表,请运行 wsl --help

安装

wsl --install

安装 WSL 和 Linux 的默认 Ubuntu 发行版。还可以使用此命令通过运行 wsl --install <Distribution Name> 来安装其他 Linux 发行版。 若要获取发行版名称的有效列表,请运行 wsl --list --online
选项包括:

  • --distribution:指定要安装的 Linux 发行版。 可以通过运行 wsl --list --online 来查找可用的发行版。
  • --no-launch:安装 Linux 发行版,但不自动启动它。
  • --web-download:通过联机渠道安装,而不是使用 Microsoft Store 安装。

未安装 WSL 时,选项包括:

  • --inbox:使用 Windows 组件(而不是 Microsoft Store)安装 WSL。 (WSL 更新将通过 Windows 更新接收,而不是通过 Microsoft Store 中推送的可用更新来接收)。
  • --enable-wsl1:在安装 Microsoft Store 版本的 WSL 的过程中也启用“适用于 Linux 的 Windows 子系统”可选组件,从而启用 WSL 1。
  • --no-distribution:安装 WSL 时不安装发行版。

列出可用的 Linux 发行版

wsl --list --online

查看可通过在线商店获得的 Linux 发行版列表。 此命令也可输入为:wsl -l -o

列出已安装的 Linux 发行版

wsl --list --verbose

查看安装在 Windows 计算机上的 Linux 发行版列表,其中包括状态(发行版是正在运行还是已停止)和运行发行版的 WSL 版本(WSL 1 或 WSL 2)。此命令也可输入为:wsl -l -v。 可与 list 命令一起使用的其他选项包括:--all(列出所有发行版)、--running(仅列出当前正在运行的发行版)或 --quiet(仅显示发行版名称)。

将 WSL 版本设置为 1 或 2

wsl --set-version <distribution name> <versionNumber>

若要指定运行 Linux 发行版的 WSL 版本(1 或 2),请将 <distribution name> 替换为发行版的名称,并将 <versionNumber> 替换为 1 或 2。

设置默认 WSL 版本

wsl --set-default-version <Version>

若要将默认版本设置为 WSL 1 或 WSL 2,请将 <Version> 替换为数字 1 或 2,表示对于安装新的 Linux 发行版,你希望默认使用哪个版本的 WSL。 例如,wsl --set-default-version 2

设置默认 Linux 发行版

wsl --set-default <Distribution Name>

若要设置 WSL 命令将用于运行的默认 Linux 发行版,请将 <Distribution Name> 替换为你首选的 Linux 发行版的名称。

将目录更改为主页

wsl ~

~ 可与 wsl 一起使用,以在用户的主目录中启动。 若要在 WSL 命令提示符中从任何目录跳回到主目录,可使用命令 cd ~

通过 PowerShell 或 CMD 运行特定的 Linux 发行版

wsl --distribution <Distribution Name> --user <User Name>

若要通过特定用户运行特定 Linux 发行版,请将 <Distribution Name> 替换为你首选的 Linux 发行版的名称(例如 Debian),将 <User Name> 替换为现有用户的名称(例如 root)。 如果 WSL 发行版中不存在该用户,你将会收到一个错误。 若要输出当前用户名,请使用 whoami 命令。

更新 WSL

wsl --update

将 WSL 版本更新到最新版本。 选项包括:

  • --web-download:从 GitHub 而不是 Microsoft Store 下载最新更新。

检查 WSL 状态

wsl --status

查看有关 WSL 配置的常规信息,例如默认发行版类型、默认发行版和内核版本。

检查 WSL 版本

wsl --version

检查有关 WSL 及其组件的版本信息。

Help 命令

wsl --help

查看 WSL 中可用的选项和命令列表。

以特定用户的身份运行

wsl -u <Username>`, `wsl --user <Username>

若要以指定用户身份运行 WSL,请将 <Username> 替换为 WSL 发行版中存在的用户名。

更改发行版的默认用户

<DistributionName> config --default-user <Username>

更改用于发行版登录的默认用户。 用户必须已经存在于发行版中才能成为默认用户。
例如:ubuntu config --default-user johndoe 会将 Ubuntu 发行版的默认用户更改为“johndoe”用户。
备注
如果在确定发行版名称时遇到问题,请使用命令 wsl -l
警告
此命令不适用于导入的发行版,因为这些发行版没有可执行启动器。 可以改为使用 /etc/wsl.conf 文件来更改导入的发行版的默认用户。 请参阅高级设置配置文档中的“自动装载”选项。

关闭

wsl --shutdown

立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机。 在需要重启 WSL 2 虚拟机环境的情形下,例如更改内存使用限制或更改 .wslconfig 文件,可能必须使用此命令。

Terminate

wsl --terminate <Distribution Name>

若要终止指定的发行版或阻止其运行,请将 <Distribution Name> 替换为目标发行版的名称。

导入和导出发行版

导入

wsl --export <Distribution Name> <FileName>

导出

wsl --import <Distribution Name> <InstallLocation> <FileName>

将指定 tar 文件导入和导出为新的发行版。 在标准输入中,文件名可以是 -。 选项包括:

  • --vhd:指定导入/导出发行版应为 .vhdx 文件,而不是 tar 文件
  • --version:(仅导入)指定将发行版导入为 WSL 1 还是 WSL 2 发行版

就地导入发行版

wsl --import-in-place <Distribution Name> <FileName>

将指定的 .vhdx 文件导入为新的发行版。 虚拟硬盘必须采用 ext4 文件系统类型格式。

注销或卸载 Linux 发行版

尽管可以通过 Microsoft Store 安装 Linux 发行版,但无法通过 Store 将其卸载。
注销并卸载 WSL 发行版:

wsl --unregister <DistributionName>

如果将 <DistributionName> 替换为目标 Linux 发行版的名称,则将从 WSL 取消注册该发行版,以便可以重新安装或清理它。
**警告:**取消注册后,与该分发版关联的所有数据、设置和软件将永久丢失。 从 Store 重新安装会安装分发版的干净副本。 例如:wsl --unregister Ubuntu 将从可用于 WSL 的发行版中删除 Ubuntu。 运行 wsl --list 将会显示它不再列出。
还可以像卸载任何其他应用商店应用程序一样卸载 Windows 计算机上的 Linux 发行版应用。 若要重新安装,请在 Microsoft Store 中找到该发行版,然后选择“启动”。

装载磁盘或设备

wsl --mount <DiskPath>

通过将 <DiskPath> 替换为物理磁盘所在的目录\文件路径,在所有 WSL2 发行版中附加和装载该磁盘。 请参阅在 WSL 2 中装载 Linux 磁盘。 选项包括:

  • --vhd:指定 引用虚拟硬盘。
  • --name:使用装入点的自定义名称装载磁盘
  • --bare:将磁盘附加到 WSL2,但不进行装载。
  • --type <Filesystem>:装载磁盘时使用的文件系统类型默认为 ext4(如果未指定)。 此命令也可输入为:wsl --mount -t <Filesystem>。可以使用 blkid <BlockDevice> 命令检测文件系统类型,例如:blkid <dev/sdb1>
  • --partition <Partition Number>:要装载的分区的索引号默认为整个磁盘(如果未指定)。
  • --options <MountOptions>:装载磁盘时,可以包括一些特定于文件系统的选项。 例如,wsl --mount -o "data-ordered"wsl --mount -o "data=writeback 之类的 ext4 装载选项。 但是,目前仅支持特定于文件系统的选项。 不支持通用选项,例如 ro、rw 或 noatime。

备注
如果你正在运行 32 位进程来访问 wsl.exe(一种 64 位工具),那么你可能需要按如下方式运行此命令:C:\Windows\Sysnative\wsl.exe --command

卸载磁盘

wsl --unmount <DiskPath>

卸载磁盘路径中给定的磁盘,如果未提供磁盘路径,则此命令将卸载并分离所有已装载的磁盘。

已弃用的 WSL 命令

wslconfig.exe [Argument] [Options]
bash [Options]
lxrun /[Argument]

这些命令是用于配置随 WSL 安装的 Linux 发行版的原始 wsl 语法,但已替换为 wsl 或 wsl.exe 命令语法。

WSL2安装和基本命令相关推荐

  1. Windows Subsystem for Linux (WSL2) - WSL 的基本命令

    Windows Subsystem for Linux (WSL2) - WSL 的基本命令 Windows Subsystem for Linux Documentation https://lea ...

  2. MongoDB的安装及基本命令和pymongo的使用

    Mac中MongoDB的安装以及基本命令和pymongo的使用 一. NoSQL简介 1.NoSQL介绍 NoSQL全名为Not Only SQL, 指的是非关系型数据库, 在现代的计算系统上每天网络 ...

  3. 【收藏】win10利用WSL2安装docker的2种方式

    win10利用WSL2安装docker的2种方式

  4. WSL2 安装中文输入法教程 简单有效

    很多教程我都参考过 大多有问题 只有这个简单明了实用 WSL2安装中文输入法教程 https://monkeywie.cn/2021/09/26/wsl2-gui-idea-config/

  5. Windows学习总结(23)——在 Windows 10 子系统 ubuntu 上利用 WSL2 安装 docker 的 2 种方式

    前言 windows10 目前推出了WSL2,相对于WSL采用API转换的方式, WSL2 则完全不同,win10 开始内置了一个轻量级虚拟机,经过不断的优化,这个虚拟机实现了与 windows 的高 ...

  6. WSL2 安装 CUDA(Win11)

    WSL2 安装 CUDA(Win11) 1.安装WSL的CUDA驱动 驱动下载地址:https://developer.nvidia.com/cuda/wsl 选好你自己的显卡类型 下载完成后直接默认 ...

  7. Windows WSL2 安装Nvidia-Docker GPU 驱动Paddlepaddle

    Windows WSL2 安装Nvidia-Docker GPU 驱动Paddlepaddle 1. 安装最新的显卡驱动

  8. WSL2安装locate命令一直显示Initializing mlocate database; this may take some time,进度一直卡在60%

    WSL2安装locate命令一直显示Initializing mlocate database; this may take some time,进度一直卡在60% 1.软件环境⚙️ 2.问题描述

  9. Win10系统基于WSL2安装Docker问题小结

    一.准备工作 (1)检查确保电脑的虚拟化开启. 需要在BIOS中开启虚拟化技术(VT.VT-x或AMD-V). (2)确保当前版本是64位Windows 10 Pro,专业版.企业版和教育版 要安装W ...

最新文章

  1. 负载分析及问题排查极简教程
  2. Bootstrap栅格布局系统的特点
  3. java 判断一个字符串是否为纯数字
  4. 为网站加入Drupal星球制作RSS订阅源
  5. Python字节到大整数的打包与解包
  6. python中的构造函数和构造函数和析构函数的作用
  7. 防止过拟合以及解决过拟合
  8. mongodb简单的增删改查
  9. Bootstrap 插件的事件
  10. python输出用逗号隔开的数字_Python:从字符串中提取带有点和逗号的数字
  11. C语言之-fPIC编译与代码位置无关.a/.so库(二)
  12. python3.5安装pip_python详细安装pip教程
  13. Security+ 学习笔记52 风险管理
  14. 【软件使用技巧】二(Word文档损坏)
  15. 信息化规划、信息化战略规划、信息资源规划、信息化项目规划之间的关系
  16. 什么是IT人员外包?
  17. xcode 配置wechat_react-native-wechat微信组件的使用
  18. 波士顿大学计算机硕士排名,波士顿大学计算机工程硕士排名第28(2020年TFE Times排名)...
  19. Ubuntu 22.04.1 配置 LXR 阅读Linux kernel源码
  20. 幼儿识字软件测试自学,儿童识字App大PK:汉字王国只娱乐不学习

热门文章

  1. Android实战技巧之四十:Android5.1.1源代码编译与烧写
  2. 【图像检测】基于深度学习 (CAE) 实现材料异常检测和定位附matlab代码
  3. 安全科普:流量劫持的方式和途径
  4. Shopify好用的开发插件/网站编辑插件
  5. iOS11 iPhone X 适配指南
  6. linux安装python3.7的步骤_在Linux上安装Python3.7.1
  7. 写给开发人员的实用密码学 - 国密对称加密算法SM4实现要点
  8. stm32F767开发版基本介绍
  9. 图的深度优先算法和广度优先算法
  10. 社区发现(一):社区简介