[Explained] 如何在 Windows 上使用 Linux 命令

在 Windows 系统上体验 Linux 命令的多种方法

作为一名软件开发者,你或许会面临一个选择:是使用自带各种工具、游戏和软件的 Windows 系统,还是选择特别适合开发人员的 Linux 系统?如果只有一台电脑,就必须在这两者之间做出抉择。

如果你想同时使用这两个操作系统,通常需要进行双系统启动,但这既有风险又复杂,或者使用虚拟机,但这会降低性能。幸运的是,现在有一种方法可以避免在这两者之间做出选择。既然可以轻松同时拥有两者,何必二选一呢?

Windows 操作系统允许你在同一台计算机上同时利用 Linux 和 Windows 的强大功能。 你可以在 Windows 中直接运行 Linux 应用程序和 Linux 命令。 在 Windows 上执行 Linux 命令的能力,绝对是一项颠覆性的创新。

首先,它让你在一台机器上免费获得两个操作系统的优点。你既可以访问 Windows 自带的所有软件,体验其美观的设计和用户友好性,同时仍然可以享受 Linux 命令行强大的功能。 这允许你自动化任务,使用各种开源工具,并直接从 bash shell 访问 Windows 文件和可执行文件。

此外,在 Windows 上运行 Linux 命令,意味着你可以使用 Linux 包管理器轻松安装和管理软件;你可以方便地处理跨平台项目,并使用像 SSH、grep、sed 和 awk 等 Linux 实用工具。

最后,从 Windows 使用 Linux 命令为 Windows 用户提供了一个更平缓的 Linux 入门方式,使你可以在需要时更轻松地过渡到完全使用 Linux 操作系统。 实现这一切的工具就是 Windows 的 Linux 子系统。

Windows 的 Linux 子系统 (WSL)

Windows 的 Linux 子系统 (WSL) 是一个于 2016 年首次发布的 Windows 功能。WSL 允许你直接在 Windows 上安装真正的 Linux 发行版,并直接在 Windows 上运行 Linux 文件系统、命令行工具、图形界面应用程序和实用工具,而无需安装虚拟机或双启动 Linux 和 Windows。

要使用 WSL,你需要运行 Windows 11 或 Windows 10 版本 2004 及更高版本(内部版本 19041 及更高版本)。 WSL 支持 x64 和 Arm CPU。

WSL 允许安装各种 Linux 发行版,例如 Ubuntu、OpenSUSE、Kali、Debian、Fedora、Fedora remix 和 Arch Linux。所有这些发行版都可以从 Microsoft Store 进行安装。

通过 WSL,你可以在 Windows 上获得集成的 Linux 体验,从而可以从 Windows 调用 Linux 可执行文件,并从 Windows 查看 Linux 文件。你还可以从 Linux Bash Shell 调用 Windows 可执行文件并访问 Windows 文件。

Windows 的 Linux 子系统的工作原理

从本质上讲,WSL 不是模拟器或虚拟器,而是充当 Windows 和 Linux 之间的兼容层。从技术角度来看,WSL 允许你运行未经修改的 ELF64 Linux 二进制文件,从而提供无缝的集成体验。

为此,WSL 提供了一个由 Microsoft 开发的 Linux 内核接口,该接口位于 Windows 内核之上。此 Linux 内核在 Windows 内部运行,并基于 Hyper-V 核心技术构建。

Hyper-V 是一种原生管理程序,它是一款可以创建和运行虚拟机的软件。Hyper-V 提供硬件虚拟化,这意味着虚拟机运行在虚拟硬件上。基于核心技术构建的 WSL 使其能够提供改进的文件系统性能和更好的 Linux 应用程序支持。

为了运行未经修改的 ELF64 Linux 二进制文件,WSL 将 Linux 系统调用从 Linux 二进制文件转换为 Windows 系统调用,以便以原生速度执行。

在 WSL 提供的运行于 Windows 上的 Linux 内核接口上,可以安装不同的 Linux 发行版。这些发行版提供了类似容器的环境,其中包含运行 Linux 应用程序所需的所有依赖项和包管理。Linux 应用程序在这些发行版中运行。

为什么要使用 Windows 的 Linux 子系统?

