Windows Subsystem for Linux:让Linux在Windows下无缝运行

随心笔谈1年前发布 编辑
138 0

Windows 和 Linux 是全球使用最广泛的操作系统。 然而,两者截然不同。 Windows 是 Microsoft 的商业产品,Microsoft 是世界上最大的软件公司之一。 相比之下,作为“自由开源软件”(FOSS)的 Linux 是成千上万志愿者的共同努力。

Windows 主要用于私人和商业环境。 Linux 运行在专业人士和个人的服务器和计算机上。 许多开发人员使用 Linux。 此外,开放的操作系统是安卓手机操作系统的基础。

适用于 Linux 的 Windows 子系统 (WSL) 使 Windows 用户可以访问数以千计的免费软件包和开源工具。 以前,这需要在专用的双引导 Linux 环境中设置虚拟机或重新启动计算机。 但是,使用 WSL,只需单击几下即可。

Windows Subsystem for Linux:让Linux在Windows下无缝运行

Windows Subsystem for Linux

什么是适用于 Linux 的 Windows 子系统?

适用于 Linux 的 Windows 子系统是一个兼容层,它允许直接从 Windows 命令行执行本机 Linux 程序。 具体来说,WSL 允许以标准的可执行和可链接格式 (ELF) 执行 64 位 Linux 二进制文件。

适用于 Linux 的 Windows 子系统从 Windows 10 开始可用。但微软对让 Windows 用户更轻松地从他们熟悉的桌面环境中使用 Linux 工具的兴趣可以追溯到更远的地方。 例如,WSL 源于“Microsoft Windows Services for UNIX”(SFU/Interix)项目,而该项目又是对已经集成在 Windows NT 中的“POSIX 子系统”的进一步发展。 对于适用于 Linux 2 (WSL2) 的 Windows 子系统,这种开发仍在继续。

在 WSL 发布之前,用户必须尝试结合 Windows 和 Linux 世界的最佳方面。 原则上,有两种方法可以使 Linux 程序在 Windows 下运行:

  1. 使用虚拟机。 一个完整的 Linux 安装作为 Windows 下的虚拟电脑。 该方法对用户友好,可以充分利用任何 Linux 应用程序,但需要一些硬件资源。 此外,在两个操作系统上运行的程序之间的互换性有限。
  2. 使用 Linux 运行环境 Cygwin。 它安装在 Windows 下,允许使用许多流行的 Linux 程序。 使用 Cygwin 可以在 Windows 和 Linux 程序之间进行交换,但范围有限。

此外,用户可以将 Linux 设置为与现有 Windows 安装并行。 但是,这种设置称为双启动,需要重新启动计算机才能切换到相应的操作系统。 因此,使用此选项无法在 Windows 和 Linux 运行的程序之间进行交换。

适用于 Linux 的 Windows 子系统不需要虚拟机,因此性能卓越。 但是,板载没有完整的 Linux 内核,因此并非所有应用程序都受支持。 特别是,WSL 本身不允许执行具有图形用户界面 (GUI) 的 Linux 程序。 也存在用于此的方法,但它们需要额外的安装和配置步骤。

使用 WSL 有什么要求?

您不需要任何特殊的系统要求即可使用适用于 Linux 的 Windows 子系统。 您的计算机只需要有 x64 或 ARM 处理器,几乎所有现代系统都是这种情况。 此外,您需要 64 位 Windows 10 版本 1709 或更高版本。 如果您不确定您使用的是哪个 Windows 版本和版本,您可以通过以下步骤进行检查:

  • 按 Windows 徽标键 + [R],在出现的文本框中键入“winver”,然后按 [回车键]。
  • 或者,单击“开始”>“设置”>“系统”>“关于”>“Windows 规范”并阅读其中的值。

如何激活/安装适用于 Linux 的 Windows 子系统?

在您的系统上激活适用于 Linux 的 Windows 子系统的过程很简单。 我们将在此处为家庭用户展示该过程。 进行如下:

  1. 单击开始 > 控制面板 > 程序 > 程序和功能 > 启用或禁用 Windows 功能。
  2. 勾选“适用于 Linux 的 Windows 子系统”。重启你的电脑。
  3. 打开 Microsoft Store 并搜索“Linux”。 您将看到一系列可用的 Linux 发行版。
  4. 单击所需的 Linux 发行版,然后单击“安装”。 如果您不确定哪个发行版适合您,大眼仔建议安装“Ubuntu Linux”。
  5. 安装完成后,点击“开始”。
  6. 在出现的窗口中,包在第一次启动时被下载并解压。 这可能需要几分钟的时间。 最后,系统将提示您为新的 Linux 安装设置用户名和密码。

