作为Windows系统外置的一个革命性新功能,WindowsSubsystemforLinux(WSL)让开发者在Windows环境中直接体验Linux的强悍功能。你可以在Windows上一键安装各类Linux发行版,运行命令行工具、编程语言环境、数据库和服务器等,能够运行LinuxGUI应用程序并与Windows桌面无缝集成。最新的WSL2版本更是在文件系统、GPU借助、系统集成等多方面有突破性提高,成为Windows开发者高效使用Linux,增强跨平台开发效率的最佳拍档。
WSL
WSL是适用于Linux的Windows子系统(WSL)是Windows的一项功能,可用于在Windows计算机上运行Linux环境,而无需单独的虚拟机或双引导。WSL致力为希望同时使用Windows和Linux的开发人员提供无缝高效的体验。
•使用自己的GNU/Linux分发包管理器安装其他软件。
•使用类似于Unix的命令行shell调用Windows应用程序。
•在Windows上调用GNU/Linux应用程序。
•运行直接集成到Windows桌面的GNU/Linux图形应用程序[10]
•使用你的设备GPU加速Linux上运行的机器学习工作负载[11]。
WSL有着不同的版本,其中WSL2如今是默认版本
比较WSL1和WSL2
功能
WSL1
WSL2
Windows和Linux之间的集成
✅
✅
启动时间短
✅
✅
与传统虚拟机相比,占用的资源量少
✅
✅
可以与当前版本的VMware和VirtualBox一起运行
✅
❌
托管VM
❌
✅
完整的Linux内核
❌
✅
完全的系统调用兼容性
❌
✅
跨OS文件系统的性能
✅
❌
systemd支持
❌
✅
IPv6支持
✅
✅
WSL和VirtualBoxqq linux,VMware对比
特点
VMware
VirtualBox
WSL
类型
基于Hypervisor的虚拟化
基于Hypervisor的虚拟化
操作系统级虚拟化
虚拟化
在主机操作系统上运行虚拟机
在主机操作系统上运行虚拟机
在Windows内核上运行Linux
客操作系统支持
广泛的操作系统支持(Linux、Windows、macOS)
广泛的操作系统支持(Linux、Windows、macOS)
仅限于Linux发行版
资源使用
高
中等
低
复杂度
复杂的设置和管理
复杂的设置和管理
便于设置和管理
中级功能
快照、克隆、VMotion
快照、克隆、USB设备支持
无
与Windows集成
有限的集成
有限的集成
无缝集成
使用场景
运行非Linux操作系统、资源密集型工作负载
运行非Linux操作系统、资源密集型工作负载
运行Linux环境、DevOps、测试
接出来,我们谈谈WSL的安装使用。
windows设置1.打开控制面板点击程序
2.点击启用或则关掉windows功能
3.开启下边红框选项
4.以后确定而且重启
配置好了,之后可以安装ubuntu.
安装Ubuntu20.04到C盘
安装在C盘安装比较简单,直接在Windows应用商店下载Ubuntu20.04安装即可。
你可以从打开microsoftstore安装,快捷键win+q输入microsoftStore打开谷歌商店搜索ubuntu点击获取。ubuntu有好多的版本,建议选择较新的版本,版本之间的差别不是很大。
假如你是中国用户,由于网路缘由未能打开microsoftstore可以去官网上安装。
下载完成后一路点击next安装就可以,安装成功就你就可以在你的笔记本中看见你的Linux子系统了。
安装Ubuntu20.04到D盘
下边是将Ubuntu20.04安装在D盘的部份:
首先先在你喜欢的盘创建一个文件夹,例如D:wslubuntu20.04,我比较喜欢D盘,由于这样虽然是重装系统我也不用重新装软件。
之后进到这个文件夹下载ubuntu20.04
Invoke-WebRequest -Uri https://wsldownload.azureedge.net/Ubuntu_2004.2020.424.0_x64.appx -OutFile Ubuntu20.04.appx -UseBasicParsing
我演示用的是D:wslubuntu20.04,等他下载完即可,文件有432M多,等一会是正常的
之后执行下边四条命令。如右图
Rename-Item .Ubuntu20.04.appx Ubuntu.zip
Expand-Archive .Ubuntu.zip -Verbose
cd .Ubuntu
.ubuntu2004.exe
这个图我是直接进了wsl,由于我早已安装过了。大家第一次安装的话会弹出一个黑框框等几分钟这样,之后输你想要的入用户名和密码就行
最后可以在powershell上面,瞧瞧自己安装的版本
$ wsl -l -v
NAME STATE VERSION
* Ubuntu-20.04 Running 2
Ubuntu20.04:apt换源
由于我们国外访问内网比较慢,所以我通常是会换成清华源,另外请注意,wsl的Ubuntu证书是过期的,假如你想自动换源的话请记得先更新证书
不过我早已写好脚本了
直接在Linux里执行,即可换成清华源
wget https://gitee.com/lin-xi-269/tools/raw/master/os/QHubuntu20.04 && bash QHubuntu20.04
apt换源脚本
# https://mirrors.tuna.tsinghua.edu.cn/help/ubuntu/
VERSION=QH20.04
sudo apt-get install --only-upgrade ca-certificates
wget https://gitee.com/lin-xi-269/tools/raw/master/source/$VERSION
sudo mv /etc/apt/sources.list /etc/apt/sources.list.back
sudo mv $VERSION /etc/apt/sources.list
sudo apt-get update
sudo apt-get upgrade
apt源内容
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
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
# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
WSL中级用法1.限制显存
当计算机在使用时,CPU会将须要操作的数据传输到显存中进行操作,之后在操作完成后传递结果。WSL2(Linux的Windows子系统)虽然在不须要时也会保留大量RAM。它可以消耗Windows上总显存的50%或8GB,以较小者为准;在20175之前的版本上:Windows上总显存的80%。Vmmem负责虚拟机进程和显存管理。这意味着进程是虚拟机跳动的肾脏,Vmmem的所有活动和应用程序都在此发生。用户设置具有大量显存和CPU的虚拟机是Vmmem须要大量显存的主要诱因,由于这一般会造成她们消耗所有可用资源。
解决方式
按下Windows+R键linux 安装openssh,输入%UserProfile%并运行步入用户文件夹
新建文件.wslconfig,假如存在就覆盖,重新配置一个,之后记事本编辑:
# Settings apply across all Linux distros running on WSL 2
[wsl2]
memory=4GB
swap=2GB
localhostforwarding=true
参数解释:
WSL将测量那些文件是否存在、读取内容,并在每次启动WSL时手动应用配置设置。
保存文件后,重启WSL
wsl --shutdown
或则重启计算机也行
查看linux显存,步入linux输入如下:
$ free -h
total used free shared buff/cache available
Mem: 3.8Gi 79Mi 3.7Gi 0.0Ki 35Mi 3.6Gi
Swap: 2.0Gi 0B 2.0Gi
wsl.conf[12]和.wslconfig[13]文件用于针对每位发行版(wsl.conf)和全局跨所有WSL2发行版(.wslconfig)配置中级设置选项。本手册将介绍每位设置选项、何时使用每种文件类型、存储文件的位置、示例设置文件和提示。
wsl.conf和.wslconfig之间有哪些差异?
参考:WSL中的中级设置配置[14]
可以为已安装的Linux发行版配置设置,使它们在你每次启动WSL时手动应用,有两种方式:
这两种文件类型都用于配置WSL设置,但储存文件的位置、配置的范围、可配置的选项类型,以及运行发行版的WSL版本就会影响应选择的文件类型。
WSL1和WSL2使用不同的体系结构运行linux 安装openssh,并会影响配置设置。WSL2作为重型虚拟机(VM)运行,因而请使用让你还能控制显存或处理器使用量的虚拟化设置(使用Hyper-V或VirtualBox的话可能会比较熟悉)。
2.Xshell联接wsl2下的Ubuntu
卸载ssh,再安装ssh
sudo apt-get remove --purge openssh-server ## 先删ssh
sudo apt-get install openssh-server ## 在安装ssh
sudo rm /etc/ssh/ssh_config
sudo service ssh --full-restart
更改配置文件
sudo vim /etc/ssh/sshd_config
修改以下配置项
Port 6666
ListenAddress 0.0.0.0
PasswordAuthentication yes
PermitRootLogin yes
给wsl设置root密码
sudo passwd root
联接xshell
主机号设置为127.0.0.1,端标语设为刚才设置的6666,即可联接
3.Windows和Linux文件互访windows访问Linux目录
wsl2的套路变了,linux的文件系统整个是个镜像文件,启动系统后,这个文件系统映射到了\wsl$系统名下边
\wsl$Ubuntu-20.04
image-243790Linux访问windows文件
windows的c盘被挂载到了/mnt下,可以直接访问
$ ll /mnt
total 8
drwxr-xr-x 5 root root 4096 Apr 27 13:51 ./
drwxr-xr-x 19 root root 4096 Apr 28 11:03 ../
drwxrwxrwx 1 fly fly 4096 Apr 27 14:23 c/
drwxrwxrwx 1 fly fly 4096 Apr 27 13:51 d/
drwxrwxrwt 2 root root 60 Apr 28 11:03 wsl/
4.WSL常用命令
wsl --status //检查 WSL 状态
wsl //进入默认的发行版本,退出执行 exit
wsl -l -v //列出已安装的 Linux 发行版
wsl --terminate //终止指定的发行版或阻止其运行
例:wsl --terminate Ubuntu-18.04
wsl --shutdown //重启wsl服务
wsl --set-default //设置默认 Linux 发行版
wsl --set-version //将WSL版本设置为1或2
wsl --set-default-version //设置默认 WSL 版本
wsl --distribution --user //运行特定的Linux发行版
wsl -u , wsl --user //以特定用户的身份运行
wsl config --default-user //更改发行版的默认用户
wsl --unregister //注销或卸载 Linux 发行版
windowterminal
假如你在你的window笔记本中有多个window子系统,你可以下载windowterminal来进行管理。
使用Windows终端可以打开多个标签页或窗口窗棂,显示并快速切换多个Linux发行版或其他命令行(PowerShell、命令提示符、AzureCLI等)。你可以使用奇特的配色方案、字体款式、大小、背景图片和自定义按键快捷键完全自定义你的终端。
下载地址:
假如你安装过程出现了错误,可能须要你把wsl升级到wsl2
.ubuntu2004.exe
Installing, this may take a few minutes...
WslRegisterDistribution failed with error: 0x800701bc
Error: 0x800701bc WSL 2 ?????????????????? https://aka.ms/wsl2kernel
Press any key to continue...
1.复制并访问地址#step-4—download-the-linux-kernel-update-package
2.下载并安装wsl2的升级软件
1.Linux内核更新包会安装最新版本的WSL2Linux内核[17],便于在Windows操作系统映像中运行WSL。(若要运行MicrosoftStore中的WSL[18]并更频繁地推送更新,请使用wsl.exe--install或wsl.exe--update。)
2.运行上一步中下载的更新包。(双击以运行-系统将提示你提供提高的权限,选择“是”以批准此安装。)
3.将WSL2设置为默认版本
打开PowerShell,之后在安装新的Linux发行版时运行以下命令,将WSL2设置为默认版本:
wsl --set-default-version 2
4.之后重新打开ubuntu,显示正在安装就没有问题了
2.Windows下WSLUbuntu中登陆root帐号的密码
明天刚从MicrosoftStore中下载了Ubuntu20.04LTS,使用的时侯发觉只能注册自己的个人帐户,而不是root帐户,那也就是说自己一开始设置的帐户密码难以登陆root帐户,因而想到可能是系统有默认的密码,前面上网查看才晓得,原先是这样的:
Ubuntu的默认root密码是随机的linux 关机命令,即每次开机都有一个新的root密码。
我们可以在终端输入命令sudopasswd,之后输入当前用户的密码,终端会提示我们输入新的密码并确认,此时的密码就是root新密码。
更改成功后,输入命令suroot,再输入新的密码就ok了。
引用链接
[1]安装Linux发行版:
[2]MicrosoftStore:#wsl-in-the-microsoft-store
[3]导出MicrosoftStore中不可用的Linux发行版:
[4]建立你自己的顾客Linux发行版:
[5]NodeJS:
[6]Python:
[7]MySQL:
[8]MongoDB:
[9]PostgreSQL:
[10]GNU/Linux图形应用程序:
[11]GPU加速Linux上运行的机器学习工作负载:
[12]wsl.conf:#wslconf
[13].wslconfig:#wslconfig
[14]WSL中的中级设置配置:
[15].wslconfig:#wslconfig
[16]wsl.conf:#wslconf
[17]WSL2Linux内核:
[18]MicrosoftStore中的WSL:#wsl-in-the-microsoft-store