WSL 优雅系列:如何优雅地配置 WSL


一、写在前面的话

我日常开发中使用 WSL 的频率非常高。对于很多基于 Linux 的开发工作来说,使用 WSL 无疑是最便捷和稳妥的方案。

btw:其实AI给这篇文章拟定的标题是:”如何在 Windows 下优雅地使用 Linux?”笑不活了

个人最常用的场景就是开 WSL 写博客、跑 Node.js 项目,以及 SSH 免密直连 Github(虽然 Windows 环境下也可以直连,但在 Linux 下管理密钥和环境显然更纯粹)。

强烈推荐所有 Windows 平台的开发者都配置一下 WSL。


二、为什么选择 WSL?

相较于传统的 VMware/VirtualBox 虚拟机或装双系统,WSL(特别是 WSL2)拥有很大优势:

  • 原生与性能:在 Windows 下直接运行纯正的 Linux 环境,启动仅需秒级,不用忍受传统虚拟机的笨重。
  • 共享资源:网络互通,剪贴板共享。可以在 WSL 的终端里输入 explorer.exe .,直接用 Windows 的资源管理器打开当前的 Linux 文件夹。
  • 生态兼容:无缝使用 aptpipnpm 等原生包管理器,完美支持 Docker Desktop,告别 Windows 下各种莫名其妙的环境编译报错。

三、安装与初始化流程

1. 极简安装

如果你使用的是较新的 Windows 10 或 Windows 11,安装已经变得极其简单。
管理员身份打开 PowerShell,直接运行:

1
wsl --install

注:该命令会自动启用所需的可选组件,下载最新的 Linux 内核,并将 Ubuntu 设置为默认发行版。安装完成后重启电脑即可。

备用安装方案(针对旧版 Windows):
如果上述命令报错,你可以手动开启组件,依次执行:

1
2
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

重启电脑后,再去微软应用商店搜索并安装 “Ubuntu”。

2. 首次登录与基础配置

重启并打开 Ubuntu 后,系统会提示你设置 Linux 的专属用户名密码(输入密码时不可见,属于正常现象)。

进入系统后,第一件事就是更新包索引并安装常用构建工具:

1
2
3
4
5
# 更新软件源与现有软件
sudo apt update && sudo apt upgrade -y

# 根据习惯安装常用开发工具
sudo apt install -y build-essential git zsh curl vim

3. 避坑:目录与文件规划

很多新手抱怨 WSL 运行代码特别卡,通常是因为跨文件系统访问造成的 I/O 性能损耗。remember:

  • Linux 项目必须放在 Linux 系统内:保持你的开发项目位于 WSL 的主目录下(例如 /home/<你的用户名>/workspace)。不要/mnt/c/(即 Windows 的 C 盘)下直接运行 Node 或 Python 构建,否则跨系统 I/O 巨慢……

    不过这点存疑吧,其实我经常跨系统开发,大部分时候性能都能够忍受。
    更新:不再存疑,原生系统速度 *10086

  • 如何在 Windows 下访问 Linux 文件?:在 Windows 资源管理器地址栏输入 \\wsl$ 即可直接看到 Linux 的系统盘,非常方便跨系统搬运文件。


四、WSL 高频命令

在 Windows 的 PowerShell 中,你可以使用以下命令来管理你的 WSL:

1
2
3
4
5
6
7
8
9
10
11
# 查看已安装的 Linux 发行版及运行状态 (WSL1 还是 WSL2)
wsl --list --verbose # 简写: wsl -l -v

# 一键启动特定的发行版
wsl -d Ubuntu-22.04

# 彻底关闭 WSL(当 WSL 出现 Bug 或占用内存过高时,重启大法好)
wsl --shutdown

# 切换默认的 WSL 版本结构(强烈建议新项目都用 WSL2)
wsl --set-default-version 2

注:如需回退到 WSL1 以便与某些极其古老的串口硬件/旧项目兼容,可对单个发行版执行 wsl --set-version <发行版名称> 1


五、预告:WSL网络与代理问题

当你愉快地配置好基础环境,准备 git clone 下载 Github 上的源码,或者运行脚本下载依赖时,你偶尔可能会遇到连接超时的情况。

因为 WSL 的网络并不总是会自动继承 Windows 的科学上网代理。

关于如何在 WSL 中优雅地配置代理,解决诸如 Temporary failure resolving、访问内网失败等让人抓狂的网络问题,我们将在下一篇文章中深度剖析并给出终极自动配置脚本

这个预告文风哈哈哈哈

👉 点击这里阅读下一篇:《WSL 优雅系列:如何优雅地解决 WSL 网络与代理问题》


Author: linda1729
Reprint policy: All articles in this blog are used except for special statements CC BY 4.0 reprint policy. If reproduced, please indicate source linda1729 !
评论
  TOC