Skip to content
本页目录

如何在 Windows 上用 WSL 2 快速体验丝般顺滑的 Linux

1 什么是WSL2

WSL全称为Windows Subsystem for Linux,官网译为:适用于 Linux 的 Windows 子系统 (WSL)

官方文档直达:适用于 Linux 的 Windows 子系统文档 | Microsoft Docs

  • WSL1和WSL2的比较:
功能WSL 1WSL 2
Windows 和 Linux 之间的集成
启动时间短
与传统虚拟机相比,占用的资源量少
可以与当前版本的 VMware 和 VirtualBox 一起运行
托管 VM
完整的 Linux 内核
完全的系统调用兼容性
跨 OS 文件系统的性能
  • 为什么要WSL2

官方解释:可让开发人员直接在 Windows 上按原样运行 GNU/Linux 环境(包括大多数命令行工具、实用工具和应用程序),且不会产生传统虚拟机或双启动设置开销。

我的观点:日常生活中程序的开发离不开Linux,而Windows的GUI界面又是我们常用的(微信、Office等)。我们可以有很多种方式使用Linux

单主机双系统:能实实在的运行不同、完整的操作系统;切换系统都需要重启,麻烦

双主机双系统:物理隔离方式,真正实现双系统;真的有人那么有钱吗?开发程序用两台电脑?

远程服务器:和单主机双系统一样;性能、带宽、流量有局限

虚拟机VMware:和单主机双系统一样;资源消耗大、启动慢、运行效率低。我用过之后觉得有的时候卡死也不知道怎么弄。

WSL!!!几乎能运行完整的操作系统,资源消耗小、启动快、切换快 有些软件可能不支持…(后续有什么毛病再更新)

重点:Windows与Linux子系统将共用同一文件系统!!! 我们可以在WSL中使用三剑客命令查询分析windows文档、日志、使用shell命令或者bash脚本运行存储在windows中的linux程序、甚至在WSL中创建docker容器,在windows下使用docker desktop进行可视化管理。

总结:WSL2让我们既拥有Windows的操作界面又拥有Linux的命令行工具。

  • 启用“虚拟机平台”

WSL 2 需要启用 Windows 10 的 “虚拟机平台” 特性。它独立于 Hyper-V,并提供了一些在 Linux 的 Windows 子系统新版本中可用的更有趣的平台集成。

要在**Windows 10(2004)**上启用虚拟机平台,请以管理员身份打开 PowerShell 或 cmd 并运行:

shell
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart

要在**Windows 10(1903,1909)**上启用虚拟机平台,请以管理员身份打开 PowerShell或 cmd 并运行:

shell
Enable-WindowsOptionalFeature -Online -FeatureName VirtualMachinePlatform -NoRestart

为了确保所有相关部件都整齐到位,您应该在此时重启系统,否则可能会发现事情没按预期进行。

2 安装WSL2

本次安装环境

处理器 Intel® Core™ i5-10210U CPU @ 1.60GHz 2.11 GHz

机带 RAM 8.00 GB (7.79 GB 可用)

系统类型 64 位操作系统, 基于 x64 的处理器

操作系统 Windows 11 家庭中文版

注意:本次安装之前没安装过WSL和Ubuntu。

2.1 检查是否可以安装

您的电脑需要以下配置:

Windows 10 2020年5月(2004) 版, Windows 10 2019年5月(1903) 版,或者 Windows 10 2019年11月(1909) 版

一台支持 Hyper-V 虚拟化的计算机

查看是否支持Hyper-V的方法:

打开cmd,输入

shell
systeminfo

查看Hyper-V信息

比如我的电脑就可以支持

下面将会介绍安装在C盘和D盘得方法,自行选择一种就行

2.2 安装WSL(默认安装是在C盘)

用管理员身份运行PowerShell

shell
wsl --install

–install 命令执行以下操作:

  • 启用可选的 WSL 和虚拟机平台组件

  • 下载并安装最新 Linux 内核

  • 将 WSL 2 设置为默认值

  • 下载并安装 Ubuntu Linux 发行版(可能需要重新启动),默认是安装在 C 盘的(如果要安装其他盘可以看下面的操作)

注意:上述命令仅在完全未安装 WSL 时才有效,如果运行 wsl --install 并查看 WSL 帮助文本,请尝试运行 wsl --list --online 以查看可用发行版列表并运行 wsl --install -d以安装发行版。

等待一会会

顺便查看了一下可以支持的linux系统,大便、Kali、OpenSUSE、乌班图都有,默认安装Ubuntu。

shell
wsl --list --online

安装了好一会儿了。。。。发现还是在85.7%,等不下去了CTRL+C了。

重新安装,这次安装指定的系统

注意!!!!如果命令行还是不行的话,可以直接在 Windows 应用商店 下载 Ubuntu 20.04 安装即可。

查看版本

shell
wsl -l -v

如果你之前安装过 WSL,当前不是 WSL 2 版本,可以通过以下命令设置 WSL 的默认版本:

shell
wsl --set-version Ubuntu-20.04 2

重启,然后成功了!

配置Linux

接下来打开已安装的Ubuntu,这时候会提示你配置用户和密码

