设置 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 发行版(可能需要重新启动)
在此安装过程中,你将需要重启计算机。
如果遇到任何问题,请查看排查安装问题一文。
设置 Linux 用户名和密码
使用 WSL 安装 Linux 发行版的过程完成后,使用“开始”菜单打开该发行版(默认情况下为 Ubuntu)。 系统将要求你为 Linux 发行版创建“用户名”和“密码”。
此用户名和密码特定于安装的每个单独的 Linux 分发版,与 Windows 用户名无关。
请注意,输入密码时,屏幕上不会显示任何内容。 这称为盲人键入。 你不会看到你正在键入的内容,这是完全正常的。
创建用户名和密码后,该帐户将是分发版的默认用户,并将在启动时自动登录。
此帐户将被视为 Linux 管理员,能够运行
sudo
(Super User Do) 管理命令。在 WSL 上运行的每个 Linux 发行版都有其自己的 Linux 用户帐户和密码。 每当添加分发版、重新安装或重置时,都必须配置一个 Linux 用户帐户。
注意
随 WSL 一起安装的 Linux 发行版是按用户安装,不可与其他 Windows 用户帐户共享。 遇到用户名错误? StackExchange:在 Linux 上的用户名中,应使用或不使用哪些字符?
若要更改或重置密码,请打开 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
Windows Terminal 可以使用命令行接口运行任何应用程序。 它的主要功能包括多个选项卡、窗格、Unicode 和 UTF-8 字符支持、GPU 加速文本呈现引擎,你还可用它来创建你自己的主题并自定义文本、颜色、背景和快捷方式。
每当安装新的 WSL Linux 发行版时,都会在 Windows Terminal 中为其创建一个新实例,该实例可根据你的偏好进行自定义。
建议将 WSL 与 Windows Terminal 配合使用,尤其是在计划使用多个命令行时。 请参阅 Windows Terminal 文档,了解如何对其进行设置以及如何自定义首选项,包括:
- 从 Microsoft Store 安装 Windows Terminal 或 Windows Terminal(预览版)
- 使用命令面板
- 设置键盘快捷方式等自定义操作,使 terminal 原生符合你的偏好
- 设置默认启动配置文件
- 自定义外观:主题、配色方案、名称和起始目录、背景图像等
- 了解如何使用命令行参数,例如使用拆分为窗口窗格或选项卡的多个命令行打开 terminal
- 了解搜索功能
- 查找提示和技巧,例如如何重命名选项卡或为其着色、使用鼠标交互或启用“Quake 模式”
- 查找有关如何设置自定义命令提示符、SSH 配置文件或选项卡标题的教程
- 查找自定义 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 支持。
使用 Visual Studio Code
按照此分步指南开始将 Visual Studio Code 与 WSL 配合使用,其中包括安装远程开发扩展包。 使用此扩展,能够运行 WSL、SSH 或开发容器,以使用整套 Visual Studio Code 功能进行编辑和调试。 在不同的独立开发环境之间快速切换并进行更新,而无需担心会影响本地计算机。
安装并设置 VS Code 后,可以通过输入以下内容使用 VS Code 远程服务器打开 WSL 项目:code .
请确保在命令的末尾添加句点以打开当前目录。
使用 Visual Studio
按照此分步指南开始将 Visual Studio 与 WSL 一起用于 C++ 跨平台开发。 Visual Studio 2022 使你能够从 Visual Studio 的同一实例在 Windows、WSL 发行版和 SSH 连接上生成和调试 CMake 项目。
使用 Git 设置版本管理
按照此分步指南开始在 WSL 上使用 Git,并将项目连接到 Git 版本控制系统,同时使用凭据管理器进行身份验证,使用 Git Ignore 文件,了解 Git 行尾,以及使用内置到 VS Code 的 Git 命令。
使用 Docker 设置远程开发容器
按照此分步指南开始使用 WSL 2 上的 Docker 远程容器,并使用 Docker Desktop for Windows 将项目连接到远程开发容器。
设置数据库
按照此分步指南开始使用 WSL 上的数据库,并将项目连接到 WSL 环境中的数据库。 开始使用 MySQL、PostgreSQL、MongoDB、Redis、Microsoft SQL Server 或 SQLite。
设置 GPU 加速以提高性能
按照此分步指南在 WSL 中设置 GPU 加速的机器学习训练,并利用计算机的 GPU(图形处理单元)来加速性能繁重的工作负载。
基本 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"
。 这还可以通过混合使用 Windowsdir
命令和 Linuxgrep
命令来实现: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 磁盘。
运行 Linux GUI 应用
按照本教程了解如何设置和运行 WSL 上的 Linux GUI 应用。
其他资源
- 在 Windows 上设置开发环境:了解有关为首选语言或框架(如 React、Python、NodeJS、Vue 等)设置开发环境的详细信息。
- 疑难解答:查找常见问题、在何处报告错误、在何处请求新功能以及如何参与文档编撰工作。
- 常见问题解答:查找常见问题列表。
- 发行说明:查看 WSL 发行说明,了解过去版本更新的历史记录。 还可以查找 WSL Linux 内核的发行说明。