如果你以前使用虚拟机在 Windows 上运行 Linux,你可能会想知道 WSL 可以为你提供哪些虚拟机无法提供的功能。首先,WSL 使用的计算机资源比运行虚拟机要少得多。

WSL 使用更少的存储空间和内存,并且不会像虚拟机那样占用大量的 CPU 使用率。WSL 还允许你从 Linux 访问 Windows 文件,该功能允许你将 Linux 命令行工具应用于与 Windows 应用程序相同的文件。

WSL 的另一个关键特性是运行 Linux 非常容易。虚拟化过程可能很复杂,而 WSL 则避免了这些复杂性。此外,它可以轻松安装各种 Linux 发行版,并从一个 Linux 发行版切换到另一个。

对于开发人员而言,WSL 可以让你享受两全其美的体验。你既可以运行 Linux 并访问所有使用 Linux 开发的独特编程工具和开源资源,同时仍然可以享受 Windows 自带的全部功能。

使用 WSL,你不会遇到兼容性问题,因为你使用的是仅在 Linux 上运行的工具。此外,两个操作系统之间的切换将变得更快、更容易,而且不需要复杂的设置或额外的计算机。

要开始使用 Linux 命令,一种简单的入门方式是在计算机上安装 Windows Subsystem For Linux。

如何为 Linux 安装 Windows 子系统

1. 确认你的计算机满足以下要求:它应该是运行 Windows 11 或 Windows 10 版本 2004 及更高版本的 64 位计算机。Windows 10 版本应构建为 19041 及更高版本。 确保你已连接到互联网。

2. 打开“开始”菜单,搜索 PowerShell,选择“以管理员身份运行”,以管理员权限打开。

3. 在打开的 PowerShell 上输入以下命令

wsl --install

该命令将启用运行 WSL 所需的所有功能,并执行操作系统可能需要进行的任何更新,以确保 WSL 的顺利运行。 首先将安装虚拟机平台,最后安装 WSL。请耐心等待,因为这可能需要一些时间。

4. 该过程完成后,你可以通过再次运行 `wsl –install` 来确认 WSL 已安装。 如果你看到如下所示的 WSL 帮助页面,则表明安装成功。

5. 下一步是安装 Linux 发行版以与 WSL 一起使用。 要查看可以安装的所有可用发行版,请在 PowerShell 中输入以下命令:

wsl --list --online

你将得到可用发行版的列表,如下所示:

6. 从列表中,你可以通过输入命令来安装任何你想要的 Linux 发行版:

wsl --install -d <distribution NAME>

例如,要安装 Ubuntu 22.04 长期支持版本,请执行以下命令:

wsl --install -d Ubuntu-22.04

等待该过程完成。然后,你会看到一条成功完成的消息,Ubuntu 终端窗口将打开,如下所示:

输入你的用户名和密码以设置你的环境。请记住,在 Linux 中,当你在终端中输入密码时,你不会在键入时看到任何字符。但是,你的输入仍然会被捕获。

从 Powershell 安装发行版的另一种方法是打开 Microsoft Store 并搜索 WSL。 你将看到所有可用的发行版。单击“获取”安装所需的发行版。

7. 输入用户名和密码后,你将能够在 Windows 上访问 Ubuntu,如下所示:

随意开始使用你最喜欢的 Linux 命令。

每当你想打开已安装的 Linux 发行版时,都可以从“开始”菜单轻松找到它。

在文件资源管理器中,你还会注意到一个名为 “Linux” 的新存储位置,其中存储了所有发行版和 Linux 文件。

适用于 Linux 的 Windows 子系统是在 Windows 上运行 Linux 命令的绝佳方法。如果你无法在计算机上安装 WSL(可能是因为你的计算机不满足安装 WSL 所需的要求),你可以安装 WSL 的其他替代方案。接下来,让我们看看两个可以帮助你在 Windows 上运行 Linux 命令的模拟器。

使用 Cygwin 在 Windows 上使用 Linux 命令

Cygwin 是一套庞大的 GNU 和开源工具集合,它们协同工作,在 Windows 上提供类似于 Linux 发行版的功能。

Cygwin 是一个 UNIX 模拟器,它在 Windows 上提供 UNIX shell 环境,使你可以访问 Linux 生态系统中的各种工具。

