Windows 和 Linux 是全球使用最广泛的操作系统。 然而,两者截然不同。 Windows 是 Microsoft 的商业产品,Microsoft 是世界上最大的软件公司之一。 相比之下,作为“自由开源软件”(FOSS)的 Linux 是成千上万志愿者的共同努力。
Windows 主要用于私人和商业环境。 Linux 运行在专业人士和个人的服务器和计算机上。 许多开发人员使用 Linux。 此外,开放的操作系统是安卓手机操作系统的基础。
适用于 Linux 的 Windows 子系统 (WSL) 使 Windows 用户可以访问数以千计的免费软件包和开源工具。 以前,这需要在专用的双引导 Linux 环境中设置虚拟机或重新启动计算机。 但是,使用 WSL,只需单击几下即可。
什么是适用于 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 下运行:
- 使用虚拟机。 一个完整的 Linux 安装作为 Windows 下的虚拟电脑。 该方法对用户友好,可以充分利用任何 Linux 应用程序,但需要一些硬件资源。 此外,在两个操作系统上运行的程序之间的互换性有限。
- 使用 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 子系统的过程很简单。 我们将在此处为家庭用户展示该过程。 进行如下:
- 单击开始 > 控制面板 > 程序 > 程序和功能 > 启用或禁用 Windows 功能。
- 勾选“适用于 Linux 的 Windows 子系统”。重启你的电脑。
- 打开 Microsoft Store 并搜索“Linux”。 您将看到一系列可用的 Linux 发行版。
- 单击所需的 Linux 发行版,然后单击“安装”。 如果您不确定哪个发行版适合您,大眼仔建议安装“Ubuntu Linux”。
- 安装完成后,点击“开始”。
- 在出现的窗口中,包在第一次启动时被下载并解压。 这可能需要几分钟的时间。 最后,系统将提示您为新的 Linux 安装设置用户名和密码。
注意
您可以与 WSL 并行运行多个 Linux 发行版。 在这种情况下,为每个分发创建一个单独的用户帐户。
作为前两个步骤的替代方法,您还可以使用以下 PowerShell 命令为 Linux 启用 Windows 子系统。 请注意,您必须以管理员身份执行命令。 执行后,重新启动计算机并按照我们从第 4 步开始的说明进行操作。
1
|
Enable–WindowsOptionalFeature –Online –FeatureName Microsoft–Windows–Subsystem–Linux
|
使用适用于 Linux 的 Windows 子系统的第一步是什么?
激活适用于 Linux 的 Windows 子系统并安装 Linux 发行版后的第一步是什么? 这取决于 WSL 的目的。 Web 开发人员通常需要与应用程序开发人员不同的应用程序配置文件。 大眼仔将在这里总结一些经常需要的第一步。
- 显示和控制已安装的 WSL
在命令行上使用 Windows wsl.exe 工具来控制已安装的 Linux 发行版。 打开命令行并输入以下命令以显示 wsl 命令的可用选项:
1
|
wsl —help
|
- 使用适用于 Linux 的 Windows 子系统显示 Linux 发行版
您可以使用适用于 Linux 的 Windows 子系统来安装和使用多个 Linux 发行版。 在命令行上运行以下命令以获取已安装发行版的概览:
1
|
- 使用适用于 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 应用程序。