安装 PSCompletions

psc add wsl

WSL是什么?1

WSL 是 Windows Subsystem for Linux 的缩写。是可以在 Windows 系统下运行的 Linux 子系统。

什么是适用于 Linux 的 Windows 子系统?

适用于 Linux 的 Windows 子系统(WSL)是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双重启动。 WSL 旨在为想要同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。是适用于 Linux 的 Windows 子系统?

WSL 的基本命令

Help 命令
wsl --help
安装
wsl --install

安装 WSL 和 Linux 的默认 Ubuntu 分发版。 此命令将启用运行 WSL 并安装 Linux 的 Ubuntu 分发所需的功能。

注意

仅当 WSL 根本不安装时,上述命令才有效。 如果运行 wsl --install 并查看 WSL 帮助文本,请尝试运行 wsl --list --online 以查看可用发行版列表并运行 wsl --install -d <DistroName> 以安装发行版。 如果安装过程停在 0.0%,请先运行 wsl --install --web-download -d <DistroName> 下载发行版,然后再进行安装。 若要卸载 WSL,请参阅卸载旧版 WSL注销或卸载 Linux 分发版

列出可用的 Linux 分发版
wsl --list --online
wsl -l -o
列出已安装的 Linux 分发版
wsl --list --verbose
wsl -l -v
将 WSL 版本设置为 1 或 2
wsl --set-version <distribution name> <versionNumber>

若要指定 Linux 发行版运行的 WSL 版本(1 或 2),请将 <distribution name> 替换为发行版的名称,并将 <versionNumber> 替换为 1 或 2。 比较 WSL 1 和 WSL 2。 WSL 2 仅在 Windows 11 或 Windows 10 版本 1903 版本 18362 或更高版本中可用。

设置默认 WSL 版本
wsl --set-default-version <Version>
设置默认 Linux 分发版
wsl --set-default <Distribution Name>

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

从 PowerShell 或 CMD 运行特定的 Linux 分发版
wsl --distribution <Distribution Name> --user <User Name>
wsl -d <Distribution Name> --user <User Name>

若要使用特定用户运行特定 Linux 发行版,请将 <Distribution Name> 替换为您首选的 Linux 发行版的名称(即 Debian),并将 <User Name> 替换为现有用户的名称(即 root)。 如果 WSL 分发中不存在用户,将收到错误。 若要打印当前用户名,请使用命令 whoami

以特定用户身份运行
wsl --user <Username>

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

更新 WSL
wsl --update

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

  • --web-download:从 GitHub 下载最新更新,而不是 Microsoft 商店。
检查 WSL 状态
wsl --status
检查 WSL 版本
wsl --version
wsl -v

检查有关 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 文件

终止
wsl --terminate <Distribution Name>
wsl -t <Distribution Name>

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

标识 IP 地址
  • wsl hostname -I:返回通过 WSL 2 安装的 Linux 分发版的 IP 地址(WSL 2 VM 地址)
  • ip route show | grep -i default | awk '{ print $3}':返回从 WSL 2(WSL 2 VM)中看到的 Windows 计算机的 IP 地址
导出分发
wsl --export <Distribution Name> <FileName>

将指定分发的快照导出为新的分发文件。 默认为 tar 格式。 文件名可以是-,用于标准输入。 选项包括:

  • --vhd:指定导出分发应为 .vhdx 文件而不是 tar 文件(仅使用 WSL 2 支持)
导入发行版
wsl --import <Distribution Name> <InstallLocation> <FileName>

将指定的 tar 文件导入为新的分发版。 文件名可以是-,用于标准输入。 选项包括:

  • --vhd:指定导入分发应为 .vhdx 文件而不是 tar 文件(仅使用 WSL 2 支持)
  • --version <1/2>:指定是否将分发导入为 WSL 1 还是 WSL 2
就地导入分发包
wsl --import-in-place <Distribution Name> <FileName>

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

注销或卸载 Linux 分发版
wsl --unregister <DistributionName>

<DistributionName> 替换为您目标的 Linux 发行版名称,会使该发行版从 WSL 中注销,以便您可以重新安装或清理它。 谨慎: 注销后,与该分发关联的所有数据、设置和软件都将永久丢失。 从应用商店重新安装将安装分发版的干净副本。 例如, wsl --unregister Ubuntu 将从 WSL 中可用的分发中删除 Ubuntu。 运行 wsl --list 将显示它不再列出。

还可以像任何其他应用商店应用程序一样卸载 Windows 计算机上的 Linux 分发应用。 若要重新安装,请在 Microsoft 应用商店中找到分发版,然后选择“启动”。

装载磁盘或设备
wsl --mount <DiskPath>

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

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

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

Footnotes

  1. 参考摘录来源:https://learn.microsoft.com/zh-cn/windows/wsl/