第二章: 奠基:20 分钟构建一个“开箱即战”的 WSL 2 工作区
第二章: 奠基:20 分钟构建一个“开箱即战”的 WSL 2 工作区
Prorise第二章: 奠基:20 分钟构建一个“开箱即战”的 WSL 2 工作区
摘要: 在理论的曙光之后,本章将引领您进入激动人心的实战环节。我们将以最贴近真实场景的方式,手把手地完成 WSL 2 核心环境的搭建。这不仅仅是一份安装指南,更是一套 最佳实践的落地流程。我们将一起处理从系统检查、一键安装,到国内软件源配置、首次系统更新的每一个细节,并最终见证 VS Code 与 WSL 2 完美融合的“奇迹时刻”。完成本章后,您将拥有一个坚如磐石且运行如飞的 Linux 开发基座。
说明: 在上一章,我们确立了 WSL 2 作为我们终极方案的理论基石。现在,是时候将蓝图变为现实了。请跟随我的节奏,我们将共同完成这次至关重要的环境奠基。
在本章中,我们将并肩完成以下关键步骤:
- 准备工作: 确认我们的 Windows 系统和硬件已为 WSL 2 做好准备。
- 一键安装: 使用一条命令,完成 WSL 2 核心组件与 Ubuntu 发行版的自动化安装。
- 初始化配置: 进行首次启动,并创建属于您自己的 Linux 用户账户。
- 网络加速: (关键实践) 将 Ubuntu 的软件源更换为国内镜像,为后续操作提供“火箭般”的速度。
- 系统升级: 完成首次全面的系统更新,确保环境的安全与稳定。
- 连接 IDE: 将我们最熟悉的 VS Code 与刚刚诞生的 Linux 子系统无缝连接。
- 见证奇迹: 敲下
code .
,亲身体验跨越系统边界的开发流程。
2.1. 硬件与系统前置检查
在开始之前,我们需要确保我们的“主战场”——Windows 系统,已经准备就绪。这就像赛车手在发车前检查赛车一样,简单但至关重要。
2.1.1. 确认 Windows 版本
WSL 2 是在 Windows 10 的一个较新版本中才被引入的。我们需要确保您的系统版本不低于 20H1 (内部版本号 19041)。
操作非常简单:
- 按下键盘上的 Win + R 组合键,打开“运行”对话框。
- 输入
winver
并按回车。
您会看到一个关于 Windows 的弹窗。请检查其中的版本号,只要它大于或等于 2004
(即 20H1) 或 19041
,就说明您的系统满足要求。如果您正在使用 Windows 11,那么系统已全面原生支持,更无需担心。
2.1.2. 检查 CPU 虚拟化
WSL 2 的核心是轻量级虚拟化,这需要 CPU 提供硬件层面的支持,它允许操作系统高效、安全地将物理硬件资源(如 CPU 核心、内存)划分给多个隔离的运行环境。好消息是,近十年内生产的绝大多数 CPU 都默认支持并开启了此功能。我们只需快速确认一下。
- 按下 Ctrl + Shift + Esc 组合键,打开任务管理器。
- 切换到“性能”选项卡。
- 点击左侧的“CPU”。
- 在右侧信息的右下角,找到“虚拟化”一项。
如果显示“已启用”,那么恭喜您,一切准备就绪。
万一虚拟化未启用怎么办?
这种情况比较少见。如果确实未启用,您需要重启电脑并进入 BIOS/UEFI 设置。在其中寻找类似 “Intel® Virtualization Technology (VT-x)” 或 “AMD-V” 这样的选项,并将其设置为 Enabled
。由于各主板厂商的界面不同,具体操作建议您根据自己的主板型号快速搜索一下相关教程。
2.2. 一行命令的魔力
过去,安装 WSL 需要在控制面板中手动开关多个 Windows 功能,过程相对繁琐。但现在,微软已经将这个过程封装成了一条强大而简洁的命令。
请以 管理员身份 打开您的终端。您可以右键点击“开始”菜单,选择“终端(管理员)”或“Windows PowerShell (管理员)”。
然后,在弹出的蓝底或黑底窗口中,输入并执行以下命令:
1 | wsl --install -d Ubuntu-24.04 |
这条命令看似简单,实则是一个强大的宏。它在后台为您执行了一系列复杂的管理任务:
wsl
: 调用 WSL 命令行工具,是您未来管理所有子系统的入口。--install
: 启动自动化安装流程。它会智能地检查并开启所有必需的 Windows 功能,如“虚拟机平台”和“适用于 Linux 的 Windows 子系统”,让您免于手动配置的烦恼。-d Ubuntu-24.04
: 指定您想要安装的 Linux 发行版 (d
是--distribution
的简写)。我们选择Ubuntu-24.04
,因为它是 Canonical 公司在 2025 年 最新的长期支持版本(LTS)。这意味着它将获得长达五年的官方安全更新和社区支持,是兼顾新特性与稳定性的最佳选择。
按下回车后,您会看到终端开始自动执行一系列任务:下载最新的 WSL 内核、安装 Ubuntu 发行版… 这个过程可能会持续几分钟,具体取决于您的网络速度。
安装完成后,终端会提示您 重启计算机 以使所有更改生效。请保存好您手头的工作,然后从容地重启电脑。
2.3. 首次启动与用户初始化
当您的电脑重启完成后,一个 Ubuntu 的终端窗口通常会自动弹出,并显示 “Installing, this may take a few minutes…”。这是 WSL 在为您进行最后的个性化配置。
稍等片刻,您将被要求创建一个 UNIX 用户账户。
1 | Please create a default UNIX user account. The username does not need to match your Windows username. |
这里是您在 Linux 世界的“创世纪”时刻,请务必注意:
- 输入您的用户名: 建议使用全小写、简洁的英文名,例如
prorise
。这个用户名将是您在 Linux 世界里的身份标识。 - 输入您的密码: 接着,系统会提示您输入并确认密码。
密码输入时屏幕上不会有任何显示!
这是 Linux 及所有类 Unix 系统出于安全考虑的悠久传统。当您输入密码时,光标不会移动,也不会出现 *
号。请不要怀疑是键盘坏了,只需凭感觉盲打,输入完毕后按回车即可。这个密码至关重要,未来您执行所有需要管理员权限的 sudo
命令时,都必须输入它。
当您看到类似下面的欢迎信息时,就代表您的 Ubuntu 子系统已经安装并初始化成功了!
1 | Installation successful! |
1
prorise@YourPCName:~$
这个 prorise@YourPCName:~$
就是您在 Linux 世界的家,我们称之为命令提示符 (Prompt)。
2.4. 【关键实践】换源:为你的 apt
安装火箭引擎
在正式开始使用前,还有一步至关重要的优化。Ubuntu 使用名为 apt
的工具来安装和管理软件,它会从一些默认的官方服务器(通常在欧洲或美国)下载软件包。由于地理位置和网络的原因,直接连接这些服务器的速度可能会非常缓慢。
为了解决这个问题,我们需要将 apt
的软件源更换为国内的镜像服务器,例如阿里云、清华大学等提供的镜像。这将使我们的软件安装速度提升数十倍。
2.4.1. 备份默认源
永远要对修改系统核心配置文件保持敬畏。在修改前,我们先备份一下原始的 sources.list
文件,以防万一:
1 | sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak |
系统会要求您输入刚刚设置的 Linux 密码。输入后,这个命令会将原始的源文件复制一份,命名为 sources.list.bak
。
2.4.2. 使用 Vim 编辑源文件
接下来,我们将使用 Vim
来编辑配置文件。Vim
是 Linux 环境下最强大、最普遍的文本编辑器,熟练掌握它将使您受益终身。
1 | sudo vim /etc/apt/sources.list |
执行后,您会进入 Vim
的界面。请不要慌张,Vim
有不同的“模式”,现在您正处于 普通模式 (Normal Mode),按键会被解释为命令。
第一步:清空文件
为了确保万无一失,我们先清空整个文件。在键盘上依次按下 g
g
d
G
。
gg
: 将光标移动到文件的第一行。dG
: 删除从当前行到文件末尾的所有内容。
第二步:进入插入模式
现在文件已经清空,按下键盘上的 i
键。您会发现窗口左下角出现了 -- INSERT --
字样。这表示您已进入 插入模式 (Insert Mode),现在 Vim
的行为就和记事本一样了。
第三步:粘贴新的源地址
复制下面由 阿里云 提供的 Ubuntu 24.04 镜像源配置,然后在 Vim
窗口中 单击鼠标右键,即可粘贴。
1 | # 阿里云镜像源 for Ubuntu 24.04 LTS |
第四步:保存并退出
内容粘贴好后,按下键盘左上角的 Esc 键,左下角的 -- INSERT --
会消失,表示您已退回到 普通模式。然后,输入冒号、w、q,即 :wq
,再按回车。
:
: 唤起命令栏。w
: write,写入、保存。q
: quit,退出。
恭喜,您已经完成了第一次 Vim
操作,并成功更换了软件源!
2.5. 【关键实践】执行首次全面系统升级
更换了高速源之后,我们立刻来执行一次全面的系统更新,以确保所有的软件包都更新到最新版本,修复潜在的安全漏洞。
在您的 Ubuntu 终端里,执行以下命令:
1 | sudo apt update && sudo apt full-upgrade -y |
1
2
3
4
5
6
7
8
9
10
11
12
13
Hit:1 http://mirrors.aliyun.com/ubuntu noble InRelease
Get:2 http://mirrors.aliyun.com/ubuntu noble-updates InRelease [114 kB]
Get:3 http://mirrors.aliyun.com/ubuntu noble-backports InRelease [90.7 kB]
...
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Calculating upgrade... Done
...
The following packages will be upgraded:
... (此处会列出需要升级的软件包列表) ...
...
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
apt update
会首先从阿里云服务器获取最新的软件包信息列表。apt full-upgrade
则会根据这个列表,将您系统中所有可升级的软件都更新到最新版。得益于国内镜像,这个过程通常会非常迅速。
2.6. 搭建魔法之桥:安装 VS Code 的 “WSL” 扩展
这座连接 Windows 与 Linux 的“魔法之桥”,就是 VS Code 的官方 “WSL” 扩展。
前提: 请确保您已经在 Windows 侧安装了 Visual Studio Code。
- 打开 VS Code。
- 点击左侧边栏的“扩展”图标 (看起来像四个方块,快捷键
Ctrl+Shift+X
)。 - 在搜索框中输入
WSL
。 - 找到由 Microsoft 发布的那个扩展,它通常是第一个结果,然后点击 “安装”。
安装过程很快。这个扩展会自动在你的 Linux 子系统中配置一个轻量级的 vscode-server
。正是这个精巧的客户端-服务器架构,实现了跨越系统边界的无缝体验。
2.7. 第一次跨越:在正确的位置启动 VS Code
现在,我们将进行第一次,也是最关键的一次“穿越”。我们将学习如何从 WSL 终端,在正确的 Linux 文件系统内启动 VS Code 进行开发。
打开 Ubuntu 终端
启动后,您会发现默认路径通常位于/mnt/c/Users/YourWindowsUsername
。这是一个为了方便文件交换而设置的起点,但直接在此处进行开发会 极其缓慢。因此,我们的第一步永远是前往正确的工作区。导航至 Linux 的专属工作区
在 Linux 中,所有工作的起点都应该是您的专属“家目录”。这是一个位于 Linux 原生文件系统中的、高性能的安全区域。1
2# 无论当前在哪,立刻使用此命令回到家目录
cd ~cd
是切换目录(Change Directory)的命令,而~
(波浪号) 是家目录的永久快捷方式,其完整路径为/home/your_username
。执行后,您会看到命令提示符变为一个简洁的~
,代表您已抵达。建立规范的项目结构
一个良好的习惯是将所有项目代码存放在一个统一的目录中。让我们在家目录~
下创建一个名为projects
的文件夹,并为我们的第一个项目创建目录。1
2
3
4
5
6
7
8# 在家目录下,创建一个名为 projects 的文件夹
mkdir projects
# 进入 projects 文件夹
cd projects
# 为我们的第一个项目创建目录
mkdir my-first-project
# 进入该项目目录
cd my-first-project现在,您的终端路径应为
~/projects/my-first-project
。这是一个完美的、高性能的开发起点。从 Linux 启动 VS Code
在当前的项目目录内,执行以下核心命令:1
code .
这个命令的含义是:请求在当前目录(由
.
这个符号代表)的上下文中,启动 VS Code。首次运行时,VS Code 会在 Ubuntu 中自动安装一个轻量级服务vscode-server
,此过程只需几十秒。安装完成后,一个崭新的 VS Code 窗口将在您的 Windows 桌面上打开,但它的核心已经与您的 Linux 环境深度链接。
2.8. 深度解析:理解“真·跨系统开发”的含义
这个新打开的 VS Code 窗口看似普通,但实际上蕴含着跨系统开发的魔力。请留意以下几个关键特征:
左下角的绿色连接指示器
窗口左下角会有一个显著的绿色标志,上面写着WSL: Ubuntu
。这是一个重要的状态指示,它明确地告诉您:当前 VS Code 窗口正作为一个远程客户端,其所有的文件操作、命令执行和程序运行,都发生于后端的 WSL Ubuntu 环境中。无缝集成的原生 Linux 终端
使用快捷键 Ctrl + ` (反引号键) 打开 VS Code 的集成终端。您会发现,这已经是一个功能完整的、原生的 Ubuntu 终端,并且其默认路径就是我们刚刚创建的/home/your_username/projects/my-first-project
。您可以在这里直接执行任何Linux命令,如ls -l
,touch test.txt
等,其效果与直接在独立的 Ubuntu 终端窗口中操作完全一致。文件系统位于高性能的 Linux 区
在 VS Code 左侧的文件浏览器中,右键点击空白处,选择“新建文件”,命名为hello.js
。随即在下方的集成终端中输入ls
命令并回车,您会看到hello.js
被列出。接着输入pwd
命令(Print Working Directory,打印当前工作目录),终端会返回/home/your_username/projects/my-first-project
。这证明了您通过图形界面创建的文件,被真实地、高性能地存储在了 Linux 的原生文件系统内。
核心理念总结:
您使用的是 Windows 的 VS Code (享受着流畅的 UI、丰富的插件生态和熟悉的快捷键),但您的代码文件、依赖、编译器、调试器、终端,全部都 100% 运行在真实的 Linux 环境中。您获得了两个世界最好的部分,而几乎没有妥协。
2.9. 实战演练:体验高性能的 Node.js 工作流
让我们通过一个简单的 Node.js 示例,将所有概念串联起来,并直观地感受在正确位置开发的性能优势。
在 VS Code 集成终端中初始化项目
1
npm init -y
命令执行后,
package.json
文件会瞬间出现在左侧文件浏览器中。安装项目依赖
1
npm install express
请特别留意此命令的执行速度。
node_modules
目录的创建涉及数千个小文件的写入操作,这是一个对文件系统 I/O 性能的绝佳考验。因为我们身处 Linux 原生文件系统,这个过程会比在/mnt/c
(Windows 盘) 下快数倍甚至数十倍。这正是 WSL 开发工作流的核心价值所在。创建并编辑服务器代码
在 VS Code 文件浏览器中,创建一个名为server.js
的文件,并粘贴以下代码:1
2
3
4
5
6
7
8
9
10
11
12const express = require('express');
const app = express();
const port = 3000;
app.get('/', (req, res) => {
// 这条响应信息由在 Linux 中运行的 Node.js 服务发出
res.send('Hello from WSL 2! This is a REAL Linux server.');
});
app.listen(port, () => {
console.log(`Server running at http://localhost:${port}`);
});在集成终端中启动服务
1
node server.js
终端会显示服务已在
3000
端口上运行。在 Windows 浏览器中验证结果
打开您在 Windows 系统中的任意网页浏览器(如 Chrome, Edge),访问地址http://localhost:3000
。您将立刻看到页面显示 “Hello from WSL 2! This is a REAL Linux server.”。
原理解析: WSL 2 的网络系统具备端口自动转发的魔法。任何在 Linux 子系统内部监听 localhost
(或 0.0.0.0
) 的网络端口,都会被 WSL 自动、无缝地映射到 Windows 主机的 localhost
上。您无需进行任何手动的端口映射或网络配置,开发体验如同在原生 Windows 上一样自然流畅。
Cursor 作为一款集成了强大 AI 功能、基于 VS Code 的编辑器,同样可以与 WSL 2 实现无缝集成,其工作原理与 VS Code 完全一致。以下是在 Cursor 中启用 WSL 2 开发工作流的两种主要方法。
方法一:从 Cursor 界面连接到 WSL
这种方法适合喜欢图形化操作的用户。
安装 WSL 扩展
打开 Cursor,进入左侧的扩展市场视图,搜索 “WSL” 并安装由 Microsoft 提供的官方扩展。连接到 WSL
安装完成后,在 Cursor 窗口的左下角会看到一个蓝色的远程连接按钮(图标通常是><
)。 点击该按钮,在弹出的命令面板中选择 “Connect to WSL” 或 “Connect to WSL using Distro…”。打开项目文件夹
连接成功后,Cursor 会重新加载,并允许你通过 “文件” > “打开文件夹…” 来浏览并打开位于 WSL Linux 文件系统(例如/home/your_username/projects
)中的项目。
方法二:从 WSL 终端启动 Cursor (推荐)
这是最流畅、最可靠的方式,与 VS Code 的 code .
命令体验一致。
导航到项目目录
首先,在你的 Ubuntu (或其他发行版) 终端中,使用cd
命令进入你的项目文件夹。1
cd ~/projects/my-first-project
启动 Cursor
在项目目录内,执行以下命令:1
cursor .
当你第一次运行此命令时,Cursor 会自动在你的 WSL 实例中安装一个名为
.cursor-server
的轻量级服务,用于管理与 Windows 端 Cursor 的通信。 安装完成后,项目将在一个新的 Cursor 窗口中打开。验证连接
查看 Cursor 窗口左下角,如果显示WSL: Ubuntu
(或你的发行版名称),则表示连接成功,你已经处在高性能的跨系统开发环境中。
疑难解答:cursor: command not found
如果在 WSL 终端中执行 cursor .
时遇到“命令未找到”的错误,这意味着 WSL 无法找到位于 Windows 系统中的 Cursor 可执行文件。
解决方案: 将 Cursor 的路径手动添加到 WSL 的 PATH
环境变量中。
编辑你的 Shell 配置文件
根据你使用的 Shell,打开对应的配置文件(~/.bashrc
对应 Bash,~/.zshrc
对应 Zsh)。1
2
3
4
5# 如果你使用 Bash
nano ~/.bashrc
# 如果你使用 Zsh
nano ~/.zshrc添加 PATH
在文件末尾添加以下行,注意 将<YourWindowsUsername>
替换为你自己的 Windows 用户名。1
export PATH="$PATH:/mnt/c/Users/<YourWindowsUsername>/AppData/Local/Programs/cursor/resources/app/bin"
使其生效
保存文件后,执行以下命令使配置立即生效(或直接重启终端)。1
2
3
4
5# 如果你使用 Bash
source ~/.bashrc
# 如果你使用 Zsh
source ~/.zshrc现在,
cursor .
命令应该可以在 WSL 终端的任何路径下正常工作了。
小技巧: 为了让习惯于 VS Code 的开发者更加方便,你还可以在 .bashrc
或 .zshrc
文件中设置一个别名,让输入 code .
时实际执行的是 cursor .
。
1 | alias code='cursor' |