🛫 导读

需求

早在18年就听说了WSL,也第一时间的尝试了,可惜当时条件苛刻,没有合适的硬件承载,只能放弃。

开发环境

版本号描述
文章日期2023-12-14
操作系统Win11 - 22H222621.2715

1️⃣ WSL安装

WSL(Windows Subsystem for Linux)是Windows系统中一个强大的功能,它为用户提供了一种与Linux系统兼容的运行环境。本文将深入介绍WSL的使用方法,包括WSL的安装、配置、使用命令行和图形界面等方面。

启用或关闭windows功能

  1. 打开系统设置,选择应用选项卡,选择可选功能菜单:
    在这里插入图片描述
  1. 滑到最下方,选择更多Windows功能菜单:
    在这里插入图片描述
  1. 在下面对话框中,启用适用于Linux的windows 子系统虚拟机平台功能。
    如果提示重启系统,请重启,避免不必要的错误。
    在这里插入图片描述
  1. 重启后会自动安装部分组件,如下图:
    在这里插入图片描述

ps: 未安装wsl组件的情况下,还会弹出提示安装组件,直接点击即可安装。

安装分发

类似nvm、maven等管理软件,可以通过wsl.exe命令查看已经安装和可以安装的Linux系统。

  1. 查看已经安装列表:wsl -l
    刚开始时没有内容的,提示如下:
    在这里插入图片描述
  1. 查看可用安装列表:wsl --list --online
    会显示如下内容:
    我们在这里选择Ubuntu
C:\Users\Knine> wsl --list --online
以下是可安装的有效分发的列表。
使默认分发用 “*” 表示。
使用 'wsl --install -d <Distro>' 安装。

  NAME                                   FRIENDLY NAME
* Ubuntu                                 Ubuntu
  Debian                                 Debian GNU/Linux
  kali-linux                             Kali Linux Rolling
  Ubuntu-18.04                           Ubuntu 18.04 LTS
  Ubuntu-20.04                           Ubuntu 20.04 LTS
  Ubuntu-22.04                           Ubuntu 22.04 LTS
  OracleLinux_7_9                        Oracle Linux 7.9
  OracleLinux_8_7                        Oracle Linux 8.7
  OracleLinux_9_1                        Oracle Linux 9.1
  openSUSE-Leap-15.5                     openSUSE Leap 15.5
  SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
  SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
  openSUSE-Tumbleweed                    openSUSE Tumbleweed
  1. 安装并设置用户名密码:wsl --install Ubuntu
    接着按照下面步骤执行即可进入Ubuntu
    在这里插入图片描述

命令行启动Linux

如果不是安装的情况,如何进入Linux呢?

  1. 执行bash
  2. 执行wsl -d Ubuntu
    在这里插入图片描述

2️⃣ WSL 的基本命令

显示帮助

wsl --help
在这里插入图片描述

列出可用的 Linux 发行版

wsl --list --online
缩写形式: wsl -l -o

以下是可安装的有效分发的列表。
使用 'wsl.exe --install <Distro>' 安装。

NAME                                   FRIENDLY NAME
Ubuntu                                 Ubuntu
Debian                                 Debian GNU/Linux
kali-linux                             Kali Linux Rolling
Ubuntu-18.04                           Ubuntu 18.04 LTS
Ubuntu-20.04                           Ubuntu 20.04 LTS
Ubuntu-22.04                           Ubuntu 22.04 LTS
OracleLinux_7_9                        Oracle Linux 7.9
OracleLinux_8_7                        Oracle Linux 8.7
OracleLinux_9_1                        Oracle Linux 9.1
openSUSE-Leap-15.5                     openSUSE Leap 15.5
SUSE-Linux-Enterprise-Server-15-SP4    SUSE Linux Enterprise Server 15 SP4
SUSE-Linux-Enterprise-15-SP5           SUSE Linux Enterprise 15 SP5
openSUSE-Tumbleweed                    openSUSE Tumbleweed

列出已安装的 Linux 发行版

wsl --list --verbose
缩写形式: wsl -l -v
可与 list 命令一起使用的其他选项包括:–all(列出所有发行版)、–running(仅列出当前正在运行的发行版)或 --quiet(仅显示发行版名称)。

C:\Users\Knine>wsl -l -v
  NAME      STATE           VERSION
* Ubuntu    Running         2

C:\Users\Knine>wsl -l -v -a
参数错误。
Error code: Wsl/E_INVALIDARG

C:\Users\Knine>wsl -l -v --all
  NAME      STATE           VERSION
* Ubuntu    Running         2

C:\Users\Knine>wsl -l -v --running
  NAME      STATE           VERSION
* Ubuntu    Running         2

检查 WSL 版本

wsl --version

C:\Users\Knine>wsl --version
WSL 版本: 2.0.9.0
内核版本: 5.15.133.1-1
WSLg 版本: 1.0.59
MSRDC 版本: 1.2.4677
Direct3D 版本: 1.611.1-81528511
DXCore 版本: 10.0.25131.1002-220531-1700.rs-onecore-base2-hyp
Windows 版本: 10.0.22621.2715

更新 WSL

wsl --update

# 略

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

wsl --distribution <Distribution Name> --user <User Name>
示例: wsl --distribution Ubuntu

C:\Users\Knine>wsl --distribution Ubuntu
To run a command as administrator (user "root"), use "sudo <command>".
See "man sudo_root" for details.

one@yeahmao:/mnt/c/Users/Knine$

ps: 也可以直接使用bash运行默认版本的Linux。

关闭WSL全部服务

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

关闭WSL指定发行版

wsl --terminate <Distribution Name>
示例: wsl --terminate Ubuntu
小编试了,如果被占用的情况,会执行失败的。

解除WSL占用:

  • 保证没有运行指定发行版
  • 保证没有通过Exploer等进程打开Linux盘符
    在这里插入图片描述

ps: 运行bash命令,会自动启动服务。

注销或卸载 Linux 发行版

wsl --unregister <DistributionName>

# 略

装载磁盘或设备

wsl --mount <DiskPath>
缩写形式: wsl --mount E:
以管理员启动,但是依然报错了,目前未解决该问题(E:为U盘盘符)。

C:\Windows\System32>wsl --mount -t drvfs E:
拒绝访问。
Error code: Wsl/Service/AttachDisk/E_ACCESSDENIED

卸载磁盘

wsl --unmount <DiskPath>

📖 参考资料

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