跳到主要内容
Windows 系统安装 Linux 子系统(WSL)完整指南 | 极客日志
Shell / Bash
Windows 系统安装 Linux 子系统(WSL)完整指南 介绍如何在 Windows 系统上通过 WSL(Windows Subsystem for Linux)安装和配置 Linux 发行版。涵盖环境检查、功能启用、命令行及商店安装方式、用户设置、开发工具安装、SSH 配置及版本管理等内容。提供常见错误排查与基本 Linux 命令操作指南。
星云 发布于 2026/3/16 更新于 2026/4/26 16 浏览Windows 系统安装 Linux 子系统(WSL)完整指南
适用于 Linux 的 Windows 子系统(WSL)是 Windows 操作系统的一项功能,可用于运行 Linux 文件系统,以及直接在 Windows 上的 Linux 命令行工具和 GUI 应用。
开发人员可以在 Windows 计算机上同时访问 Windows 和 Linux 的强大功能。借助 WSL,可以安装 Linux 分发版(如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并在 Windows 上直接使用 Linux 应用程序、实用工具和 Bash 命令行工具,无需传统虚拟机或双系统的开销。
环境要求
必须运行 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)或 Windows 11 才能使用以下命令。如果使用的是早期版本,请参阅官方文档手动安装。
适用于 Linux 的 Windows 子系统随 Windows 操作系统一起提供,但必须先启用它并安装 Linux 发行版。
若要使用简化的 --install 命令,必须运行最新版本的 Windows(内部版本 20262+)。要检查您的 Windows 版本和内部版本号,请按 Windows 徽标键 + R,输入'winver',然后选择'确定'。
启用 WSL 功能
安装 WSL 2 之前,必须启用 虚拟机平台 可选功能。计算机需要虚拟化功能才能使用此功能。
启用 Windows 虚拟机平台功能
在 Windows 设置中添加可选功能,勾选 适用于 Linux 的 Windows 子系统(即 WSL) 和 虚拟机平台,开启该功能需重启电脑。启用'虚拟机平台'和'Hyper-V'功能(推荐用于 WSL 2)。
启用 WSL 功能: 按 Win + R,输入 optionalfeatures.exe 并回车。
勾选 '适用于 Linux 的 Windows 子系统'、'虚拟机平台'和'Hyper-V'功能 ,点击'确定'后重启电脑。
若没有该功能选项,在 PowerShell 中分次输入以下指令,分别开启 WSL 和虚拟机平台功能:
以管理员身份打开 PowerShell 并运行以下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
dism.exe /online /enable-feature /featurename:Hyper-V /all /norestart
重启计算机后,设置 WSL 2 为默认版本:
wsl --set-default-version 2
重启 计算机 以完成 WSL 安装和更新到 WSL 2。
出现'无法安装 Hyper-V,该固件中的虚拟化支持被禁用'的错误,是因为计算机 BIOS/UEFI 设置中的 CPU 虚拟化技术(如 Intel VT-x 或 AMD-V)未被启用。解决此问题的核心步骤是进入 BIOS/UEFI 设置界面,找到并启用虚拟化技术选项,然后保存设置并重启计算机。
重启计算机并进入 BIOS/UEFI 设置 :在开机过程中,根据电脑品牌按特定键(常见的有 F2、F10、Delete 或 Esc)进入设置界面。
查找虚拟化技术选项 :在'Advanced'、'CPU Configuration'、'Security'或类似选项卡中,找到名为'Intel Virtualization Technology'、'Intel VT-x'、'SVM Mode'(AMD 平台)或'Virtualization Technology'的选项。
启用选项并保存 :将该选项的状态从'Disabled'更改为'Enabled'。按 F10 或其他指定键保存更改并退出。
安装 Linux 发行版
现在,可以使用单个命令安装运行 WSL 所需的所有内容。右键单击并选择'以 管理员 身份运行',在管理员模式下打开 PowerShell ,输入 命令,然后 。
wsl --install
重新启动计算机
wsl --update
wsl --install # 安装 Ubuntu(从 Microsoft Store 或命令行)
wsl --install -d Ubuntu-22.04
此命令将启用运行 WSL 并安装 Linux 的 Ubuntu 分发所需的功能。
方法 1:在微软商店中搜索并挑选所需要的 Linux 版本,下载并安装。 通过 Microsoft Store 安装:打开 Microsoft Store,搜索 linux,选择合适版本的 Ubuntu 或 Debian 进行安装。
方法 2:通过命令行安装 管理员身份运行 PowerShell ,输入 wsl --list --online 以显示可用分发版列表,按提示输入 wsl.exe --install <Distro> 安装,尖括号内填写 NAME 列的内容。
安装后配置
设置 Linux 用户名和密码 使用 WSL 安装 Linux 发行版的过程完成后,使用'开始'菜单打开该发行版(默认情况下为 Ubuntu,双击打开)。系统将要求你为 Linux 发行版创建'用户名'和'密码'。
此 用户名 和 密码 特定于安装的每个单独的 Linux 分发版,与 Windows 用户名无关。
请注意,输入 密码 时,屏幕上不会显示任何内容。这称为盲人键入。你不会看到你正在键入的内容,这是完全正常的。
创建 用户名 和 密码 后,该帐户将是分发版的默认用户,并将在启动时自动登录。
此帐户将被视为 Linux 管理员,能够运行 sudo (Super User Do) 管理命令。
在 WSL 上运行的每个 Linux 发行版都有其自己的 Linux 用户帐户和密码。
验证安装 在 PowerShell 中运行 wsl -l -v ,若输出类似 NAME STATE VERSION 和 * Ubuntu Running 2,表示安装成功。
PS C:\WINDOWS\system32> wsl -l -v
NAME STATE VERSION
* Ubuntu-22.04 Running 2
若要更改或重置密码,请打开 Linux 发行版并输入命令:passwd。系统会要求你输入当前密码,然后要求输入新密码,之后再确认新密码。
在 PowerShell 内的根级别打开 WSL 发行版后,可使用此命令更新密码:passwd <username>。
系统将提示你输入新的 UNIX 密码,然后确认该密码。在您被告知密码已正确更新后,请在 PowerShell 内使用以下命令关闭 WSL:exit。
请打开 PowerShell,并使用以下命令进入默认 WSL 分发版的根目录:wsl -u root
如果需要在非默认的分发版中更新忘记的密码,请使用命令:wsl -d <DistroName> -u root。
更新和升级软件包 建议使用发行版的首选包管理器定期更新和升级包。对于 Ubuntu 或 Debian,请使用以下命令:
sudo apt update && sudo apt upgrade
sudo apt update && sudo apt upgrade -y
Windows 不会自动更新或升级 Linux 分发版。大多数 Linux 用户往往倾向于自行控制此任务。
安装必要的开发工具
sudo apt install -y build-essential gdb gdbserver openssh-server cmake
gcc --version
gdb --version
配置 SSH 服务器(用于远程调试)
sudo service ssh start
sudo systemctl enable ssh
sudo service ssh status
检查 WSL 版本 可以通过输入命令列出已安装的 Linux 分发版并检查每个版本的 WSL:
若要在安装新的 Linux 分发版时将默认版本设置为 WSL 1 或 WSL 2,请使用以下命令:
wsl.exe --set-default-version <1|2>
若要设置与命令一起使用 wsl 的默认 Linux 分发版,请输入:
wsl.exe --set-default <Distro>
替换为 <Distro> 要使用的 Linux 分发版的名称。例如,在 PowerShell 中,输入:wsl -s Debian 将默认分发设置为 Debian。
若要在不更改默认分发的情况下从 PowerShell 中运行特定的 wsl 分发版,请使用以下命令:
wsl.exe --distribution <DistroName>
升级 WSL 版本 默认情况下,使用 wsl --install 命令安装的新 Linux 安装将设置为 WSL 2。
若要查看 Linux 分发版是否设置为 WSL 1 或 WSL 2,请使用以下命令: wsl -l -v 。可以使用以下命令从 WSL 1 升级到 WSL 2 或从 WSL 2 降级到 WSL 1:
wsl.exe --set-version <Distro> <1|2>
替换为 <Distro> 要更新的 Linux 分发版的名称。例如, wsl --set-version Ubuntu 2 或 wsl --set-version Ubuntu-22.04 2 将 Ubuntu 分发设置为使用 WSL 2。
如果在命令可用之前 wsl --install 手动安装了 WSL,则还可能需要启用 WSL 2 使用的虚拟机可选组件,并安装内核包(如果尚未这样做)。
WSL 的好处是方便在 Windows 文件资源管理器下查看和传输 Linux 子系统文件。
高级配置与工具
文件存储
若要在 Windows 文件资源管理器中打开 WSL 项目,请输入:explorer.exe . 请确保在命令的末尾添加句点以打开当前目录。
若想获得最快的性能速度,请将文件存储在 WSL 文件系统中,前提是使用 Linux 工具在 Linux 命令行(Ubuntu、OpenSUSE 等)中处理这些文件。如果是使用 Windows 工具在 Windows 命令行(PowerShell、命令提示符)中工作,请将文件存储在 Windows 文件系统中。
使用 Linux 文件系统根目录:\\wsl$\<DistroName>\home\<UserName>\Project
不是 Windows 文件系统的根目录:C:\Users\<UserName>\Project 或 /mnt/c/Users/<UserName>/Project
设置代码编辑器 建议使用 Visual Studio Code 或 Visual Studio,因为它们直接支持使用 WSL 进行远程开发和调试。
使用 Visual Studio Code 安装并设置 VS Code 后,可以通过输入以下内容使用 VS Code 远程服务器打开 WSL 项目:code .
使用 Visual Studio Visual Studio 2022 使你能够从 Visual Studio 的同一实例在 Windows、WSL 发行版和 SSH 连接上生成和调试 CMake 项目。
使用 Git 设置版本管理 按照官方指南开始在 WSL 上使用 Git,并将项目连接到 Git 版本控制系统,同时使用凭据管理器进行身份验证,使用 Git Ignore 文件,了解 Git 行尾,以及使用内置到 VS Code 的 Git 命令。
使用 Docker 设置远程开发容器 开始按照官方指南来使用 WSL 2 上的 Docker 远程容器,并通过 Windows 的 Docker Desktop 将您的项目连接到远程开发容器。
设置数据库 按照官方指南开始使用 WSL 上的数据库,并将您的项目连接到 WSL 环境中的数据库。开始使用 MySQL、PostgreSQL、MongoDB、Redis、Microsoft SQL Server 或 SQLite。
设置 GPU 加速以提高性能 按照官方指南,在 WSL 中设置 GPU 加速的机器学习训练,并利用计算机的 GPU(图形处理单元)来加速繁重的性能工作负载。
基本 WSL 命令 通过 WSL 安装的 Linux 发行版最好使用 PowerShell 或 Windows 命令提示符 (CMD) 进行管理。
此外,许多命令在 Windows 和 Linux 之间都具有互操作性。下面是几个示例:
调整区分大小写 区分大小写决定了在文件名或目录中,大写字母(FOO.txt)和小写字母(foo.txt)是作为区分(区分大小写)处理的,还是作为等效(不区分大小写)处理的。
区分大小写:FOO.txt ≠ foo.txt ≠ Foo.txt
不区分大小写:FOO.txt = foo.txt = Foo.txt
Windows 和 Linux 的大小写敏感性差异 使用 Linux 和 Windows 文件和目录时,可能需要调整大小写敏感性的处理方式。
Windows 文件系统将文件和目录名称视为不区分大小写。FOO.txt 和 foo.txt 将被视为等效文件。
Linux 文件系统将文件和目录名称视为区分大小写。FOO.txt 和 foo.txt 将被视为不同的文件。
Windows 文件系统支持使用每个目录的属性标志设置区分大小写。虽然标准操作是不区分大小写的,但你可以分配一个属性标志,使目录设置为区分大小写,这样它将识别仅大小写不同的 Linux 文件和文件夹。
Linux 基础命令 本教程将帮助 Linux 新手开始在默认通过 WSL 安装的 Linux 中的 Ubuntu 发行版上安装和更新软件包,并使用 Bash 命令行中的一些基本命令。
安装和更新软件 可以使用运行分发版的首选包管理器直接从命令行安装和更新软件程序。
例如,在 Ubuntu 中,首先通过运行 sudo apt update 来更新可用的软件列表。然后,您可以使用 sudo apt-get install 命令直接获取软件,然后输入您要安装的程序名称:
sudo apt-get install <app_name>
sudo apt update && sudo apt upgrade
处理文件和目录 若要查看当前正在使用的目录的路径,请使用 pwd 以下命令:
若要创建新目录,请使用命令 mkdir,后接您要创建的目录名称。
若要更改目录,请使用 cd 命令后跟要导航到的目录的名称:
若要查看当前正在使用的目录中的内容,请键入 ls 命令行:
默认情况下,该 ls 命令将仅打印所有文件和目录的名称。若要获取其他信息,例如上次修改文件时或文件权限,请使用标志 -l:
可以通过 touch 命令创建一个新文件,后面接要创建的文件名称:
可以使用任何下载的图形文本编辑器或 VS Code 远程 – WSL 扩展编辑文件。
如果希望直接从命令行编辑文件,则需要使用命令行编辑器,例如 vim,emacs 或 nano。
若要使用首选的编辑方法编辑文件,只需运行程序名称,然后运行要编辑的文件的名称:
code hello_world.txt
notepad.exe hello_world.txt
要在命令行中查看文件的内容,请使用 cat 命令,然后指定您要读取的文件:
使用管道和重定向运算符 管道 | 将一个命令的输出作为输入重定向到另一个命令。例如,lhscmd | rhscmd 将输出定向 lhscmd 到 rhscmd。
假设你想要快速对文件的内容进行排序。请看下面的 fruits.txt 示例:
$ cat fruits.txt
Orange Banana Apple Pear Plum Kiwi Strawberry Peach
$ cat fruits.txt | sort
Apple Banana Kiwi Orange Peach Pear Plum Strawberry
另一个用例是搜索。可以使用 grep 一个有用的命令来搜索特定搜索字符串的输入。
cat fruits.txt | grep P
Pear Plum Peach
还可以使用重定向运算符,例如 > 将输出传递给文件或流。例如,如果要使用 fruit.txt 的已排序内容创建新的 .txt 文件:
$ cat fruits.txt | sort > sorted_fruit.txt
$ cat sorted_fruit.txt
Apple Banana Kiwi Orange Peach Pear Plum Strawberry
常见问题
1. 安装失败 确保系统为 Windows 10 2004 或更高版本(运行 winver 查看),并启用 BIOS 中的虚拟化。
2. 报错 0x800701bc 运行 wsl --update 更新 WSL 内核。
PS C:\WINDOWS\system32> wsl --update
正在检查更新。已安装最新版本的适用于 Linux 的 Windows 子系统。
PS C:\WINDOWS\system32> wsl --list --verbose
适用于 Linux 的 Windows 子系统没有已安装的分发。可通过安装包含以下说明的分发来解决此问题:
使用'wsl.exe --list --online' '列出可用的分发
和 'wsl.exe --install <Distro>' 进行安装。
3. Microsoft Store 无法访问
4. 错误代码:wsl/installdistro/wininet_e_name_not_resolved 重置 WSL 网络,在 PowerShell 中执行以下命令:
wsl --shutdown
netsh winsock reset
netsh int ip reset
Restart-Service LxssManager # 重启 WSL 核心服务
相关免费在线工具 Base64 字符串编码/解码 将字符串编码和解码为其 Base64 格式表示形式即可。 在线工具,Base64 字符串编码/解码在线工具,online
Base64 文件转换器 将字符串、文件或图像转换为其 Base64 表示形式。 在线工具,Base64 文件转换器在线工具,online
Markdown转HTML 将 Markdown(GFM)转为 HTML 片段,浏览器内 marked 解析;与 HTML转Markdown 互为补充。 在线工具,Markdown转HTML在线工具,online
HTML转Markdown 将 HTML 片段转为 GitHub Flavored Markdown,支持标题、列表、链接、代码块与表格等;浏览器内处理,可链接预填。 在线工具,HTML转Markdown在线工具,online
JSON 压缩 通过删除不必要的空白来缩小和压缩JSON。 在线工具,JSON 压缩在线工具,online
JSON美化和格式化 将JSON字符串修饰为友好的可读格式。 在线工具,JSON美化和格式化在线工具,online