配置完毕!即可享用

在PowerShell中执行wsl即可进入,测试一下,用命令 cd / && ls -lrt 查看所有文件,如下(是不是很熟悉)

2.3 ubuntu20.04(如果需要安装D盘)

下面是将 Ubuntu20.04 安装在D盘的部分:

首先先在你喜欢的盘创建一个文件夹,比如D:\Linux,因为这样即便是重装系统我也不用重新装软件。

然后进到这个文件夹 下载ubuntu20.04

shell
Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_2004.2020.424.0_x64.appx -OutFile Ubuntu20.04.appx -UseBasicParsing

我演示用的是d:\xiazai\linux1,等他下载完即可,文件有4G多,等一会是正常的

然后执行下面四条命令。如下图

shell
Rename-Item .\Ubuntu20.04.appx Ubuntu.zip Expand-Archive .\Ubuntu.zip -Verbose cd .\Ubuntu\ .\ubuntu2004.exe

这个图我是直接进了wsl,因为我已经安装过了。你们第一次安装的话会弹出一个黑框框等几分钟这样,然后输你想要的入用户名和密码就行

当然这个时候可能会报错,什么样的错误都可能,我以前遇到过很多次!

我发现最好的方法就是,按照这个文章上开头的那几步重新执行一遍(确保没有遗漏),然后重启,一定要重启!重启!!之后再尝试,一般就解决了。

最后可以在powershell里面 , 看看自己安装的版本

3 更新一下镜像源

shell
#进入linux终端执行sudo vim /etc/apt/sources.list

将官方的源都注释掉,换成下面两个之一即可(我的是Ubuntu20.04,别的版本或者源可以自行网上搜)

shell
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiversedeb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiversedeb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiversedeb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiversedeb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiversedeb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse

清华源

shell
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiversedeb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiversedeb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

如果遇到问题:

Certificate verification failed: The certificate is NOT trusted——更新Ubuntu20.04、Debian11的过程中遇到的证书验证失败问题。

解决办法:

更改源文件,将所有的https改成http

shell
sudo vim /etc/apt/sources.list

重新更新源

shell
sudo apt update

安装/更新证书ca-certificates

shell
sudo apt install --reinstall ca-certificates

参照步骤一将镜像源文件改回https

再次更新源

shell
sudo apt update && sudo apt upgrade

大功告成

4 安装Windows Terminal

Windows Terminal能帮助我们管理命令行工具、PowerShell和WSL等Shell用户的工具,能为我们提供最佳的 WSL 体验。

下载方式

https://www.microsoft.com/store/productId/9N0DX20HK701

MicroSoft Store (微软商店)找关键字 Windows Terminal

打开微软应用商店,搜索“Terminal”,安装,打开后的界面是这样的:

默认打开的是 PownerShell 终端,我们可以设置为默认打开 Ubuntu 终端。点击标签右边的下拉三角,选择设置:

会在左下角看到一个打开 JSON 文件按钮,然后选择用记事本打开,在 profiles->list 中找到 Ubuntu 的 guid 并复制。

将它粘贴为文件开头的 defaultProfile 的值:

4.1 安装 oh-my-zsh

在 ubuntu 下终端执行

  • 安装 zsh:
shell
sudo apt update sudo apt install git zsh -y

然后查看

可以看到 zsh 已经安装上去,再执行

shell
chsh -s /bin/zsh
  • 安装oh my zsh所需的字体
shell
git clone https://github.com/powerline/fonts.gitcd fonts./install.sh
  • 安装oh my zsh

国内下载地址:wget https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh

给 install.sh 添加执行权限

chmod +x install.sh

修改 install.sh 的镜像

vi install.sh

将以下

REPO=$

REMOTE=${REMOTE:-https://github.com/${REPO}.git}

更改为

REPO=$

REMOTE=${REMOTE:-https://gitee.com/${REPO}.git}

保存退出,执行 install.sh 就将 oh-my-zsh 安装上。

4.2 安装皮肤

安装完 oh-my-zsh 后,编辑 ~/.zshrc 文件,将主题设置为 agnoster robbyrussell:

img

再做一点点美化:把命令行的机器名称去掉,并调整用户名的背景色。编辑 agnoster 主题文件:

vi ~/.oh-my-zsh/themes/agnoster.zsh-theme

把 92 行修改为:

prompt_segment green black "%(!.%{%F{yellow}%}.)%n"

修改后如下:

关闭 Terminal 再重新打开,效果如下:

4.3 安装历史命令自动补全

shell
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions

4.4 安装高亮显示

shell
git clone git://github.com/zsh-users/zsh-syntax-highlighting $ZSH_CUSTOM/plugins/zsh-syntax-highlighting

安装完改一下配置文件

vim ~/.zshrc

把plugins中两个刚刚下载好的插件名字加进去,然后保存退出

plugins=( git zsh-autosuggestions zsh-syntax-highlighting )

最后更新一下配置文件

source .zshrc

执行之后注销重新登陆即可

5 卸载wsl子系统

首先查看本机安装了哪些子系统:

wsl --list --all

其次:

wsl --unregister <System_name>