Save Load
GitHub 切换暗/亮/自动模式 切换暗/亮/自动模式 切换暗/亮/自动模式 返回首页

Wsl2 1、概述

WSL2

概述

什么是 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 应用程序。

WSL 的基本命令

安装

PowerShell 命令:

wsl --install

安装特定的 Linux 发行版

PowerShell 命令:

wsl --install --distribution <Distribution Name>

通过将 替换为发行版名称,指定除默认发行版 (Ubuntu) 之外的 Linux 发行版进行安装。 此命令也可输入为:wsl -d

列出可用的 Linux 发行版

PowerShell 命令:

wsl --list --online

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

列出已安装的 Linux 发行版

PowerShell 命令:

wsl --list --verbose

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

将 WSL 版本设置为 1 或 2

PowerShell 命令:

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

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

设置默认 WSL 版本

PowerShell 命令:

wsl --set-default-version <Version>

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

设置默认 Linux 发行版

PowerShell 命令:

wsl --set-default <Distribution Name>

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

将目录更改为主页

PowerShell 命令:

wsl ~

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

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

PowerShell 命令:

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

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

更新 WSL

PowerShell 命令:

wsl --update

手动更新 WSL Linux 内核的版本。 还可以使用 wsl –update rollback 命令回滚到 WSL Linux 内核的上一版本。

检查 WSL 状态

PowerShell 命令:

wsl --status

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

Help 命令

PowerShell 命令:

wsl --help

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

以特定用户的身份运行

PowerShell 命令:

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

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

更改发行版的默认用户

PowerShell 命令:

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

更改用于发行版登录的默认用户。 用户必须已经存在于发行版中才能成为默认用户。

例如:ubuntu config –default-user johndoe 会将 Ubuntu 发行版的默认用户更改为“johndoe”用户。

关闭

PowerShell 命令:

wsl --shutdown

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

Terminate

PowerShell 命令:

wsl --terminate <Distribution Name>

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

将发行版导出到 TAR 文件

PowerShell 命令:

wsl --export <Distribution Name> <FileName>

将分发版导出到 tar 文件。 在标准输出中,文件名可以是 -。

导入新发行版

PowerShell 命令:

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

导入指定的 tar 文件作为新的分发版。 在标准输入中,文件名可以是 -。 –version 选项还可与此命令一起使用,用于指定导入的发行版将在 WSL 1 还是 WSL 2 上运行。

注销或卸载 Linux 发行版

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

注销并卸载 WSL 发行版:

PowerShell 命令:

wsl --unregister <DistributionName>

如果将 替换为目标 Linux 发行版的名称,则将从 WSL 取消注册该发行版,以便可以重新安装或清理它。 警告:取消注册后,与该分发版关联的所有数据、设置和软件将永久丢失。 从 Store 重新安装会安装分发版的干净副本。 例如:wsl –unregister Ubuntu 将从可用于 WSL 的发行版中删除 Ubuntu。 运行 wsl –list 将会显示它不再列出。

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

装载磁盘或设备

PowerShell 命令:

wsl --mount <DiskPath>

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

  • wsl --mount --bare:将磁盘附加到 WSL2,但不进行装载。
  • wsl --mount --type <Filesystem>:装载磁盘时使用的文件系统类型默认为 ext4(如果未指定)。 此命令也可输入为:wsl --mount -t <Filesystem>。可以使用 blkid <BlockDevice> 命令检测文件系统类型,例如:blkid <dev/sdb1>
  • wsl --mount --partition <Partition Number>:要装载的分区的索引号默认为整个磁盘(如果未指定)。
  • wsl --mount --options <MountOptions>:装载磁盘时,可以包括一些特定于文件系统的选项。 例如,wsl --mount -o "data-ordered"wsl --mount -o "data=writeback 之类的 ext4 装载选项。 但是,目前仅支持特定于文件系统的选项。 不支持通用选项,例如 ro、rw 或 noatime。
  • wsl --unmount <DiskPath>:从所有 WSL 2 发行版中卸载和分离磁盘。 如果未包含 ,则此命令将卸载并分离所有装载的磁盘。
wsl --update

wsl --list --online

wsl --install --d Ubuntu-20.04

sudo apt update && sudo apt upgrade

netsh winsock reset