Windows Subsystem for Linux (WSL) 入门指南:安装、配置与基础使用
前言:拥抱 Linux 的强大力量,无需离开 Windows
对于开发者、系统管理员,或者任何需要在 Windows 环境下使用 Linux 工具链、命令行工具、脚本或特定应用的 Linux 爱好者而言,Windows Subsystem for Linux (WSL) 无疑是一项革命性的技术。它打破了 Windows 与 Linux 之间的壁垒,让你能够在 Windows 操作系统内无缝运行一个真实的 Linux 环境,而无需安装虚拟机、双系统,或忍受 Cygwin 等模拟环境的限制。
WSL 并非一个传统的虚拟机,也不是一个简单的模拟层。它最初(WSL 1)是一个兼容层,将 Linux 系统调用转换为 Windows 系统调用。而更先进的 WSL 2 则采用了轻量级虚拟化技术,运行一个真实的 Linux 内核,从而提供了更强的系统调用兼容性、显著提升的文件系统性能以及更广泛的 Linux 应用支持,包括 Docker 等。目前,WSL 2 已成为默认推荐的版本。
本篇文章将带你一步步深入了解 WSL,从零开始指导你完成安装、基础配置,并掌握一些常用的基础操作,让你能够快速上手,利用 WSL 极大地提升你的工作效率和开发体验。无论你是 Linux 新手还是经验丰富的用户,希望这篇指南都能为你打开 WSL 的大门。
第一部分:安装 WSL
WSL 的安装流程已经随着 Windows 版本迭代而变得越来越简单。目前,对于绝大多数用户而言,一个命令即可搞定。
1.1 检查系统要求
在开始安装之前,请确保你的 Windows 版本满足要求:
- WSL 1: 需要 Windows 10 版本 1607 (周年更新) 或更高版本。
- WSL 2: 需要 Windows 10 版本 1903 或更高版本,且 Build 版本号大于 18362。对于 Windows 11,所有版本都支持 WSL 2。
要查看你的 Windows 版本和 Build 号,可以按下 Windows 徽标键 + R
,输入 winver
并回车。
如果你的 Windows 版本过旧,建议先进行系统更新。
1.2 推荐安装方法(适用于 Windows 10 较新版本及 Windows 11):使用 wsl --install
这是目前最简单、最快速的安装 WSL 的方法,强烈推荐使用。它会自动为你完成以下步骤:
- 启用所需的 Windows 可选功能 (Windows Subsystem for Linux 和 Virtual Machine Platform)。
- 下载并安装最新的 WSL 2 Linux 内核。
- 将 WSL 2 设置为默认版本。
- 下载并安装默认的 Linux 发行版(通常是 Ubuntu)。
步骤:
- 打开 PowerShell 或 命令提示符(Command Prompt)作为 管理员。你可以通过在开始菜单搜索栏输入 “PowerShell” 或 “cmd”,然后右键点击搜索结果,选择 “以管理员身份运行”。
-
在打开的管理员终端窗口中,输入以下命令并回车:
bash
wsl --install -
系统会提示你进行安装。这个过程可能需要一些时间,取决于你的网络速度和计算机性能。安装完成后,可能会提示你需要重启计算机。
- 重启计算机。
- 重启后,WSL 将自动完成最后阶段的设置。通常会为你安装默认的 Linux 发行版(例如 Ubuntu),并在一个单独的窗口中启动它。
-
首次启动时,你需要创建一个新的 Linux 用户账户。系统会提示你输入用户名和密码。请记住这个密码,它将用于执行需要管理员权限的操作(使用
sudo
命令)。Installing, this may take a few minutes...
Please create a default UNIX user account. The username need not match your Windows username.
For more information please visit: https://aka.ms/wslusers
Enter new UNIX username: [输入你的用户名]
New password: [输入你的密码]
Retype new password: [再次输入你的密码]
passwd: password updated successfully
Installation successful!
至此,你已经成功安装了 WSL,并且拥有了一个可用的 Linux 环境。
1.3 手动安装方法(适用于旧版本 Windows 或特定需求)
如果你的 Windows 版本不支持 wsl --install
,或者你需要进行更精细的控制(例如先安装其他发行版),你可以选择手动安装。这个过程相对繁琐一些。
步骤:
-
启用 Windows Subsystem for Linux 可选功能:
打开 PowerShell 作为管理员,运行以下命令:bash
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart -
启用 Virtual Machine Platform 可选功能(仅需安装 WSL 2 时):
打开 PowerShell 作为管理员,运行以下命令:bash
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
WSL 2 需要此功能才能运行其轻量级虚拟化。如果你只想安装 WSL 1,则跳过此步。 -
重启计算机。 完成上述功能启用后,需要重启使更改生效。
-
下载 Linux 内核更新包(仅需安装 WSL 2 时):
WSL 2 运行在自己的轻量级虚拟机中,需要一个 Linux 内核。你需要下载并安装一个 MSI 包来获取这个内核。
访问 https://aka.ms/wsl2kernel 下载最新版本。
双击下载的wsl_update_x64.msi
文件进行安装。这就像安装任何其他 Windows 应用程序一样简单。 -
将 WSL 2 设置为默认版本(可选,但强烈推荐):
打开 PowerShell 或命令提示符(不需要管理员权限),运行以下命令:bash
wsl --set-default-version 2
这将确保你以后安装的任何新 Linux 发行版都默认以 WSL 2 模式运行。 -
选择并安装 Linux 发行版:
打开 Microsoft Store,搜索你想要安装的 Linux 发行版。一些常见的选择包括:- Ubuntu (通常是最新 LTS 版本)
- Debian
- Kali Linux
- openSUSE Leap
- Fedora Remix for WSL
点击你想安装的发行版,然后点击 “获取” 或 “安装”。下载完成后,点击 “启动”。
-
首次启动发行版:
首次启动安装的 Linux 发行版时,会打开一个终端窗口,并要求你像使用wsl --install
那样创建一个新的 Linux 用户账户和密码。完成设置后,你就进入了 Linux 环境。
1.4 安装更多 Linux 发行版
你可以在同一台 Windows 机器上安装多个 WSL 发行版。安装了第一个发行版后,你可以通过 Microsoft Store 安装更多,或者使用 wsl --install
命令安装指定发行版:
bash
wsl --install -d <发行版名称>
例如,安装 Debian:
bash
wsl --install -d Debian
你可以在 Microsoft Store 页面或通过运行 wsl --list --online
查看可用的发行版列表。
1.5 检查已安装的发行版及其版本
你可以随时查看你安装了哪些 WSL 发行版以及它们运行在哪个 WSL 版本(WSL 1 或 WSL 2):
“`bash
wsl –list –verbose
或者简写为 wsl -l -v
“`
输出示例:
NAME STATE VERSION
* Ubuntu Running 2
Debian Stopped 2
星号 (*) 表示当前默认的发行版。STATE
表示发行版的状态(Running、Stopped、Stopping 等)。VERSION
表示运行的 WSL 版本 (1 或 2)。
你可以使用 wsl --set-version <发行版名称> <版本号>
命令来更改特定发行版使用的 WSL 版本。例如,将 Ubuntu 设置为 WSL 1:
bash
wsl --set-version Ubuntu 1
或者设置为 WSL 2:
bash
wsl --set-version Ubuntu 2
这个转换过程可能需要一些时间,尤其是在 WSL 2 转换为 WSL 1 时(需要压缩文件系统)。
第二部分:WSL 的基础配置与使用
安装完成后,你就拥有了一个基本的 Linux 环境。接下来是一些基础的配置和使用技巧。
2.1 首次启动与用户账户
如前所述,首次启动任何一个新的 WSL 发行版时,系统都会提示你创建一个非 root 用户账户和密码。这是出于安全考虑的最佳实践。创建的账户将是该发行版的默认用户,并在需要执行管理员任务时使用 sudo
命令。
2.2 更新你的 Linux 发行版
这是你在新安装的 Linux 环境中做的第一件事,也是非常重要的一件事。定期更新可以确保你获得最新的安全补丁和软件版本。
打开你的 WSL 发行版(例如 Ubuntu),在终端中运行以下命令:
bash
sudo apt update
sudo apt upgrade
sudo
: 以管理员(root)权限执行命令。执行此命令时需要输入你创建的用户密码。apt
: Debian/Ubuntu 系列发行版使用的包管理器。update
: 从软件源服务器下载最新的软件包列表,但不会安装或升级任何软件。upgrade
: 根据最新的软件包列表,升级系统中所有已安装的、有新版本的软件包。
在执行 sudo apt upgrade
时,系统可能会提示你确认是否继续安装。输入 Y
并回车即可。
如果你使用的是其他发行版,包管理器命令会有所不同:
- Fedora:
sudo dnf update
- openSUSE:
sudo zypper update
- Alpine:
sudo apk upgrade
2.3 访问 Windows 文件系统
从 WSL 内部访问 Windows 文件非常简单。WSL 会将你的 Windows 驱动器挂载到 /mnt/
目录下。
- 你的 C 盘通常可以在
/mnt/c
找到。 - 你的 D 盘通常可以在
/mnt/d
找到。 - 依此类推。
例如,要访问你的 Windows 用户目录下的 “文档” 文件夹:
bash
cd /mnt/c/Users/YourWindowsUsername/Documents
请将 YourWindowsUsername
替换为你实际的 Windows 用户名。
你可以在 WSL 中像操作任何 Linux 文件一样操作这些 Windows 文件(读、写、执行等),当然,权限受 Windows 文件系统 ACL 的限制。
重要提示: 在 WSL 2 中,从 WSL 环境访问 Windows 文件 (/mnt/...
) 的性能会比在 Linux 文件系统内部 (~
或其他 Linux 路径) 差很多。反之亦然(从 Windows 访问 WSL 文件)。因此,强烈建议将你的开发项目文件、代码库等放置在 WSL 的 Linux 文件系统内部,以获得最佳性能。
2.4 访问 WSL 文件系统
从 Windows 内部访问 WSL 文件也非常方便。你可以通过网络路径访问 WSL 的文件系统。
在 Windows 文件资源管理器的地址栏中输入:
\\wsl$
按下回车后,你会看到你安装的所有 WSL 发行版的列表。点击进入某个发行版,你就可以像浏览普通网络共享文件夹一样浏览其文件系统,包括你的用户主目录 (\\wsl$\<DistroName>\home\<YourUsername>
)。
同样,从 Windows 访问 WSL 文件 (\\wsl$\...
) 的性能在 WSL 2 中也可能不如在 Linux 环境内部操作。
2.5 在 WSL 中运行 Windows 命令
你可以在 WSL 终端中直接运行大多数 Windows 可执行文件(.exe
、.com
、.bat
等),就像它们是 Linux 命令一样。你需要指定完整的路径,或者如果可执行文件在 Windows 的 PATH
环境变量中,则可以直接输入文件名。
WSL 会自动将 Windows 的 PATH
环境变量与 Linux 的 PATH
合并,因此许多常用的 Windows 命令可以直接调用。
例如:
-
打开 Windows 文件资源管理器,当前目录在 WSL 中,但资源管理器会在 Windows 中打开当前对应的 Windows 目录:
bash
explorer.exe .
注意.exe
后面的点 (.
) 表示当前目录。 -
用 Windows 的记事本打开一个 WSL 文件:
bash
notepad.exe ~/.bashrc
请注意,这将在 Windows 端启动记事本,并打开 WSL 文件系统中的.bashrc
文件。 -
运行 Windows 命令行工具:
bash
ipconfig.exe /all
2.6 从 Windows 运行 WSL 命令
反过来,你也可以从 Windows 的 Command Prompt 或 PowerShell 中直接运行 WSL 命令。使用 wsl
命令作为前缀即可。
cmd
wsl <Linux 命令>
例如:
-
从 Windows 列出你的 WSL 用户主目录内容:
cmd
wsl ls -l ~ -
运行一个 Python 脚本,假设 Python 安装在 WSL 中:
cmd
wsl python3 your_script.py -
直接启动一个特定的 WSL 发行版终端(如果安装了多个):
cmd
wsl -d Ubuntu -
以特定用户身份运行命令:
cmd
wsl -u root ls /root -
仅仅启动默认的 WSL shell:
cmd
wsl bash
2.7 安装软件
WSL 发行版使用标准的 Linux 包管理器。对于大多数基于 Debian/Ubuntu 的发行版,你将使用 apt
。
-
搜索软件包:
bash
sudo apt search <关键词>
例如:sudo apt search nginx
-
查看软件包信息:
bash
sudo apt show <软件包名称>
例如:sudo apt show nginx
-
安装软件包:
bash
sudo apt install <软件包名称>
你可以一次安装多个软件包,用空格隔开:sudo apt install git nodejs
-
卸载软件包:
bash
sudo apt remove <软件包名称> -
卸载软件包及其配置文件:
bash
sudo apt purge <软件包名称>
请记住,在执行 apt install
或 apt remove
等操作之前,最好先运行 sudo apt update
来更新软件包列表。
2.8 WSLg:运行 Linux GUI 应用程序
如果你使用的是 Windows 10 版本 21H2 或更高版本,或者 Windows 11,并且安装了 WSLg,你就可以在 WSL 中直接运行带有 GUI 的 Linux 应用程序。这些应用程序会像普通的 Windows 应用程序一样出现在 Windows 桌面和任务栏中,并且声音和图形输出都能正常工作。
WSLg 通常随 wsl --install
命令自动安装。如果你是手动安装或者版本较旧,可能需要更新 WSL:
bash
wsl --update
安装一个简单的 GUI 应用(例如 xeyes
或文本编辑器 gedit
)来测试:
bash
sudo apt update
sudo apt install x11-apps # 安装 xeyes
sudo apt install gedit # 安装 gedit 文本编辑器
安装完成后,直接在 WSL 终端中运行命令即可启动 GUI 应用:
bash
xeyes
gedit
应用程序的窗口会出现在 Windows 桌面上。
2.9 WSL 与集成开发环境 (IDE)
许多现代 IDE 和代码编辑器提供了对 WSL 的出色支持,例如 Visual Studio Code。通过安装相应的远程开发扩展(如 VS Code 的 Remote – WSL 扩展),你可以在 Windows 上使用你熟悉的 IDE 界面,但代码的实际编辑、运行、调试等操作都在 WSL 环境中执行。这结合了 Windows 桌面应用的便利性与 WSL 环境的强大功能和性能(特别是文件系统性能)。
2.10 管理 WSL 实例
你可以使用 wsl
命令来管理你的 WSL 实例:
-
启动默认发行版:
打开命令提示符或 PowerShell,直接输入wsl
并回车。 -
启动特定发行版:
cmd
wsl -d <发行版名称> -
关闭正在运行的所有发行版:
这会停止所有 WSL 进程。cmd
wsl --shutdown -
终止特定发行版:
“`cmd
wsl –terminate <发行版名称>或者简写为 wsl -t <发行版名称>
“`
-
设置默认用户:
你可以在每个发行版的/etc/wsl.conf
文件中配置默认登录用户。或者,对于已安装的发行版,你可以使用命令设置:cmd
<发行版名称> config --default-user <用户名>
例如:ubuntu config --default-user myuser
(请在 Windows 命令提示符或 PowerShell 中运行此命令,而不是 WSL 内部) -
导出和导入 WSL 发行版:
这允许你备份、迁移或复制你的 WSL 环境。
导出:wsl --export <发行版名称> <导出文件名.tar>
导入:wsl --import <新发行版名称> <安装目录> <导出文件名.tar> --version <1或2>
导入时,你可以选择安装路径和使用的 WSL 版本。 -
注销(卸载)发行版:
这将删除发行版的整个文件系统和数据。操作不可逆,请谨慎使用。cmd
wsl --unregister <发行版名称>
2.11 网络连接
在 WSL 2 中,每个发行版都有自己的虚拟网卡和 IP 地址,与 Windows 主机共享同一个网络命名空间。通常情况下,网络是“桥接”到 Windows 主机的。这意味着你的 WSL 环境可以访问互联网,并且通常可以访问本地网络中的其他设备。
- 访问互联网: 大多数情况下开箱即用。
- 从 WSL 访问 Windows 服务: 如果你在 Windows 上运行了一个服务(例如 Web 服务器监听 8080 端口),你可以从 WSL 内部使用
localhost
或 Windows 主机的 IP 地址访问它。 - 从 Windows 访问 WSL 服务: 这是 WSL 2 中稍复杂的地方,因为 WSL 2 的 IP 地址是动态分配的。然而,由于网络地址转换 (NAT) 的设置,通常你可以直接使用
localhost
从 Windows 访问 WSL 中运行的服务。例如,如果在 WSL 中运行的 Web 服务器监听 3000 端口,你在 Windows 浏览器中访问http://localhost:3000
即可。如果localhost
不工作,你需要找到 WSL 2 实例的动态 IP 地址(在 WSL 内部运行ip addr show eth0
或hostname -I
)并在 Windows 中使用该 IP 访问,但这不方便且 IP 会变化。幸运的是,Windows 较新版本对 WSL 2 的localhost
访问做了优化。 - 通过 Windows 防火墙: 如果你在 WSL 中运行了一个服务并想从 Windows 或外部访问它,你可能需要在 Windows 防火墙中允许相应的端口或应用程序通过。
2.12 WSL 1 vs WSL 2 的选择
虽然 wsl --install
默认安装 WSL 2,并且强烈推荐使用 WSL 2,了解两者的区别有助于在特定情况下做出选择。
-
WSL 1:
- 基于系统调用转换层。
- 不使用虚拟化技术。
- 启动速度通常比 WSL 2 快。
- 在 WSL 1 环境中访问 Windows 文件系统 (
/mnt/
) 性能比 WSL 2 高。 - 系统调用兼容性不如 WSL 2,某些 Linux 应用无法运行。
- Linux 文件系统(WSL 1 内部)性能相对较低,尤其在涉及大量文件 I/O 的场景(如
git clone
大型仓库)。
-
WSL 2:
- 运行在轻量级虚拟机中的真实 Linux 内核。
- 完全的系统调用兼容性,几乎所有 Linux 应用都能运行(包括 Docker)。
- Linux 文件系统(WSL 2 内部)性能显著优于 WSL 1,与原生 Linux 接近。
- 启动速度可能略慢于 WSL 1(因为需要启动 VM)。
- 跨文件系统访问性能较差(从 WSL 2 访问 Windows 文件,或从 Windows 访问 WSL 2 文件)。
- 占用更多内存(因为是 VM)。
- 网络配置稍复杂(动态 IP,但
localhost
访问已优化)。
结论: 绝大多数场景下,选择 WSL 2。它的文件系统性能和兼容性优势巨大,对于开发工作流至关重要。只有当你对内存占用极其敏感,或者你的工作流主要涉及在 /mnt/
下操作大量文件且 WSL 1 的兼容性已足够时,才可能考虑 WSL 1。
2.13 配置文件:.bashrc
和 wsl.conf
-
~/.bashrc
或~/.zshrc
(取决于你的 Shell): 这是标准的 Linux shell 配置文件。你可以在这里添加自定义别名、环境变量、修改提示符等。每次打开新的终端会话时都会加载它。使用你喜欢的编辑器(如nano
或vim
)来编辑它:
bash
nano ~/.bashrc
编辑完成后,使用source ~/.bashrc
或重新打开终端来应用更改。 -
/etc/wsl.conf
: 这个文件允许你配置 WSL 实例的特定设置,例如自动挂载 Windows 驱动器的方式、网络设置等。这个文件需要在 WSL 内部创建或编辑,并需要管理员权限。更改此文件后,你需要关闭并重启 WSL 实例(使用wsl --shutdown
)才能使更改生效。
例如,禁用 Windows 驱动器自动挂载:
ini
[automount]
enabled = false
或者配置网络:
ini
[network]
generateResolvConf = false # 防止 WSL 自动生成 /etc/resolv.conf
编辑wsl.conf
需要sudo
权限:
bash
sudo nano /etc/wsl.conf
第三部分:基础 Linux 命令回顾
既然你在使用 WSL,了解一些基础的 Linux 命令是必不可少的。这里回顾一些最常用且基础的命令。
-
pwd
: Print Working Directory。显示当前所在的目录。
bash
pwd
# 输出示例: /home/yourusername -
ls
: List files and directories。列出当前目录或指定目录下的文件和子目录。ls
: 列出当前目录内容。ls -l
: 以长格式列出,显示文件权限、所有者、大小、修改日期等信息。ls -a
: 显示所有文件,包括隐藏文件(以.
开头的文件)。ls -lh
: 以人类可读的格式显示文件大小(例如 10K, 2M)。ls <目录路径>
: 列出指定目录的内容。
-
cd
: Change Directory。改变当前工作目录。cd <目录路径>
: 进入指定目录。例如cd /mnt/c/Users/
cd ..
: 返回上一级目录。cd ~
: 返回当前用户的 HOME 目录(通常是/home/yourusername
)。cd -
: 返回上一次所在的目录。
-
mkdir
: Make Directory。创建一个新目录。mkdir <目录名称>
: 在当前目录创建一个新目录。mkdir /path/to/new/directory
: 在指定路径创建一个新目录。mkdir -p /path/to/nonexistent/parent/new_directory
: 创建多级目录,如果父目录不存在则自动创建。
-
rm
: Remove files or directories。删除文件或目录。此命令非常强大且危险,请谨慎使用,尤其是在使用-r
和-f
选项时!rm <文件名>
: 删除指定文件。rm -r <目录名>
: 递归删除目录及其内容。rm -f <文件名>
: 强制删除文件,不进行确认提示。rm -rf <目录名>
: 强制递归删除目录及其内容。(极度危险,务必确认你要删除的是什么!)
-
cp
: Copy files or directories。复制文件或目录。cp <源文件> <目标位置>
: 复制文件到目标位置。cp <源文件> <新文件名>
: 复制文件并重命名。cp -r <源目录> <目标位置>
: 递归复制目录及其内容。
-
mv
: Move or rename files or directories。移动或重命名文件/目录。mv <源> <目标>
: 移动文件/目录到目标位置。mv <旧名称> <新名称>
: 重命名文件/目录。
-
cat
: Concatenate and display files。显示文件内容。cat <文件名>
: 显示文件的全部内容。
-
less
: Page through files。分页显示文件内容,适合查看大文件。按空格键
向下翻页,按b
向上翻页,按q
退出。less <文件名>
-
grep
: Search plain-text data for lines that match a pattern。在文件中搜索包含指定文本的行。grep "pattern" <文件名>
: 在文件中搜索包含 “pattern” 的行。command | grep "pattern"
: 将命令的输出作为输入,搜索包含 “pattern” 的行。
-
echo
: Display a line of text。打印文本或变量的值。echo "Hello, WSL!"
echo $PATH
: 打印 PATH 环境变量的值。
-
man
: Display the manual page for a command。显示命令的帮助手册。按q
退出。man ls
-
sudo
: Execute a command as another user (usually root)。以超级用户权限执行命令。需要输入当前用户的密码。sudo <command>
-
clear
: Clear the terminal screen。清空终端屏幕。
掌握这些基础命令,你就可以在 WSL 环境中进行文件导航、管理和基本的系统交互了。随着使用的深入,你还会学习到更多强大的 Linux 命令和工具。
第四部分:常见问题与故障排除
尽管 WSL 旨在提供顺畅的体验,但在安装或使用过程中仍可能遇到问题。
-
wsl --install
失败或提示错误:- 检查 Windows 版本: 确保你的 Windows 版本和 Build 号满足
wsl --install
的要求。 - 以管理员身份运行终端:
wsl --install
必须在管理员权限的 PowerShell 或命令提示符中执行。 - 检查虚拟化是否启用: 对于 WSL 2,你的计算机 BIOS/UEFI 设置中需要启用虚拟化技术(Intel VT-x 或 AMD-V)。重启电脑,进入 BIOS/UEFI 设置查找相关选项并启用。
- 检查 Hyper-V 或 Virtual Machine Platform 功能: 手动安装步骤中的这两个可选功能需要被启用。有时即使使用了
--install
,也可能需要手动检查。 - 网络问题: 下载发行版或内核更新需要网络连接。
- 检查 Windows 版本: 确保你的 Windows 版本和 Build 号满足
-
安装的发行版无法启动:
- 重启 WSL 服务: 在 Windows 命令提示符或 PowerShell 中运行
wsl --shutdown
,然后再次尝试启动发行版。 - 检查 WSL 版本: 运行
wsl -l -v
查看发行版使用的是 WSL 1 还是 WSL 2。如果设置为 WSL 2,确保 Linux 内核已正确安装(参考手动安装步骤 4)。如果遇到 “WSL 2 平台未知” 或相关错误,通常是内核缺失或需要更新。 - 重置发行版: 作为最后的手段,你可以考虑注销并重新安装发行版(
wsl --unregister <发行版名称>
,请注意这会删除所有数据)。
- 重启 WSL 服务: 在 Windows 命令提示符或 PowerShell 中运行
-
网络连接问题:
- 检查 Windows 网络: 确保你的 Windows 主机有正常的互联网连接。
- 防火墙: 检查 Windows 防火墙设置,确保没有阻止 WSL 的网络访问。
- DNS 问题: 有时 WSL 的
/etc/resolv.conf
文件可能出现问题。你可以尝试手动编辑它(sudo nano /etc/resolv.conf
)并设置一个可靠的 DNS 服务器(例如nameserver 8.8.8.8
)。更改后可能需要运行sudo chattr +i /etc/resolv.conf
阻止 WSL 自动覆盖它(如果/etc/wsl.conf
中没有设置generateResolvConf = false
)。
-
文件访问性能问题:
- 如前所述,WSL 2 中跨文件系统(Windows <-> Linux)的性能较差。将经常操作的文件放在 WSL 文件系统内部 (
~
或其他 Linux 路径)。
- 如前所述,WSL 2 中跨文件系统(Windows <-> Linux)的性能较差。将经常操作的文件放在 WSL 文件系统内部 (
-
磁盘空间占用过大:
- WSL 2 的虚拟磁盘文件 (
ext4.vhdx
) 会随着使用而增长,但不会自动收缩。如果需要释放空间,可以关闭所有 WSL 实例(wsl --shutdown
),然后在 PowerShell 中运行优化命令(需要找到.vhdx
文件的路径,通常在%LOCALAPPDATA%\Packages\<DistroFolder>\LocalState
下):
cmd
Optimize-VHD -Path "C:\Users\YourUsername\AppData\Local\Packages\...\ext4.vhdx" -Mode Full
请将路径替换为你的实际路径。
- WSL 2 的虚拟磁盘文件 (
如果遇到更复杂的问题,微软的 WSL 文档(https://docs.microsoft.com/en-us/windows/wsl/)是一个非常有用的资源。
总结与展望
恭喜你!通过本指南,你已经掌握了 Windows Subsystem for Linux 的安装、基础配置和常用命令。你现在拥有了一个强大的、与 Windows 集成良好的 Linux 环境,可以开始探索和利用 Linux 丰富的软件生态系统了。
WSL 的出现极大地改善了 Windows 上的开发者体验,使得跨平台开发、使用命令行工具、进行系统管理等任务变得前所未有的便捷。
这仅仅是 WSL 世界的起点。你可以进一步学习:
- 更高级的 Linux 命令和 Shell 脚本编写。
- 在 WSL 中安装和配置各种开发环境(Node.js, Python, Docker, Web 服务器等)。
- 利用 VS Code 等工具与 WSL 进行深度集成。
- 探索 WSLg 运行 GUI 应用的便利性。
- 深入了解 Linux 文件系统结构和权限管理。
WSL 是一个不断发展和完善的项目。随着微软的持续投入,它的功能和性能将越来越强大。
希望这篇详细的入门指南能够帮助你顺利踏上 WSL 的旅程!尽情享受在 Windows 上运行 Linux 的便利与强大吧!