操作入门)
前言大家熟悉的docker、Python但对于Windows上有一套开配合开发的相对底层的环境设置包括powershell、winget、WSL、还有开发驱动器什么的我准备系统学一下不然地基不牢也盖不起冲天高楼~本节介绍Windows 子系统WSLWindows Subsystem for Linux的安装及使用它通过将 Linux 系统调用转换为 Windows 系统调用实现了Windows对 Linux 应用的支持。往期参考【基础】Windows开发设置入门1各种终端比较-CSDN博客【基础】Windows开发设置入门2Windows 终端Windows Terminal-CSDN博客【基础】Windows开发设置入门3在 Windows 11 上设置开发驱动器提升性能速度-CSDN博客【基础】Windows开发设置入门4Windows、Python、Linux和Node.js包管理器的作用和区别AI整理-CSDN博客 【基础】Windows开发设置入门5WinGet开发者完全指南AI整理-CSDN博客【基础】Windows开发设置入门6Scoop开发者完全指南AI整理-CSDN博客【基础】Windows开发设置入门7PowerShell的相关概念和使用-CSDN博客本文对应官网文档适用于 Linux 的 Windows 子系统文档 | Microsoft Learn正文开始。。。。。。一Windows 子系统 (WSL) 介绍Windows 子系统WSLWindows Subsystem for Linux是微软推出的一项技术旨在让 Windows 用户能够在不依赖虚拟机或双启动的情况下直接运行原生的 Linux 环境。WSL 的核心目标是提高开发者的生产力同时为用户提供一个无缝集成的 Linux 开发环境。基本概念WSL 是一个兼容层允许在 Windows 上运行 Linux 的二进制可执行文件ELF 格式。它通过将 Linux 系统调用转换为 Windows 系统调用实现了对 Linux 应用的支持。WSL 提供了与 Linux 兼容的内核接口管理文件系统、网络和进程执行并将 Linux 工具和实用程序无缝集成到 Windows 工作流中。WSL 的早期版本最初仅支持 Ubuntu但随着技术的发展现在支持多个 Linux 发行版包括 Debian、Kali Linux、Fedora 等。逻辑关系如同------------------ ------------------ ------------------ | | | | | | | Windows | ---- | WSL | ----| Linux 发行版 | | | | | | (如Ubuntu) | | | | | | | ------------------ ------------------ ------------------特点与优势无需虚拟机或双启动WSL 允许用户直接在 Windows 上运行 Linux 应用减少了资源消耗和管理复杂性。高性能与兼容性WSL 2 的引入大幅提升了性能并支持更广泛的 Linux 应用程序。文件系统集成WSL 支持将 Windows 文件系统挂载到 Linux 文件系统中实现跨平台文件共享。开发效率开发者可以在 Windows 和 Linux 环境之间无缝切换使用熟悉的工具进行开发。历史背景WSL 的发展经历了两个主要版本WSL 1于 2016 年推出通过在 Windows 内核上实现 Linux 系统调用的兼容层来运行 Linux 应用。WSL 1 的性能有限但能够运行大多数常见的 Linux 工具和应用程序。WSL 2于 2019 年推出引入了基于轻量级虚拟机VM的架构实现了对完整 Linux 内核的支持。这带来了显著的性能提升和更好的兼容性使得 WSL 2 成为目前的默认版本版本特性对比表特性维度WSL1WSL2内核架构转换层虚拟机文件系统性能Windows文件快Linux文件快网络能力共享主机IP独立IP地址系统调用支持部分支持完整支持GUI支持需第三方X Server可直通Wayland服务持久化不支持systemd支持systemd资源隔离无有二安装通过适用于 Linux 的 Windows 子系统 (WSL)开发人员可以安装 Linux 发行版例如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具不用进行任何修改也无需承担传统虚拟机或双启动设置的费用。系统要求Windows 10 2004 或 Windows 11至少4GB RAM建议8GBBIOS启用虚拟化支持Intel VT-x/AMD-V2GB可用磁盘空间建议预留20GB硬件要求必须启用虚拟化技术如 Hyper-V。安装及相关命令启用虚拟化技术如 Hyper-V安装WSL必须必须启用虚拟化技术如 Hyper-V。检查虚拟化环境检查系统是否支持并开启了虚拟化可以参考之前发的另一篇文章windows开启虚拟化设置BIOS设置虚拟化_bios里没有虚拟化开启的选项-CSDN博客windows开启Hyper-V服务Hyper-V是windows自带的服务windows11设置麻烦些具体请参考windows开启Hyper-V-CSDN博客安装默认版本 WSL打开 PowerShell管理员并运行以下命令wsl --install--install 命令执行以下操作启用可选的 WSL 和虚拟机平台组件下载并安装最新 Linux 内核将 WSL 2 设置为默认值下载并安装 Ubuntu Linux 发行版可能需要重新启动安装过程界面安装完成界面备注手动启用 WSL 功能一般不需要列出来仅供参考了解打开 PowerShell 或命令提示符以管理员身份运行。运行以下命令启用 WSL 功能dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart启用虚拟机平台功能dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart如果想安装其他版本需要用到下面命令。看可用的 Linux 发行版可以通过wsl --list --online查看可用的 Linux 发行版列表 。# 查看可用发行版 wsl --list --online安装其他 Linux 发行版使用以下命令安装其他发行版例如 Debianwsl --install -d DistributionName此命令可用参数包括--distribution指定要安装的 Linux 发行版。 可以通过运行wsl --list --online来查找可用的发行版。--no-launch安装 Linux 发行版但不自动启动它。--web-download通过联机渠道安装而不是使用 Microsoft Store 安装。设置默认 WSL 版本如果需要设置 WSL 2 为默认版本运行以下命令wsl --set-default-version 2默认情况下WSL 安装后会自动设置为 WSL 2 。设置默认 Linux 发行版wsl --set-default Distribution Name若要设置 WSL 命令将用于运行的默认 Linux 发行版请将Distribution Name替换为你首选的 Linux 发行版的名称。示例验证安装及运行状态安装完成后可以通过以下命令检查 WSL 版本及运行# 查看已安装发行版 wsl --list --verbose # 简写格式 wsl -l -v确认已安装的 Linux 发行版及其版本 。示例界面总结WSL 的安装需要满足特定的 Windows 版本和硬件要求并通过 PowerShell 或命令提示符运行相关命令完成安装。安装过程中会自动下载 Linux 内核并配置虚拟机功能。三WSL使用启动WSL 安装后使用“开始”菜单打开该发行版如果是默认安装则为 Ubuntu也可以在PowerShell或CMD中通过命令启动。wsl -d Ubuntu另外如果你有Windows终端的话也会增加一个安装的发行版的配置也可以从这里启动创建用户启动WSL的发行版后系统将要求你为 Linux 发行版创建“用户名”和“密码”。此用户名和密码特定于安装的每个单独的 Linux 分发版与 Windows 用户名无关。请注意输入密码时屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容这是完全正常的。创建用户名和密码后该帐户将是分发版的默认用户并将在启动时自动登录。此帐户将被视为 Linux 管理员能够运行sudo(Super User Do) 管理命令。在 WSL 上运行的每个 Linux 发行版都有其自己的 Linux 用户帐户和密码。 每当添加分发版、重新安装或重置时都必须配置一个 Linux 用户帐户。启动及创建用户界面注意root用户随发行版安装就创建了新建的用户用于发行版启动的默认用户若要更改或重置密码请打开 Linux 发行版并输入命令passwd。 系统会要求你输入当前密码然后要求输入新密码之后再确认新密码。如果忘记了 Linux 分发版的密码请打开 PowerShell并使用以下命令进入默认 WSL 分发版的根目录wsl -u root如果需要在非默认的分发版中更新忘记的密码请使用命令wsl -d Debian -u root并将Debian替换为目标分发版的名称。在 PowerShell 内的根级别打开 WSL 发行版后可使用此命令更新密码passwd username其中username是发行版中帐户的用户名而你忘记了它的密码。系统将提示你输入新的 UNIX 密码然后确认该密码。 在您被告知密码已正确更新后请在 PowerShell 内使用以下命令关闭 WSLexit。 如果你忘记的是普通用户密码如果你忘记的是自己创建的那个普通账户的密码可以通过以下方法重置此方法不会影响 root 账户打开 PowerShell不需要管理员权限也可以右键选择“以管理员身份运行”。使用 root 身份登录 WSL在 PowerShell 中输入wsl -u root这会直接进入 root 的 Shell且不需要密码。重置你的用户密码在 WSL 的 root Shell 中输入passwd 你的用户名例如passwd yym然后按照提示输入新密码即可。输入exit退出之后再打开 WSL 就可以用新密码登录了。如果需要重置的是 root 自己的密码可以尝试用wsl -u root直接登录后再执行passwd root来设置。四基本命令启动与退出启动默认发行版wsl通过wsl --set-default Distribution Name可以修改默认 Linux 发行版启动特定发行版wsl --distribution Distribution Name通过特定用户运行特定 Linux 发行版Distribution Name为 Linux 发行版的名称例如 Debian简单运行一个特定发行版的示例wsl -d Ubuntu用特定用户启动特定发行版wsl --distribution Distribution Name --user User Name通过特定用户运行特定 Linux 发行版Distribution Name为 Linux 发行版的名称例如 DebianUser Name为所运行linux系统的用户名如果 WSL 发行版中不存在该用户你将会收到一个错误。启动 Linux 环境并进入用户home目录wsl ~~是Linux中的特殊符号代表当前用户的家目录路径通常为/home/你的用户名/。退出 Linux 环境exit更新WSL将 WSL 版本更新到最新版本wsl --update检查 WSL 状态wsl --status查看有关 WSL 配置的常规信息例如默认发行版类型、默认发行版和内核版本。检查 WSL 版本wsl --version检查有关 WSL 及其组件的版本信息。Help 命令wsl --help查看 WSL 中可用的选项和命令列表。以特定用户的身份运行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 轻量级实用工具虚拟机。执行界面关闭发行版后已经进入发行版执行的窗口会收到相应退出的信息Terminatewsl --terminate Distribution Name若要终止指定的发行版或阻止其运行请将Distribution Name替换为目标发行版的名称。注销或卸载 Linux 发行版注销并卸载 WSL 发行版wsl --unregister DistributionName如果将DistributionName替换为目标 Linux 发行版的名称则将从 WSL 取消注册该发行版以便可以重新安装或清理它。警告⚠️取消注册后与该分发版关联的所有数据、设置和软件将永久丢失。 重新安装会安装分发版的干净副本。 例如wsl --unregister Ubuntu将从可用于 WSL 的发行版中删除 Ubuntu。 运行wsl --list将会显示它不再列出。导出分发版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 文件系统类型格式。命令示例命令作用wsl --export Ubuntu ubuntu.tar导出系统快照wsl --import NewUbuntu .\ ubuntu.tar导入已有发行版wsl --terminate Debian强制停止指定发行版五跨文件系统跨系统访问从 Linux 访问 Windows 文件cd /mnt/c/Users/YourName/Documents # 进入 C 盘文档目录从 Windows 访问 Linux 文件在资源管理器地址栏输入\\wsl$\Ubuntu\home\user路径根据发行版名称调整但是想获得最快的性能速度建议不要跨操作系统使用文件也就是在 Linux 命令行Ubuntu、OpenSUSE 等中将文件存储在 WSL 文件系统中。 使用 Windows 命令行PowerShell、命令提示符请将文件存储在 Windows 文件系统中。例如在存储 WSL 项目文件时使用 Linux 文件系统根目录/home/user name/Project而不使用 Windows 文件系统根目录/mnt/c/Users/user name/Project$或C:\Users\user name\Project在 Windows 文件资源管理器中查看当前目录在发行版中可使用以下命令打开当前路径在Windows系统对应的目录explorer.exe . #或者 powershell.exe /c start .运行示例上面的命令在Windows 命令行PowerShell、CMD 也可以用打开的是所在的工作目录。在winR运行窗口使用\\wsl$回在 Windows 文件资源管理器中看到所有可用的 Linux 发行版及其根文件系统类似这样注意 Windows 和 Linux 文件系统处理区分大小写的方式不同 - Windows 不区分大小写而 Linux 区分大小写。跨系统使用工具和命令借助 WSLWindows 和 Linux 工具和命令可互换使用。从 Linux 命令行即 Ubuntu运行 Windows 工具如 notepad.exe等。从 Windows 命令行即 PowerShell运行 Linux 工具如 grep等。在 Windows 与 Windows 之间共享环境变量。 版本 17063从 Windows 命令行运行 Linux 工具使用wsl command或wsl.exe command从 Windows 命令提示符 (CMD) 或 PowerShell 运行 Linux 二进制文件。例如 PowerShell命令示例C:\temp wsl ls -la - contents of C:\temp -以这种方式调用二进制文件使用当前 CMD 或 PowerShell 提示符中提到的同一工作目录。以 WSL 默认用户的身份运行。拥有与调用方进程和终端相同的 Windows 管理权限。wsl或wsl.exe后面的 Linux 命令的处理方式与 WSL 中运行的任何命令的处理方式类似。 可以执行 sudo、管道处理和文件重定向等操作。使用 sudo 更新默认 Linux 分发版的PowerShell命令示例C:\temp wsl sudo apt-get update运行此命令后将会列出默认的 Linux 分发版用户名并将要求你输入密码。 正确输入密码后分发版将下载更新。PowerShell 混合 Linux 和 Windows 命令的几个示例若要使用 Linux 命令ls -la列出文件并使用 PowerShell 命令findstr来筛选包含“git”的单词的结果请组合这些命令wsl ls -la | findstr git若要使用 PowerShell 命令dir列出文件并使用 Linux 命令grep来筛选包含“git”的单词的结果请组合这些命令C:\temp dir | wsl grep git若要使用 Linux 命令ls -la列出文件并使用 PowerShell 命令 out.txt将该列表输出到名为“out.txt”的文本文件C:\temp wsl ls -la out.txt传入wsl.exe的命令将按原样转发到 WSL 进程。 文件路径必须以 WSL 格式指定。若要使用 Linux 命令ls -la列出/proc/cpuinfoLinux 文件系统路径中的文件请使用 PowerShellC:\temp wsl ls -la /proc/cpuinfo若要使用 Linux 命令ls -la列出C:\Program FilesWindows 文件系统路径中的文件需要使用其中Linux中的路径如下面 PowerShell所示C:\temp wsl ls -la /mnt/c/Program Files从 Linux 运行 Windows 工具WSL 可以使用[tool-name].exe直接从 WSL 命令行运行 Windows 工具。 例如notepad.exe。以这种方式运行的应用程序具有以下属性按 WSL 命令提示保留工作目录大部分情况下是这样 -- 下面所述的情况除外。拥有与 WSL 进程相同的权限。以活动 Windows 用户的身份运行。显示在 Windows 任务管理器中就如同直接从 CMD 提示符执行的一样。在 WSL 中运行的 Windows 可执行文件的处理方式类似于本机 Linux 可执行文件 - 管道处理、重定向甚至后台处理都可按预期方式工作。若要运行 Windows 工具ipconfig.exe使用 Linux 工具grep筛选“IPv4”结果并使用 Linux 工具cut删除列字段在 Linux 分发版例如 Ubuntu输入命令如下ipconfig.exe | grep IPv4 | cut -d: -f2在 Linux 分发版即 Ubuntu创建文本文件touch foo.txt后现在使用 Linux 命令ls -la列出直接文件及其创建详细信息并使用 Windows PowerShell 工具findstr.exe来筛选结果命令如下ls -la | findstr.exe foo.txt执行效果注意Windows 工具必须包含文件扩展名匹配文件大小写并且可执行。 包含批处理脚本的不可执行文件dir等 CMD 本机命令可与cmd.exe /C命令一起运行。例如通过输入以下命令列出 Windows 文件系统 C:\ 目录的内容cmd.exe /C dir或者使用ping命令将回显请求发送到 microsoft.com 网站ping.exe www.microsoft.com参数将按原样传递到 Windows 二进制文件。 例如以下命令将通过notepad.exe打开C:\temp\foo.txtnotepad.exe C:\temp\foo.txt以下命令也会起作用notepad.exe C:\\temp\\foo.txt通过 WSLENV 在 Windows 与 WSL 之间共享环境变量WSL 和 Windows 共享一个特殊环境变量WSLENV为了桥接 Windows 和 WSL 上运行的 Linux 分发版而创建。WSLENV变量的属性它是共享的它同时在 Windows 和 WSL 环境中存在。它是要在 Windows 与 WSL 之间共享的环境变量列表。它可以设置环境变量的格式使其能够在 Windows 和 WSL 中正常运行。它可以帮助 WSL 和 Win32 之间的流。备注在 17063版本以前只有 WSL 可访问的 Windows 环境变量是PATH因此可以从 WSL 下启动 Win32 可执行文件。 从 17063 开始WSLENV开始受支持。 WSLENV 区分大小写。WSLENV 标志WSLENV中有四个标志可以影响该环境变量的转换方式。WSLENV标志/p- 在 WSL/Linux 样式路径与 Win32 路径之间转换路径。/l- 指示环境变量是路径列表。/u- 指示仅当从 Win32 运行 WSL 时才应包含此环境变量。/w- 指示仅当从 WSL 运行 Win32 时才应包含此环境变量。可按需组合标志。阅读有关 WSLENV 的详细信息。禁用互操作性用户可以使用 root 身份运行以下命令禁用针对单个 WSL 会话运行 Windows 工具的功能echo 0 /proc/sys/fs/binfmt_misc/WSLInterop若要重新启用 Windows 二进制文件请退出所有 WSL 会话并重新运行 bash.exe或者以 root 身份运行以下命令echo 1 /proc/sys/fs/binfmt_misc/WSLInterop每次切换 WSL 会话后禁用互操作的结果不会持久保留 -- 启动新会话后会再次启用互操作。六网络配置从Windows 主机查发行版中的IP从 Windows 主机的角度来看你想要查询通过 WSL2 运行的 Linux 发行版的 IP 地址使 Windows 主机上的程序可连接到分发实例中运行的服务器程序。Windows 主机可使用命令wsl -d DistributionName hostname -I如果查询默认分发则可省略指定该分发的此部分命令-d DistributionName。 请务必使用大写-I标志。 执行的过程是这样在后台主机命令wsl.exe启动目标实例并执行 Linux 命令hostname -I。 然后此命令将 WSL 实例的 IP 地址打印到STDOUT。STDOUT文本内容随后被中继回 wsl.exe。 最后wsl.exe 显示该命令行的输出。 命令示例如下从图中看见WSL 2 有一个带有其自己独一无二的 IP 地址的虚拟化以太网适配器和Windows主机的网络地址不同。在linux发行版中查询所在Windows主机ip时查询的是WSL虚拟化以太网适配器的ip地址命令及示例见后面内容。从Linux发行版查Windows 主机的IP在WSL2实例中的 Linux 发行版中查 Windows 主机的 IP 地址使用命令ip route show | grep -i default | awk { print $3}运行示例默认情况下WSL 使用基于 NAT网络地址转换的网络体系结构其访问规则是这样从 Windows (localhost) 访问 Linux 网络应用如果要在 Linux 分发版中构建网络应用例如在 NodeJS 或 SQL server 上运行的应用可以使用localhost从 Windows 应用如 Microsoft Edge 或 Chrome Internet 浏览器访问它就像往常一样。从 Linux主机 IP访问 Windows 网络应用如果要从 Linux 分发版即 Ubuntu访问 Windows 上运行的网络应用例如在 NodeJS 或 SQL 服务器上运行的应用则需要使用主机的 IP 地址。 虽然这不是一种常见方案但你可以执行以下步骤来使其可行。通过在 Linux 分发版中运行以下命令来获取主机的 IP 地址ip route show | grep -i default | awk { print $3}使用复制的 IP 地址连接到任何 Windows 服务器。下图显示了一个示例该示例说明如何通过 curl 连接到在 Windows 中运行的 Node.js 服务器。通过远程 IP 地址进行连接当使用远程 IP 地址连接到应用程序时它们将被视为来自局域网 (LAN) 的连接。 这意味着你需要确保你的应用程序可以接受 LAN 连接。例如你可能需要将应用程序绑定到0.0.0.0而非127.0.0.1。 以使用 Flask 的 Python 应用为例可以通过以下命令执行此操作app.run(host0.0.0.0)。 进行这些更改时请注意安全性因为这将允许来自你的 LAN 的连接。从局域网 (LAN) 访问 WSL 2 分发版当使用 WSL 1 分发版时如果计算机设置为可供 LAN 访问那么在 WSL 中运行的应用程序也可供在 LAN 中访问。这不是 WSL 2 中的默认情况。 WSL 2 有一个带有其自己独一无二的 IP 地址的虚拟化以太网适配器。 目前若要启用此工作流你需要执行与常规虚拟机相同的步骤。 我们正在寻找改善此体验的方法。下面是使用 Netsh 接口 portproxy Windows 命令添加端口代理的示例该代理侦听主机端口并将该端口代理连接到 WSL 2 VM 的 IP 地址。netsh interface portproxy add v4tov4 listenportyourPortToForward listenaddress0.0.0.0 connectportyourPortToConnectToInWSL connectaddress(wsl hostname -I)在此示例中需要更新yourPortToForward到端口号例如listenport4000。listenaddress0.0.0.0表示将接受来自任何 IP 地址的传入请求。 侦听地址指定要侦听的 IPv4 地址可以更改为以下值IP 地址、计算机 NetBIOS 名称或计算机 DNS 名称。 如果未指定地址则默认值为本地计算机。 需要将yourPortToConnectToInWSL值更新为希望 WSL 连接的端口号例如connectport4000。 最后connectaddress值必须是通过 WSL 2 安装的 Linux 分发版的 IP 地址WSL 2 VM 地址可通过输入命令wsl.exe hostname -I找到。因此此命令可能如下所示netsh interface portproxy add v4tov4 listenport4000 listenaddress0.0.0.0 connectport4000 connectaddress192.168.101.100要获取 IP 地址请使用wsl hostname -I标识通过 WSL 2 安装的 Linux 分发版 IP 地址WSL 2 VM 地址cat /etc/resolv.conf表示从 WSL 2 看到的 WINDOWS 计算机的 IP 地址 (WSL 2 VM)使用listenaddress0.0.0.0将侦听所有 IPv4 端口。七高级设置-配置文件wsl.conf 和 .wslconfig 文件用于在 WSL 中配置高级设置这些设置将在 WSL VM 启动时应用。 wsl.conf 用于根据 WSL 发行版应用设置.wslconfig 用于将全局设置应用于 WSL。方面.wslconfigwsl.conf范围适用于所有 WSL 的常规设置仅限 WSL 分发的设置配置WSL 中的功能启用、为 WSL 2 提供支持的虚拟机设置RAM、要启动的内核、CPU 数等WSL 中的分发设置例如启动选项、DrvFs 自动装载、网络、与 Windows 系统的互作性、系统使用情况和默认用户位置说明%UserProfile%\.wslconfig在 WSL 发行版之外即在Windows系统中/etc/wsl.conf而在 WSL 发行版中Windows中的位置示例C:\Users\UserName\.wslconfig\\wsl.localhost\Ubuntu\etc\wsl.conf以Ubuntu为例目前所有.wslconfig设置仅适用于 WSL 2 分发版。修改示例。1. 调整内存和CPU分配修改 .wslconfig 文件位于 Windows 用户目录下[wsl2] memory4GB # 限制内存使用 processors2 # 限制 CPU 核心数2. 启用自动挂载修改 /etc/wsl.conf 文件启用自动挂载选项[automount] enabled true root /mnt/ options umask022八使用 systemdWSL现在支持 systemd它是一种 init 系统和服务管理器包括按需启动守护程序、装载和自动装载点维护、快照支持以及使用 Linux 控制组进行进程跟踪等功能。许多流行的 Linux 发行版例如 Ubuntu、Debian 等都在使用。重启 Linux 分发版后用下面命令检验systemd 运行状态systemctl status用下面命令显示与 Linux 分发版关联的任何服务的状态systemctl list-unit-files --typeservice