正如他们的口号所说,Cygwin 的目标是在 Windows 上提供 Linux 的感觉。但是,Cygwin 不允许你在 Windows 上运行 Linux 应用程序。Cygwin 适用于从 Windows 7 开始的所有 x86_64 版本的 Windows。

要安装 Cygwin:

1. 导航至他们的 安装 页面,下载 `setup-x86_64.exe` 文件并运行。

2. 浏览安装向导屏幕上的前几个屏幕,单击“下一步”保留默认选择。这将使下载源保持从互联网安装,使用默认建议的根目录和软件包目录,并使用系统代理设置。

3. 选择下载 Cygwin 软件包的站点时,单击提供的任何链接,然后单击“下一步”。

4. 选择要安装的软件包时,保留默认部分。也就是 “Under view”;确保选择的是“类别”,然后单击“下一步”。 这将带你进入“查看并确认更改”屏幕。单击“下一步”开始安装 Cygen。

5. 等待安装过程完成。

6. 单击“完成”完成安装过程。如果你不想在桌面和“开始”菜单上创建 Cygwin 图标,可以取消选中这些框。

7. 你可以在 “开始” 菜单或桌面上找到 Cygwin 的图标。 双击启动 Cygwin。

8. Cygwin 将打开一个 bash shell 窗口,你可以在其中开始使用 Linux 命令,就像在 Linux 计算机上一样。

使用 QEMU 在 Windows 上使用 Linux 命令

QEMU 是一个通用的开源机器模拟器和虚拟器。 QEMU 通常用作系统仿真器,它提供另一台计算机的虚拟模型,你可以在其中运行与当前计算机不同的操作系统。

要安装 QEMU:

1. 前往 下载 页面,下载 64 位计算机的 `qemu setup.exe` 文件。下载完成后运行它。

2. 你将看到 QEMU 设置向导窗口。单击“下一步”继续。在接下来的屏幕中,同意许可协议,单击“下一步”安装默认选择的组件,然后选择安装位置或保留默认选择的本地磁盘 C。为了简单起见,请勿更改安装位置。

3. 等待安装完成,然后单击“完成”。

4. 下一步是将 QEMU 安装位置的文件路径添加到我们的环境变量中。为此,请导航至“此电脑”->“本地磁盘 C”->“Program Files”->“qemu”,如下所示:

5. 突出显示并复制计算机中安装 QEMU 的位置的文件路径。

6. 打开 Windows 设置,单击“系统”,滚动左侧菜单栏,然后选择“关于”。 在“关于”页面中,单击“高级系统设置”以打开“系统属性”窗口。

7. 在“系统属性”窗口的“高级”选项卡中,单击“环境变量”。

8. 在“环境变量”页面中,双击“Path”,添加 QEMU 的安装路径。

9. 单击“新建”,然后粘贴你复制的路径 URL,然后单击“确定”进行添加。单击“环境变量”窗口和“系统属性”窗口上的“确定”以保存更改并关闭窗口。

10. 要确认 QEMU 已成功安装并将其路径成功添加到环境变量中,请打开 PowerShell 并执行以下命令:

qemu-img --help

如果两个过程都成功,你将看到这样一个窗口,显示已安装的 qemu-img 版本及其帮助页面。

11. 要开始模拟 Linux 操作系统,你必须下载要使用 QEMU 模拟的 Linux 发行版的 .iso 映像。然后,从 PowerShell 导航到 .iso 文件的存储位置并执行:

qemu-system-x86_64.exe -boot d -cdrom <linux_distro_name> -m <RAM_TO_ALLOCATE>

要从我下载的 iso 文件模拟 Ubuntu 22.04.3,我将导航到 .iso 文件所在的位置并执行:

qemu-system-x86_64.exe -boot d -cdrom ubuntu-22.04.3-desktop-amd64.iso -m 2048

这将打开一个 bash shell 窗口,你可以在其中开始使用 Linux 命令。

结论

在 Windows 上使用 Linux 时,请务必记住,虽然你可以从 Linux 访问 Windows 文件,反之亦然,但文件路径可能需要调整。

某些特定于操作系统的命令可能无法按预期工作,两个操作系统之间的文件权限处理方式不同,并且你需要管理两个系统的资源分配,以确保两个系统都有足够的资源来无缝运行。此外,请确保始终备份重要文件,以防出现问题。

你还可以探索 WSL2 的功能、安装过程以及如何有效地使用它。