设置 WSL 开发环境的最佳做法分步指南。 了解如何运行命令以安装默认的 Bash Shell,它使用 Ubuntu,或者可以设置为安装其他 Linux 发行版、使用基本 WSL 命令、设置 Visual Studio Code 或 Visual Studio、Git、Windows 凭据管理器、MongoDB、Postgres 或 MySQL 等数据库、设置 GPU 加速、运行 GUI 应用等。
适用于 Linux 的 Windows 子系统随 Windows 操作系统一起提供,但必须先启用它并安装 Linux 发行版,然后才能开始使用它。
若要使用简化的 --install 命令,必须运行最新版本的 Windows(内部版本 20262+)。 要检查您的 Windows 版本和内部版本号,请按 Windows 徽标键 + R,输入“winver”,然后选择“确定”。 可以使用“设置”菜单或 Windows 更新助手进行更新。
如果希望安装除 Ubuntu 以外的 Linux 发行版,或者希望手动完成这些步骤,请参阅 WSL 安装页了解更多详细信息。
打开 PowerShell(或 Windows 命令提示符)并输入:
wsl --install
--install 命令执行以下操作:
- 启用可选的 WSL 和虚拟机平台组件
- 下载并安装最新 Linux 内核
- 将 WSL 2 设置为默认值
- 下载并安装 Ubuntu Linux 发行版(可能需要重新启动)
在此安装过程中,你将需要重启计算机。
运行 wsl --install 的 PowerShell 命令行
如果遇到任何问题,请查看排查安装问题一文。
使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”。
此用户名和密码特定于安装的每个单独的 Linux 分发版,与 Windows 用户名无关。
请注意,输入密码时,屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容,这是完全正常的。
创建用户名和密码后,该帐户将是分发版的默认用户,并将在启动时自动登录。
此帐户将被视为 Linux 管理员,能够运行 sudo
(Super User Do) 管理命令。
在 WSL 上运行的每个 Linux 发行版都有其自己的 Linux 用户帐户和密码。 每当添加分发版、重新安装或重置时,都必须配置一个 Linux 用户帐户。
在 Ubuntu 命令行中输入 UNIX 用户名
若要更改或重置密码,请打开 Linux 发行版并输入命令:passwd
。 系统会要求你输入当前密码,然后要求输入新密码,之后再确认新密码。
如果忘记了 Linux 分发版的密码:
请打开 PowerShell,并使用以下命令进入默认 WSL 分发版的根目录:wsl -u root
如果需要在非默认的分发版中更新忘记的密码,请使用命令:wsl -d Debian -u root
,并将 Debian
替换为目标分发版的名称。
在 PowerShell 内的根级别打开 WSL 发行版后,可使用此命令更新密码:passwd <username>
,其中 <username>
是发行版中帐户的用户名,而你忘记了它的密码。
系统将提示你输入新的 UNIX 密码,然后确认该密码。 在您被告知密码已正确更新后,请在 PowerShell 内使用以下命令关闭 WSL:exit
。
建议使用发行版的首选包管理器定期更新和升级包。 对于 Ubuntu 或 Debian,请使用以下命令:
sudo apt update && sudo apt upgrade
Windows 不会自动更新或升级 Linux 分发版。 大多数 Linux 用户往往倾向于自行控制此任务。
若要添加其他 Linux 发行版,可以通过 Microsoft Store、通过 --import 命令或通过旁加载你自己的自定义发行版进行安装。 你可能还希望设置自定义 WSL 映像,以便在企业公司中分发。
Windows Terminal 可以运行任何具有命令行界面的应用程序。 它的主要功能包括多个选项卡、窗格、Unicode 和 UTF-8 字符支持、GPU 加速文本呈现引擎,你还可用它来创建你自己的主题并自定义文本、颜色、背景和快捷方式。
每当安装新的 WSL Linux 发行版时,都会在 Windows Terminal 中为其创建一个新实例,该实例可根据你的偏好进行自定义。
我们建议将 WSL 与 Windows Terminal 配合使用,特别是在计划同时使用多个命令行界面时。 请参阅 Windows Terminal 文档,了解如何对其进行设置以及如何自定义首选项,包括:
Windows Terminal 屏幕截图
若要在 Windows 文件资源管理器中打开 WSL 项目,请输入:explorer.exe .
请确保在命令的末尾添加句点以打开当前目录。
将项目文件与计划使用的工具存储在相同的操作系统上。
若想获得最快的性能速度,请将文件存储在 WSL 文件系统中,前提是使用 Linux 工具在 Linux 命令行(Ubuntu、OpenSUSE 等)中处理这些文件。 如果是使用 Windows 工具在 Windows 命令行(PowerShell、命令提示符)中工作,请将文件存储在 Windows 文件系统中。 可以跨操作系统访问文件,但这可能会显著降低性能。
例如,在存储 WSL 项目文件时:
- 使用 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 使你能够将 WSL 用作功能完备的开发环境。 Visual Studio 提供了对 C++ 跨平台开发的原生 WSL 支持。
按照此分步指南开始在 WSL 中使用 Visual Studio Code,其中包括安装远程开发扩展包。 使用此扩展,能够运行 WSL、SSH 或开发容器,以使用整套 Visual Studio Code 功能进行编辑和调试。 在不同的独立开发环境之间快速切换并进行更新,而无需担心会影响本地计算机。
安装并设置 VS Code 后,可以通过输入以下内容使用 VS Code 远程服务器打开 WSL 项目:code .
请确保在命令末尾加上句号以打开当前目录。
VS Code 显示的 WSL 扩展
按照此分步指南开始将 Visual Studio 与 WSL 一起用于 C++ 跨平台开发。 Visual Studio 2022 使你能够从 Visual Studio 的同一实例在 Windows、WSL 发行版和 SSH 连接上生成和调试 CMake 项目。
在 Visual Studio 2022 中选择目标系统
按照此分步指南开始在 WSL 上使用 Git,并将项目连接到 Git 版本控制系统,同时使用凭据管理器进行身份验证,使用 Git Ignore 文件,了解 Git 行尾,以及使用内置到 VS Code 的 Git 命令。
在命令行中显示 git 版本
开始按照此分步指南来使用 WSL 2 上的 Docker 远程容器,并通过 Windows 的 Docker Desktop 将您的项目连接到远程开发容器。
Docker Desktop 屏幕截图
按照这份分步指南开始使用 WSL 上的数据库,并将您的项目连接到 WSL 环境中的数据库。 开始使用 MySQL、PostgreSQL、MongoDB、Redis、Microsoft SQL Server 或 SQLite。
在 Ubuntu 中通过 WSL 运行 MongoDB
按照这份分步指南,在 WSL 中设置 GPU 加速的机器学习训练,并利用计算机的 GPU(图形处理单元)来加速繁重的性能工作负载。
使用 WSL 进行 GPU 加速运行
通过 WSL 安装的 Linux 发行版最好使用 PowerShell 或 Windows 命令提示符 (CMD) 进行管理。 有关使用 WSL 时需要熟悉的基本命令的列表,请参阅 WSL 命令参考指南。
此外,许多命令在 Windows 和 Linux 之间都具有互操作性。 下面是几个示例:
从 Windows 命令行运行 Linux 工具:打开 PowerShell,通过输入以下内容使用 Linux ls -la
命令显示 C:\temp>
的目录内容:wsl ls -la
混合 Linux 和 Windows 命令:在此示例中,使用 Linux 命令 ls -la
列出目录中的文件,然后使用 PowerShell 命令 findstr
筛选包含“git”的单词的结果:wsl ls -la | findstr "git"
。 这还可以通过混合使用 Windows dir
命令和 Linux grep
命令来实现:dir | wsl grep git
。
直接从 WSL 命令行运行 Windows 工具:<tool-name>.exe
。例如,若要打开 .bashrc 文件(启动 Linux 命令行时运行的 shell 脚本),请输入:notepad.exe .bashrc
使用 Linux Grep 工具运行 Windows ipconfig.exe 工具:从 Bash 输入命令 ipconfig.exe | grep IPv4 | cut -d: -f2
或从 PowerShell 输入 ipconfig.exe | wsl grep IPv4 | wsl cut -d: -f2
。此示例演示了 Windows 文件系统上的 ipconfig 工具,该工具先是用于显示当前 TCP/IP 网络配置值,然后通过 Linux 工具 grep 被筛选为仅显示 IPv4 结果。
按照此分步指南开始在 WSL 2 中装载 Linux 磁盘。
wsl 装载命令屏幕截图
按照本教程了解如何在 WSL 上设置和运行 Linux GUI 应用。