1、什么是WSL2
WSL全称为Windows Subsystem for Linux,官网译为:适用于 Linux 的 Windows 子系统 (WSL)。
官方文档直达:适用于 Linux 的 Windows 子系统文档 | Microsoft Docs。
- WSL1和WSL2的比较:
功能 | WSL 1 | WSL 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 并运行:
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
要在 Windows 10(1903,1909)上启用虚拟机平台,请以管理员身份打开 PowerShell或 cmd 并运行:
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。
(1)检查是否可以安装
您的电脑需要以下配置:
Windows 10 2020年5月(2004) 版, Windows 10 2019年5月(1903) 版,或者 Windows 10 2019年11月(1909) 版。
一台支持 Hyper-V 虚拟化的计算机。
查看是否支持Hyper-V的方法:
打开cmd,输入:
systeminfo
查看Hyper-V信息。
比如我的电脑就可以支持。
下面将会介绍安装在C盘和D盘得方法,自行选择一种就行。
(2)安装WSL(默认安装是在C盘)
用管理员身份运行PowerShell。
wsl --install
–install 命令执行以下操作:
- 启用可选的 WSL 和虚拟机平台组件。
- 下载并安装最新 Linux 内核。
- 将 WSL 2 设置为默认值。
- 下载并安装 Ubuntu Linux 发行版(可能需要重新启动),默认是安装在 C 盘的(如果要安装其他盘可以看下面的操作)。
注意:上述命令仅在完全未安装 WSL 时才有效,如果运行 wsl --install 并查看 WSL 帮助文本,请尝试运行 wsl --list --online 以查看可用发行版列表并运行 wsl --install -d以安装发行版。
等待一会会。
顺便查看了一下可以支持的linux系统,大便、Kali、OpenSUSE、乌班图都有,默认安装Ubuntu。
wsl --list --online
安装了好一会儿了。。。。发现还是在85.7%,等不下去了CTRL+C了。
重新安装,这次安装指定的系统。
注意:如果命令行还是不行的话,可以直接在 Windows 应用商店 下载 Ubuntu 20.04 安装即可。
查看版本:
wsl -l -v
如果你之前安装过 WSL,当前不是 WSL 2 版本,可以通过以下命令设置 WSL 的默认版本:
wsl --set-version Ubuntu-20.04 2
重启,然后成功了!
配置Linux。
接下来打开已安装的Ubuntu,这时候会提示你配置用户和密码。
配置完毕!即可享用。
在PowerShell中执行wsl即可进入,测试一下,用命令 cd / && ls -lrt 查看所有文件,如下(是不是很熟悉)。
(3)ubuntu20.04(如果需要安装D盘)
下面是将 Ubuntu20.04 安装在D盘的部分:
首先先在你喜欢的盘创建一个文件夹,比如D:\Linux,因为这样即便是重装系统我也不用重新装软件。
然后进到这个文件夹 下载ubuntu20.04。
Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_2004.2020.424.0_x64.appx -OutFile Ubuntu20.04.appx -UseBasicParsing
我演示用的是d:\xiazai\linux1,等他下载完即可,文件有4G多,等一会是正常的。
然后执行下面四条命令。如下图:
Rename-Item .\Ubuntu20.04.appx Ubuntu.zip
Expand-Archive .\Ubuntu.zip -Verbose
cd .\Ubuntu\
.\ubuntu2004.exe
这个图我是直接进了wsl,因为我已经安装过了。你们第一次安装的话会弹出一个黑框框等几分钟这样,然后输你想要的入用户名和密码就行。
当然这个时候可能会报错,什么样的错误都可能,我以前遇到过很多次!
我发现最好的方法就是,按照这个文章上开头的那几步重新执行一遍(确保没有遗漏),然后重启,一定要重启!重启!!之后再尝试,一般就解决了。
3、更新一下镜像源
最后可以在powershell里面 , 看看自己安装的版本。
#进入linux终端执行
sudo vim /etc/apt/sources.list
将官方的源都注释掉,换成下面两个之一即可(我的是Ubuntu20.04,别的版本或者源可以自行网上搜)。
deb https://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-security main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-proposed main restricted universe multiverse
deb https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.aliyun.com/ubuntu/ focal-backports main restricted universe multiverse
清华源:
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
deb-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。
sudo vim /etc/apt/sources.list
重新更新源。
sudo apt update
安装/更新证书ca-certificates。
sudo apt install --reinstall ca-certificates
参照步骤一将镜像源文件改回https。
再次更新源。
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 的值:
(1)安装 oh-my-zsh
在 ubuntu 下终端执行。
- 安装 zsh:
sudo apt update
sudo apt install git zsh -y
然后查看。
可以看到 zsh 已经安装上去,再执行。
chsh -s /bin/zsh
- 安装oh my zsh所需的字体。
git clone https://github.com/powerline/fonts.git
cd 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=${REPO:-ohmyzsh/ohmyzsh}
REMOTE=${REMOTE:-https://github.com/${REPO}.git}
更改为:
REPO=${REPO:-mirrors/oh-my-zsh}
REMOTE=${REMOTE:-https://gitee.com/${REPO}.git}
保存退出,执行 install.sh 就将 oh-my-zsh 安装上。
(2)安装皮肤
安装完 oh-my-zsh 后,编辑 ~/.zshrc 文件,将主题设置为 agnoster robbyrussell:
再做一点点美化:把命令行的机器名称去掉,并调整用户名的背景色。编辑 agnoster 主题文件:
vi ~/.oh-my-zsh/themes/agnoster.zsh-theme
把 92 行修改为:
prompt_segment green black "%(!.%{%F{yellow}%}.)%n"
修改后如下:
关闭 Terminal 再重新打开,效果如下:
(3)安装历史命令自动补全
git clone git://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
(4)安装高亮显示
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
执行之后注销重新登陆即可。
首先查看本机安装了哪些子系统:
wsl --list --all
其次:
wsl --unregister <System_name>
到其路径下将全部文件删除即可。