Windows就是Linux:WSL带来全新Linux开发体验
点击此处查看最新的网赚项目教程
作为Windows系统内置的一个革命性新功能,Windows Subsystem for Linux(WSL)让开发者在Windows环境中直接体验Linux的强大功能。你可以在Windows上一键安装各种Linux发行版,运行命令行工具、编程语言环境、数据库和服务器等,还能运行Linux GUI应用程序并与Windows桌面无缝集成。最新的WSL 2版本更是在文件系统、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 有着不同的版本,其中 WSL 2 现在是默认版本
比较 WSL 1 和 WSL 2
功能
WSL 1
WSL 2
Windows 和 Linux 之间的集成
✅
✅
启动时间短
✅
✅
与传统虚拟机相比,占用的资源量少
✅
✅
可以与当前版本的 VMware 和 VirtualBox 一起运行
✅
❌
托管 VM
❌
✅
完整的 Linux 内核
❌
✅
完全的系统调用兼容性
❌
✅
跨 OS 文件系统的性能
✅
❌
systemd 支持
❌
✅
IPv6 支持
✅
✅
WSL和VirtualBox,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 应用商店 下载 Ubuntu 20.04 安装即可。
你可以从 打开 microsoft store安装, 快捷键 win + q 输入 microsoft Store 打开微软商店 搜索 ubuntu 点击获取。ubuntu 有很多的版本,建议选择较新的版本,版本之间的差距不是很大。
如果你是中国用户,因为网络原因 无法打开microsoft store 可以去官网上安装。
下载完成后一路点击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 键,输入 %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) 和全局跨所有 WSL 2 发行版 (.wslconfig) 配置高级设置选项。 本指南将介绍每个设置选项、何时使用每种文件类型、存储文件的位置、示例设置文件和提示。
wsl.conf 和 .wslconfig 之间有什么差别?
参考:WSL 中的高级设置配置[14]
可以为已安装的 Linux 发行版配置设置,使它们在你每次启动 WSL 时自动应用,有两种方法:
这两种文件类型都用于配置 WSL 设置,但存储文件的位置、配置的范围、可配置的选项类型,以及运行发行版的 WSL 版本都会影响应选择的文件类型。
WSL 1 和 WSL 2 使用不同的体系结构运行,并会影响配置设置。 WSL 2 作为轻型虚拟机 (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-20240428115043790Linux访问windows文件
windows的磁盘被挂载到了/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 发行版
window terminal
如果你在你的window电脑中有多个window子系统, 你可以下载 window terminal 来进行管理 。
使用 Windows 终端可以打开多个标签页或窗口窗格,显示并快速切换多个 Linux 发行版或其他命令行(PowerShell、命令提示符、Azure CLI 等)。你可以使用独特的配色方案、字体样式、大小、背景图片和自定义键盘快捷键完全自定义你的终端。
下载地址:
如果你安装过程出现了错误, 可能需要你把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.下载并安装 wsl 2 的升级软件
1.Linux 内核更新包会安装最新版本的WSL 2 Linux 内核[17],以便在 Windows 操作系统映像中运行 WSL。 (若 要运行Microsoft Store 中的 WSL[18]并更频繁地推送更新,请使用wsl.exe –install或wsl.exe –update。)
2.运行上一步中下载的更新包。 (双击以运行 – 系统将提示你提供提升的权限,选择“是”以批准此安装。)
3.将 WSL 2 设置为默认版本
打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:
wsl --set-default-version 2
4.然后重新打开 ubuntu,显示正在安装就没有问题了
2. Windows下WSL Ubuntu中登录root账号的密码
今天刚从Microsoft Store中下载了Ubuntu 20.04 LTS,使用的时候发现只能注册自己的个人账户,而不是root账户,那也就是说自己一开始设置的账户密码无法登录root账户,因此想到可能是系统有默认的密码,后面上网查看才知道,原来是这样的:
Ubuntu 的默认 root 密码是随机的,即每次开机都有一个新的 root 密码。
我们可以在终端输入命令sudo passwd,然后输入当前用户的密码,终端会提示我们输入新的密码并确认,此时的密码就是 root 新密码。
修改成功后,输入命令su root,再输入新的密码就 ok 了。
引用链接
[1]安装 Linux 发行版:
[2]Microsoft Store:#wsl-in-the-microsoft-store
[3]导入 Microsoft Store 中不可用的 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]WSL 2 Linux 内核:
[18]Microsoft Store 中的 WSL:#wsl-in-the-microsoft-store
———END———
限 时 特 惠: 本站每日持续更新海量各大内部创业教程,一年会员只需98元,全站资源免费下载 点击查看详情
站 长 微 信: qs62318888
主题授权提示:请在后台主题设置-主题授权-激活主题的正版授权,授权购买:RiTheme官网