设置 WSL 开发环境

设置 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 发行版(可能需要重新启动)

在此安装过程中,你将需要重启计算机。

PowerShell command line running wsl --install

如果遇到任何问题,请查看排查安装问题一文。

设置 Linux 用户名和密码

使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”

  • 用户名密码特定于安装的每个单独的 Linux 分发版,与 Windows 用户名无关。

  • 请注意,输入密码时,屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容,这是完全正常的。

  • 创建用户名密码后,该帐户将是分发版的默认用户,并将在启动时自动登录。

  • 此帐户将被视为 Linux 管理员,能够运行 sudo (Super User Do) 管理命令。

  • 在 WSL 上运行的每个 Linux 发行版都有其自己的 Linux 用户帐户和密码。 每当添加分发版、重新安装或重置时,都必须配置一个 Linux 用户帐户。

注意

随 WSL 一起安装的 Linux 发行版是按用户安装,不可与其他 Windows 用户帐户共享。 遇到用户名错误? StackExchange:在 Linux 上的用户名中,应使用或不使用哪些字符?

Ubuntu command line enter UNIX username

若要更改或重置密码,请打开 Linux 发行版并输入命令:passwd。 系统会要求你输入当前密码,然后要求输入新密码,之后再确认新密码。

如果忘记了 Linux 分发版的密码:

  1. 请打开 PowerShell,并使用以下命令进入默认 WSL 分发版的根目录:wsl -u root

    如果需要在非默认分发版中更新忘记的密码,请使用命令:wsl -d Debian -u root,并将 Debian 替换为目标分发版的名称。

  2. 在 PowerShell 内的根级别打开 WSL 发行版后,可使用此命令更新密码:passwd <username>,其中 <username> 是发行版中帐户的用户名,而你忘记了它的密码。

  3. 系统将提示你输入新的 UNIX 密码,然后确认该密码。 在被告知密码已成功更新后,请使用以下命令在 PowerShell 内关闭 WSL:exit

更新和升级包

建议使用发行版的首选包管理器定期更新和升级包。 对于 Ubuntu 或 Debian,请使用以下命令:

sudo apt update && sudo apt upgrade

Windows 不会自动更新或升级 Linux 分发版。 大多数 Linux 用户往往倾向于自行控制此任务。

添加其他发行版

若要添加其他 Linux 发行版,可以通过 Microsoft Store、通过 --import 命令或通过旁加载你自己的自定义发行版进行安装。 你可能还想要设置自定义 WSL 映像,以便在企业中分发

设置 Windows Terminal

Windows Terminal 可以使用命令行接口运行任何应用程序。 它的主要功能包括多个选项卡、窗格、Unicode 和 UTF-8 字符支持、GPU 加速文本呈现引擎,你还可用它来创建你自己的主题并自定义文本、颜色、背景和快捷方式。

每当安装新的 WSL Linux 发行版时,都会在 Windows Terminal 中为其创建一个新实例,该实例可根据你的偏好进行自定义。

建议将 WSL 与 Windows Terminal 配合使用,尤其是在计划使用多个命令行时。 请参阅 Windows Terminal 文档,了解如何对其进行设置以及如何自定义首选项,包括:

Windows Terminal screenshot

文件存储

  • 若要在 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$

Windows File Explorer displaying Linux storage

设置你最喜欢的代码编辑器

建议使用 Visual Studio Code 或 Visual Studio,因为它们直接支持使用 WSL 进行远程开发和调试。 Visual Studio Code 使你能够将 WSL 用作功能完备的开发环境。 Visual Studio 提供了对 C++ 跨平台开发的本机 WSL 支持。

使用 Visual Studio Code

按照此分步指南开始将 Visual Studio Code 与 WSL 配合使用,其中包括安装远程开发扩展包。 使用此扩展,能够运行 WSL、SSH 或开发容器,以使用整套 Visual Studio Code 功能进行编辑和调试。 在不同的独立开发环境之间快速切换并进行更新,而无需担心会影响本地计算机。

安装并设置 VS Code 后,可以通过输入以下内容使用 VS Code 远程服务器打开 WSL 项目:code .

请确保在命令的末尾添加句点以打开当前目录。

VS Code with WSL extensions displayed

使用 Visual Studio

按照此分步指南开始将 Visual Studio 与 WSL 一起用于 C++ 跨平台开发。 Visual Studio 2022 使你能够从 Visual Studio 的同一实例在 Windows、WSL 发行版和 SSH 连接上生成和调试 CMake 项目。

Select a target system in Visual Studio 2022

使用 Git 设置版本管理

按照此分步指南开始在 WSL 上使用 Git,并将项目连接到 Git 版本控制系统,同时使用凭据管理器进行身份验证,使用 Git Ignore 文件,了解 Git 行尾,以及使用内置到 VS Code 的 Git 命令。

Displaying git version in the command line

使用 Docker 设置远程开发容器

按照此分步指南开始使用 WSL 2 上的 Docker 远程容器,并使用 Docker Desktop for Windows 将项目连接到远程开发容器。

Docker Desktop screenshot

设置数据库

按照此分步指南开始使用 WSL 上的数据库,并将项目连接到 WSL 环境中的数据库。 开始使用 MySQL、PostgreSQL、MongoDB、Redis、Microsoft SQL Server 或 SQLite。

Running MongoDB in Ubuntu via WSL

设置 GPU 加速以提高性能

按照此分步指南在 WSL 中设置 GPU 加速的机器学习训练,并利用计算机的 GPU(图形处理单元)来加速性能繁重的工作负载。

Running GPU acceleration with WSL

基本 WSL 命令

通过 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 结果。

装载外部驱动器或 USB

按照此分步指南开始在 WSL 2 中装载 Linux 磁盘

wsl mount command screenshot

运行 Linux GUI 应用

按照本教程了解如何设置和运行 WSL 上的 Linux GUI 应用

其他资源