不想装虚机或双系统,在Win下使用WSL是一个不错的选择。
WSL是什么?
WSL,全称为“Windows Subsystem for Linux”,译为“Windows的Linux子系统”。简单来说,它允许您在Windows操作系统上直接运行Linux的命令行工具、实用程序和应用程序,而无需启动完整的Linux操作系统或设置虚拟机。
WSL的起源和目的
WSL起初是为了帮助开发者在Windows上更方便地进行Linux开发而设计的。在过去,当开发者需要在Windows和Linux之间切换时,他们可能需要使用双系统启动或设置虚拟机。这样既麻烦又消耗资源。WSL的出现,使得在Windows上运行Linux程序变得简单轻便。
WSL的工作原理
WSL并不是一个完整的Linux操作系统,它没有Linux内核。它实际上是一个兼容层,可以将Linux的系统调用转换为Windows的系统调用。这意味着,当您在WSL中运行Linux程序时,它实际上是在Windows上运行的,但给用户的感觉就像在Linux上运行一样。
WSL的优势和局限性
集成性:
WSL允许您在相同的文件系统中访问Windows和Linux文件,这意味着您可以在Windows的文件管理器中轻松地浏览和编辑Linux文件。
性能:
与传统的虚拟机相比,WSL的性能开销较小,因为它直接在Windows上运行,而不需要模拟整个硬件环境。
便捷性:
安装和设置WSL相对简单,用户可以轻松地从Windows商店中获取他们喜欢的Linux发行版。
局限性
由于它不是一个完整的Linux环境,一些特定的应用程序或工具可能无法在WSL上运行。
此外,WSL目前主要针对命令行应用程序。
Win11下安装的过程
确保安装最新版本Win11
在开始之前,请务必安装最新版本的 Windows 11,并包含所有可用更新。
按 Windows + I 打开“设置”,移至“Windows 更新”部分,然后单击“检查更新”。
下载并安装任何可用更新并重新启动 Windows(如果出现提示)。
打开“虚拟机平台”功能
单击“开始”按钮,键入“Windows 功能”,然后单击结果中的“打开或关闭 Windows 功能”。向下滚动选项列表,选中标记为“虚拟机平台”的框,单击“确定”并重新启动计算机(如有必要)。
安装 Windows 子系统(WSL)
在 Windows 11 中,你可以通过一个简单的命令来安装 WSL:
# 安装默认版本, 默认版本是 Ubuntu
# 此命令将启用运行 WSL
# 并安装 Linux 的 Ubuntu 发行版所需的功能。
wsl --install
注意,需要在管理员模式下运行, PowerShell 或 Windows 命令提示行都可以,完成后重启计算机。
https://learn.microsoft.com/zh-cn/windows/wsl/install
如果要安装指定版本的,命令如下:
# 安装指定版本的:
wsl --install -d <Distribution Name>
# 使用 wsl 来安装 Debian。
wsl --install -d Debian
# 查看可可用 Linux 发行版列表
wsl -l -o
我这里要安装一个早期的 Ubuntu1604 版本, 则是用下面的命令:
https://shenxiaojian.com/unable-to-install-ubuntu-in-microsoft-store/
# Ubuntu1604
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1604 -OutFile Ubuntu.appx -UseBasicParsing
# Ubuntu1804
Invoke-WebRequest -Uri https://aka.ms/wsl-ubuntu-1804 -OutFile Ubuntu.appx -UseBasicParsing
待命令执行完后,在执行目录下,可以发现一个叫Ubuntu.appx的文件,双击即可安装。
WSL 安装目录
WSL (Windows Subsystem for Linux) 默认安装在 Windows 文件系统的一个特殊路径下,具体为 C:\Users[你的用户名]\AppData\Local\Packages,并且每个 Linux 发行版都会在其下的一个子目录中。
在WSL中访问Windows文件系统
在 WSL 中,你可以通过以下方式来访问 Windows 的文件系统:
所有的 Windows 盘符都被挂载到 /mnt/ 下。例如,C 盘被挂载到 /mnt/c/,D 盘被挂载到 /mnt/d/,以此类推。
举例来说,如果你想访问 C 盘下的 Windows 文件夹,你可以在 WSL 中输入以下命令:
cd /mnt/c/Windows/
你也可以从 Windows 的文件浏览器中访问 WSL 的文件系统。在 Windows 文件浏览器的地址栏中,输入 \wsl$,然后选择你的 Linux 发行版。
请注意,尽管从 WSL 访问 Windows 文件是安全的,但直接从 Windows 访问或修改 WSL 的文件可能会导致问题。
如果需要在两个系统之间交换文件,建议将文件复制到 Windows 的文件系统,然后再从 WSL 访问。
DNS问题
当你在WSL (Windows Subsystem for Linux) 下的 Ubuntu 使用 wget 或其他命令访问一个地址时,如果出现 "unable to resolve host address" 这样的错误,但在 Windows 主机上可以正常访问,可能是DNS导致的。
以下是解决方法:
更新 /etc/resolv.conf:
WSL 使用 /etc/resolv.conf 文件来解析 DNS。有时,这个文件可能不会正确更新,导致 DNS 解析问题。
尝试手动设置一个 DNS,例如 Google 的公共 DNS。编辑这个文件:
sudo nano /etc/resolv.conf
添加以下行:
nameserver 8.8.8.8
nameserver 8.8.4.4
保存并退出。
总结
总的来说,WSL是一个强大的工具,特别是对于那些需要在Windows上进行Linux开发的人来说。它消除了在两个操作系统之间切换的需要,提供了一个快速、轻量级的Linux开发环境。如果您是一个开发者或者只是想在Windows上体验Linux,WSL都是一个很好的选择。