注意
您可以与 WSL 并行运行多个 Linux 发行版。 在这种情况下,为每个分发创建一个单独的用户帐户。

作为前两个步骤的替代方法,您还可以使用以下 PowerShell 命令为 Linux 启用 Windows 子系统。 请注意,您必须以管理员身份执行命令。 执行后,重新启动计算机并按照我们从第 4 步开始的说明进行操作。

1
EnableWindowsOptionalFeature Online FeatureName MicrosoftWindowsSubsystemLinux

使用适用于 Linux 的 Windows 子系统的第一步是什么?

激活适用于 Linux 的 Windows 子系统并安装 Linux 发行版后的第一步是什么? 这取决于 WSL 的目的。 Web 开发人员通常需要与应用程序开发人员不同的应用程序配置文件。 大眼仔将在这里总结一些经常需要的第一步。

  • 显示和控制已安装的 WSL

在命令行上使用 Windows wsl.exe 工具来控制已安装的 Linux 发行版。 打开命令行并输入以下命令以显示 wsl 命令的可用选项:

1
wsl help
  • 使用适用于 Linux 的 Windows 子系统显示 Linux 发行版

您可以使用适用于 Linux 的 Windows 子系统来安装和使用多个 Linux 发行版。 在命令行上运行以下命令以获取已安装发行版的概览:

1
wsl list verbose
  • 使用适用于 Linux 的 Windows 子系统启动默认的 Linux 发行版

要默认启动 Linux 发行版,只需执行不带任何其他参数的 wsl 命令:

1
wsl

之后,您将以 Linux 用户身份登录,并可以直接访问已知的 Linux 命令。

  • 使用 WSL 更新 Linux 发行版

首次登录 Linux 发行版后,请使用以下命令更新已安装的软件包:

1
sudo apt update && sudo apt upgrade

由于这是一个在 Linux 级别具有系统范围影响的操作,因此该命令以“sudo”开头。 然后,您将必须输入在安装 Linux 发行版期间设置的密码。

  • 使用适用于 Linux 的 Windows 子系统安装 Git

Git 是使用最广泛的代码项目版本控制工具。 要在 Linux 发行版中安装 Git,请使用以下命令:

1
sudo apt install git
  • 使用适用于 Linux 的 Windows 子系统从 Windows 使用 Linux 工具

您已经了解了如何使用 wsl 工具登录到 Linux 发行版,然后使用 Linux 命令。 除此之外,还有另一种方法。 您可以直接从 Windows shell 运行 Linux 命令。 例如,这对于在 PowerShell 脚本中使用 Linux 命令很有用。 只需将 Linux 命令添加到 wsl 工具的调用中:

1
2
# use Linux-Command `ls` to output contents of the current directory
wsl ls la
  • 使用适用于 Linux 的 Windows 子系统从 Linux 命令提示符使用 Windows 工具

如您所见,您可以使用 WSL Linux 命令直接从 Windows 命令行或 PowerShell 运行脚本。 这也适用于其他方式:您可以在 Linux 命令提示符或 Linux 脚本中使用 Windows 命令行工具。 命令行工具可以像常规 Linux 命令一样组合。

这里我们将使用 Windows 工具 ipconfig.exe 来显示网络信息,并结合 Linux 工具 grep 来过滤 IPv4 结果并剪切以删除列字段:

1
ipconfig.exe | grep IPv4 | cut d: f2

在哪里使用适用于 Linux 的 Windows 子系统

WSL 主要用于在命令行和脚本中使用 Linux 命令。 它还可用于链接 Windows 和 Linux 工具。 这使得 WSL 与开发人员高度相关。 特别是对于 Web 开发和开源编程,启用 WSL 会更容易。 启用适用于 Linux 的 Windows 子系统后,您可以执行以下操作:

  • 从 Microsoft Store 安装一个或多个 Linux 发行版。
  • 使用流行的命令行工具,例如“grep”、“sed”和“awk”。
  • 运行其他 ELF-64 二进制文件。
  • 为 Bash shell 和其他 shell 环境运行脚本。
  • 使用基于终端的应用程序,例如“vim”、“emacs”和“tmux”。
  • 使用编程语言和相关工具,例如 NodeJS、Javascript、Python、Ruby、C/C++、C# & F#、Rust、Go 等。
  • 在您的机器上运行 Linux 服务,例如 SSHD、MySQL、Apache、lighttpd、MongoDB、PostgreSQL 等。
  • 使用 Linux 发行版的包管理器安装其他软件。
  • 使用类 Unix 命令行调用 Windows 应用程序。
  • 在 Windows 上运行 Linux 应用程序。
© 版权声明

相关文章