在Windows上使用Linux:WSL
1. 什么是 WSL?
现在我们来说一个有趣的话题:如果你的主要操作系统是 Windows,如何使用 Linux?欢迎来到 WSL 的世界!
WSL(Windows Subsystem for Linux)是 Microsoft 的一项技术,它允许直接在 Windows 中运行 Linux 发行版。它有两个版本:
- WSL1:在 Windows 和 Linux 之间提供系统调用层面的兼容性。它通过 Windows 内核模拟 Linux 行为。
- WSL2:通过隐藏的轻量虚拟机使用完整的 Linux 内核。这让 WSL2 更快,也更接近真正的 Linux。
WSL 就像是连接两个世界的桥梁:你既可以使用 Linux 的工具,同时仍然留在 Windows 的生态系统中。对于开发者来说,这是个超大的优势:可以用喜欢的 Linux 命令来编写代码、测试以及配置服务器。
2. 为什么 WSL 这么有价值?
- 开发和测试: WSL 让开发人员可以在 Linux 环境中工作,不需要重启电脑或者使用虚拟机。
- Docker 和容器化: WSL2 支持 Docker,这对使用容器工作特别有用。
- 文件系统集成: 你可以轻松地在 Windows 和 Linux 之间共享文件,使用同一个文件系统。
- 设置简单: 安装 WSL 只需要几分钟。
WSL 和虚拟机有什么区别?
- 不需要虚拟化. 你不需要安装 VirtualBox、VMware 或者 Hyper-V。WSL 在系统级别运行。
- 更少资源消耗. WSL 比普通虚拟机使用更少的内存和 CPU。
- 与 Windows 集成. 你可以轻松地在 Windows 和 Linux 之间共享文件,一起运行 Linux 和 Windows 命令(!),并且使用同样的网络接口。
3. 安装 WSL
1. 检查系统要求
开始之前,请确认你的系统符合最低要求:
- Windows 10(版本 2004 及以上)或 Windows 11。
- BIOS/UEFI 中启用了虚拟化。
要检查 Windows 版本,打开 PowerShell 并执行以下命令:
winver
你应该会看到如下窗口:
如果你不知道如何在 Windows 中运行 PowerShell,请按 Win+S 键并输入 powershell。
2. 启用 WSL
以管理员身份打开 PowerShell 并执行以下命令:
wsl --install
这个命令会自动安装 WSL,下载 Linux 内核,并将 WSL2 设置为默认版本。
如果因为某些原因该命令无法工作,可以通过 Windows 的附加组件手动启用 WSL:
- 打开“控制面板” → “程序和功能” → “启用或关闭 Windows 功能”。
- 启用以下选项:
- 用于 Linux 的 Windows 子系统。
- 虚拟机平台。
之后重启电脑。
3. 选择并安装发行版
WSL 支持安装热门 Linux 发行版,比如 Ubuntu、Debian、Kali Linux 等等。要查看可用发行版列表,请执行以下命令:
wsl --list --online
你会看到可用发行版的列表:
PS C:\Users\Admin> wsl --list --online
The following is a list of valid distributions that can be installed.
Install using 'wsl.exe --install <Distro>'.
NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
Ubuntu-24.04 Ubuntu 24.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.6 openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-15-SP6 SUSE Linux Enterprise 15 SP6
openSUSE-Tumbleweed openSUSE Tumbleweed
例如,若要安装 Ubuntu,请执行以下命令:
wsl --install -d Ubuntu
安装完成后,运行该发行版以完成设置(例如设置用户名和密码)。
3. 默认设置为 WSL2
为了使用 WSL2(强烈推荐),请确保已启用 WSL2。将其设置为默认版本:
wsl --set-default-version 2
如果你已经安装了 WSL1 的发行版,可以将其升级为 WSL2:
wsl --set-version <发行版名称> 2
示例:
wsl --set-version Ubuntu 2
4. WSL 与 Windows 的集成
WSL 和 Windows 的集成很棒,让你可以同时使用两种系统的功能。以下是关键点:
1. 文件交换
WSL 会将 Windows 文件系统挂载到目录 /mnt
中。例如:
cd /mnt/c/Users/你的名字
你可以直接从 Linux 操作 Windows 文件。同样,你也可以通过路径 \\wsl$\<发行版名称>
在资源管理器中访问 WSL 的文件。
2. 在 Linux 中使用 Windows 命令
是的,你可以直接从 WSL 中运行 Windows 命令。例如:
explorer.exe .
会在资源管理器中打开当前目录。
3. 在 PowerShell 中使用 Linux 命令
WSL 允许你直接从 PowerShell 运行 Linux 命令。例如:
wsl ls
5. 在实际开发中使用 WSL
操作 Web 服务器
你可以在 WSL 中启动 Nginx 或 Apache 服务器,然后通过 Windows 上的浏览器访问它。例如:
1. 在 WSL 中安装 Nginx:
sudo apt update
sudo apt install nginx
2. 启动服务器:
sudo service nginx start
3. 打开浏览器并访问 http://localhost
。
安装 Docker
WSL2 完全支持 Docker。安装 Windows 上的 Docker Desktop,它将自动与 WSL2 集成。
6. 有用的WSL命令
查看已安装的发行版:
wsl --list --verbose
显示所有已安装的发行版、它们的版本和状态。
停止所有发行版:
wsl --shutdown
删除发行版(小心操作!):
wsl --unregister <发行版名称>
在特定目录中打开WSL:
wsl ~/
7. 常见错误及其解决方法
1. 错误: "WSL is not enabled"
如果你看到提示 WSL 没有启用,请确认你已经在“控制面板”或通过 PowerShell 激活了它。另外,检查你的处理器是否支持虚拟化(它需要在 BIOS 中启用)。
2. 命令 wsl --install
无法运行
这可能是由于 Windows 的版本过时。请将操作系统更新到最新版本。
3. Docker 无法启动的问题
确保你的发行版使用的是 WSL2,而不是 WSL1。你可以通过以下命令检查:
wsl --list --verbose
4. 无法通过 WSL 连接到服务器
确保 Windows 的防火墙没有阻止连接。
8. 实践任务
- 安装 WSL 和 Ubuntu 发行版。
- 检查你的发行版的 WSL 版本:
wsl --list --verbose
在 WSL 中创建一个文本文件
test.txt
,路径为/mnt/c/Users/你的名字/Documents
:echo "你好, WSL!" > /mnt/c/Users/你的名字/Documents/test.txt
通过 PowerShell 查看文件内容:
type C:\Users\你的名字\Documents\test.txt
加星号任务:安装 Nginx,运行它并在浏览器中打开
http://localhost
。
那么,你刚刚完成了从安装到实际使用 Linux 在 Windows 上的整个过程。使用这个工具,你可以轻松快速地为任何任务部署工作环境。
GO TO FULL VERSION