当前位置: 首页 > 编程日记 > 正文

Windows下的Linux子系统(WSL)

什么是WSL
WSL:Windows subsystem for Linux,是用于Windows上的Linux的子系统
作用很简单,可以在Windows系统中获取Linux系统环境,并完全直连计算机硬件,无需通过虚拟机虚拟硬件,不会影响Windows系统本身

为什么使用WSL
WSL作为自Windows10以来的全新特性正逐步颠覆开发人员的选择
传统方式下,获取Linux操作系统环境,是安装完整的虚拟机,如VMware
但使用WSL,是可以以非常轻量化方式,得到Linux的系统环境

WSL部署(重点哦!)

WSL为Windows自带功能,我们只需要把它开启即可
在搜索里找到控制面板,点击程序,点击启用或关闭Windows功能,向下滑动找到适用于Linux的Windows子系统点击确定进行重启

 在微软商店,搜索Ubuntu,点击下载即可,等待安装成功就可以去使用了

(额...失败了)

错误提示是WSL2的问题(抱歉,没有截图)

debug吧,通过微软商店里的评论,我们可以发现我们打开所有关于Hyper-V的项目和虚拟机相关项目

 但是我用的是Windows11家庭版没有Hyper-V的选项啊!(该怎么办呢>-<)

通过查找,我找到了这篇文章:Win10 家庭中文版安装Docker(Win10家庭版 +Hyper-V+Docker) - 柠檬草不孤单 - 博客园 (cnblogs.com)

 

pushd "%~dp0"

dir /b %SystemRoot%\servicing\Packages\*Hyper-V*.mum >hyper-v.txt

for /f %%i in ('findstr /i . hyper-v.txt 2^>nul') do dism /online /norestart /add-package:"%SystemRoot%\servicing\Packages\%%i"

del hyper-v.txt

Dism /online /enable-feature /featurename:Microsoft-Hyper-V-All /LimitAccess /ALL

鼠标右键选中“以管理员身份运行”,窗口运行执行代码,直到运行结束,显示提示是否重启,输入Y,重启电脑

 再次打开(还是不行>_<++)(抱歉,我把这个错误忘记了)

(难道就这样放弃吗-------------------------------------------------------------当然不可能)

我查看了微软WSL文档:旧版 WSL 的手动安装步骤 | Microsoft Learn

1.我们会发现当我们启用Windows下的Linux子系统时WSL就已经安装启用完成了(所以第一步安装跳过>v<)

2.对于第二步(想必看这篇文章的用户都知道自己的设备能否使用WSL2吧)

若要更新到 WSL 2,需要运行 Windows 10及以上。

  • 对于 x64 系统:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。
  • 对于 ARM64 系统:版本 2004 或更高版本,内部版本为 19041 或更高版本。

3.启用虚拟功能

安装 WSL 2 之前,必须启用“虚拟机平台”可选功能。 计算机需要虚拟化功能才能使用此功能。(从这可以看到,我们之前只启用了Windows下的Linux子系统)

以管理员身份打开 PowerShell 并运行:

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

重新启动计算机,以完成 WSL 安装并更新到 WSL 2。

4.下载Linux内核更新安装包

Linux 内核更新包会安装最新版本的 WSL 2 Linux 内核,以便在 Windows 操作系统映像中运行 WSL。 (若要运行 Microsoft Store 中的 WSL 并更频繁地推送更新,请使用 wsl.exe --install 或 wsl.exe --update。)

下载最新包:(如果使用的是 ARM64 计算机,请下载ARM64包)

安装完成后,请继续执行下一步 - 在安装新的 Linux 分发时,将 WSL 2 设置为默认版本。 (如果希望将新的 Linux 安装设置为 WSL 1,请跳过此步骤。)

5.将将 WSL 2 设置为默认版本

打开 PowerShell,然后在安装新的 Linux 发行版时运行以下命令,将 WSL 2 设置为默认版本:

wsl --set-default-version 2

 

打开刚才下载好的Ubuntu,可以运行了(完结撒花)

配置Ubuntu

配置好用户名和密码

其它根据个人习惯进行配置

祝贺你!(你成功的安装了Windows上的Linux的子系统)

(希望我的文章能帮助到你,文章还有很多不足,请在评论区指证,以促进我们共同进步,谢谢)

相关文章:

雪花算法生成ID、UUID生成ID和MySql自增ID优缺点分析

综上所述,UUID适用于分布式系统和需要保密的场景,雪花ID适用于分布式系统和高并发环境,MySQL自增ID适用于单机系统和高效查询的场景。根据具体的业务需求和系统架构,选择合适的主键类型。通过本文的介绍和对比,希望读者能够更好地理解在MySQL中不推荐使用UUID或者雪花ID作为主键的原因,并能够根据实际情况做出明智的选择。在MySQL中,使用自增整数作为主键是一种常见的做法,因为它具有较小的存储空间、高效的索引和自动增长的特性。然而,具体选择何种主键类型还是要根据具体的业务需求和数据特点来决定。

解决鸿蒙APP的内存泄漏

解决鸿蒙应用的内存泄漏问题需要开发者对鸿蒙框架和组件的生命周期有深入的了解,以确保资源能够在适当的时候得到释放。LeakCanary同样可以用于鸿蒙应用,它是一款流行的内存泄漏检测库,可以在应用运行时检测内存泄漏并提供详细的报告。使用这些工具来监测应用的内存使用情况,找到潜在的内存泄漏问题。在某些场景下,使用弱引用(WeakReference)可以帮助避免对对象的强引用,从而减少内存泄漏的可能性。通过模拟各种使用场景,找到潜在的内存泄漏问题。释放不再需要的资源,避免在组件销毁后仍然持有对它的引用。

鸿蒙HarmonyOS实战-ArkTS语言(基本语法)

&#128640;一、ArkTS语言基本语法 &#128270;1.简介 HarmonyOS的ArkTS语言是一种基于TypeScript开发的语言,它专为HarmonyOS系统开发而设计。ArkTS语言结合了JavaScript的灵活性和TypeScript的严谨性,使得开发者能够快速、高效地开发

保持Python程序在Linux上持续运行的几种方法

主要是用来定时执行任务的,但你也可以利用它来监控你的Python脚本是否正在运行,并在需要时重新启动它。是一个非常实用的命令,它可以让你的Python脚本在你退出shell后继续运行。总结起来,根据你的具体需求和环境,你可以选择以上任何一种方法来保持Python程序在Linux上的持续运行。使用这些工具,你可以随时断开SSH连接,而不用担心脚本会停止运行。通过这种方式,你可以安全地关闭终端,而脚本会继续在后台执行。这样,你的Python脚本就会作为系统服务运行,并且会在系统启动时自动启动。

深入浅出:Golang内存逃逸机制与性能优化技巧

内存逃逸发生在编译期间,当编译器判断一个变量的生命周期超出了其当前作用域,它会将该变量分配到堆上,而非栈上。这种情况虽然保证了程序的正确性,但会增加垃圾回收的负担,从而影响程序性能。通过本文的深入探讨,我们了解了Golang内存逃逸的基本原理,以及它是如何影响程序性能的。我们探讨了内存逃逸的常见场景,并通过具体的代码示例展示了这些问题的出现和解决方法。最重要的是,我们学习了一系列性能优化技巧,包括数据结构优化、减少不必要的指针使用、利用栈空间、使用内存池,以及定期进行性能分析。

【小白专用】C# 连接 MySQL 数据库

C# 连接 MySQL 数据库

Nas群晖中安装Cpolar实现内网穿透

Nas群晖中安装Cpolar实现内网穿透

Java基本数据类型/包装类/对象/数组默认值

不管程序有没有显示的初始化,Java 虚拟机都会先自动给它初始化为默认值。1、整数类型(byte、short、int、long)的基本类型变量的默认值为0。2、单精度浮点型(float)的基本类型变量的默认值为0.0f。3、双精度浮点型(double)的基本类型变量的默认值为0.0d。4、字符型(char)的基本类型变量的默认为 “/u0000”。5、布尔性的基本类型变量的默认值为 false。6、引用类型的变量是默认值为 null。7、数组引用类型的变量的默认值为 null。

Mybatis-Plus 自动属性填充与自定义Insert into语句顺序&MyBatisPlus中使用 @TableField完成字段自动填充

TableField注解是MyBatisPlus提供的用于实体类字段的注解,用于配置字段的属性和行为。其中,我们可以通过设置fill属性来实现字段自动填充的功能。通过使用@TableField注解和自定义的MetaObjectHandler填充处理器,我们可以很方便地实现字段的自动填充功能。在MyBatisPlus中,这个功能可以简化我们的开发工作,提高代码的可维护性和可读性。希望本文对大家在使用MyBatisPlus进行开发时有所帮助!

RocketMQ事务消息在订单创建和库存扣减的使用

前言 下单的过程包括订单创建,还有库存的扣减,为提高系统的性能,将库存放在redis扣减,则会涉及到Mysql和redis之间的数据同步,其中,这个过程还涉及到,必须是订单创建成功才进行库存的扣减操作。其次,还涉及到库存的同步,需要保证订单创建成功和redis里的库存都扣减成功,再将库存数据同步到M

Jetson AGX Orin安装archiconda、Pytorch

Jetson AGX Orin安装archiconda、Pytorch

深入解析JavaScript中new Function语法

Function是JavaScript中非常重要的内置构造函数,可以用来动态创建函数。new Function语法就是其中一种函数创建方式。但是new Function也有一定的缺点需要注意。本文将带您深入解析new Function语法,了解其应用场景以及需要注意的问题。​new Function是动态创建函数的一种方式,但也有缺点。为了更好的代码质量和性能,应该慎用或避免使用。对JavaScript函数和作用域有深入理解,可以编写出更简洁、高效、稳定的代码。​。

RTSP协议播放不兼容TPLINK摄像头的处理办法

报错的内容是Number of element invalid in origin string.两个数字中间多了一个空格,导致判断数据不等于6。所以数据输入的时候把中间的空格去掉一个即可。

苹果手机死机怎么重启?iPhone各机型强制重启方法来了!

iPhone手机莫名其妙死机怎么办?苹果手机死机怎么重启?看这里!小编针对不同iPhone机型,为大家提供了苹果手机死机后强制重启的方法。操作都很简单,有需要的朋友快来看看吧!

编码技巧:如何在Golang中高效解析和生成XML

在本文中,我们详细探讨了在Golang中高效处理XML的各个方面。从基础的XML概念到解析和生成XML文件的具体步骤,再到错误处理、调试技巧以及一些高级技巧和最佳实践,我们提供了一个全面的指南,旨在帮助读者掌握在Golang中处理XML的技能。理解Golang中XML处理的基本概念和方法。使用包来解析和生成XML文件。有效地处理常见的XML解析和生成中的错误。应用最佳实践和高级技巧来优化XML处理的性能和安全性。

鸿蒙HarmonyOS实战-工具安装和Helloworld案例

&#128640;前言 HarmonyOS是华为自主开发的操作系统,它在2020年9月正式发布。它最初被称为鸿蒙OS,后来更名为HarmonyOS。HarmonyOS旨在提供一种可在各种设备上无缝运行的统一操作系统,包括智能手机、平板电脑、智能穿戴设备、智能音箱、车载系统、智能家居设备等等。相比于其

TCP怎么保证传输过程的可靠性?

校验和发送方在发送数据之前计算校验和,接收方收到数据后同样计算,如果不一致,那么传输有误确认应答,序列号TCP进行传输时数据都进行了编号,每次接收方返回ACK都有确认序列号。超时重试这里是引用连接管理流量控制阻塞控制..._tcp传输过程可靠性

15.鸿蒙HarmonyOS App(JAVA)进度条与圆形进度条

/设置无限模式,运行查看动态效果。15.鸿蒙HarmonyOS App(JAVA)进度条与圆形进度条。//创建并设置无限模式元素。

javascript的变量存储机制和原理

js的变量存储机制

tomcat缺少awt支持的解决&java.lang.NoClassDefFoundError: Could not initialize class sun.awt.X11GraphicsEnvir

这几天,线上的项目出现了一个问题,就是二维码图片没有出来,考虑到图像都是用到awt库,可能是tomcat没有图像库的问题,给tomcat加上awt的支持就解决了。加在catalina.sh的开头的JAVA_OPTS环境变量中加入,然后重启搞定。

Java中 && 和|| 在同一个 if 里面使用 会出现啥问题&Java中运算符“|”和“||”以及“&”和“&&”区别

如果在同一个 if 语句中同时使用 && 和 || 运算符,可能会导致逻辑错误。这样就会导致逻辑错误,当 a 为 false,b 为 true 时,输出结果会是 “Goodbye”,而不是我们期望的 “Hello World”。假设有两个布尔类型的变量 a 和 b,我们要判断当 a 为 true 或者 b 为 true 时输出 “Hello World”,否则输出 “Goodbye”。:不论运算符左侧为true还是false,右侧语句都会进行判断,下面代码。

pandas进行数据计算时如何处理空值的问题?

我们在处理数据时经常会遇到空值的问题,比如有个学生某科弃考但是其他科有成绩的话,计算总分时便需要解决空值计算的问题

Windows系统搭建WebDAV服务并结合内网穿透实现公网访问本地文件

在Windows上如何搭建WebDav,并且结合cpolar的内网穿透工具实现在公网访问。WebDav是一种基于http的协议,允许用户在服务器上创建、修改、删除和移动文件,它的优点是可以方便的通过网络访问和管理文件,并且支持多用户协作,提供安全的加密机制。使用WebDav协议,用户可以将网盘挂载到本地电脑或手机上,可以直接操作网盘上的文件了。

鸿蒙APP闪退的问题

以下是一些建议的步骤,可以帮助你定位和解决鸿蒙应用闪退的原因,希望对大家有所帮助。使用鸿蒙开发者工具中的调试功能,尝试在应用发生闪退的情况下进行调试。这可以帮助你实时观察应用的状态,查看变量的值,并找到可能的问题。如果你的应用使用版本控制工具(如Git),回退到之前的稳定版本,看看问题是否仍然存在。有时,一个小的更改可能导致应用闪退,因此查看最近的代码修改是很重要的。如果应用使用第三方库或依赖,确保它们的版本与应用的其他部分兼容。使用鸿蒙开发者工具提供的崩溃分析服务,分析应用的崩溃报告。

如何用pthon连接mysql和mongodb数据库【极简版】

发现宝藏 前言 1. 连接mysql 1.1 安装 PyMySQL 1.2 导入 PyMySQL 1.3 建立连接 1.4 创建游标对象 1.5 执行查询 1.6 关闭连接 1.7 完整示例 2. 连接mongodb 2.1 安装 PyMongo 2.2 导入 PyMongo 2.3 建立连接 2.4

如何快速部署本地训练的 Bert-VITS2 语音模型到 Hugging Face

Hugging Face是一个机器学习(ML)和数据科学平台和社区,帮助用户构建、部署和训练机器学习模型。它提供基础设施,用于在实时应用中演示、运行和部署人工智能(AI)。用户还可以浏览其他用户上传的模型和数据集。Hugging Face通常被称为机器学习界的GitHub,因为它让开发人员公开分享和

uniap vue3 组件使用uni.createSelectorQuery() 获取dom报错

批量查询时,结果是按照查询的顺序返回的。由于vue3中没有this,所以使用。

linux环境中一次启动多个jar包,并且设置脚本开机自启

我们在通过jar启动项目时,有时候会比较多,启动会比较麻烦,需要编写shell脚本启动,将启动脚本存放在需要启动的jar包路径下。(文档存放在 /home/process_parent )PORTS 端口号,多个用空格隔开MODULES 模块,多个用空格隔开MODULE_NAMES 模块名称,多个用空格隔开。

将 RGB 转换为十六进制、生成随机十六进制

RGB是一种加法混色模式,它通过调节红、绿、蓝三个颜色通道的亮度来混合出各种颜色。对于每个颜色通道,取值范围是0到255,0表示该通道对应的颜色分量没有亮度,255表示达到最大亮度。

用python实现实现手势音量控制

要实现手势音量控制,您可以使用Python中的PyAutoGUI和pynput库。PyAutoGUI可以模拟鼠标和键盘操作,而pynput可以检测用户的输入事件。,用于检测键盘事件。如果用户按下ESC键,则停止监听鼠标和键盘事件并退出程序。最后,我们创建了鼠标和键盘监听器对象,并调用它们的。,用于模拟按下音量增加和音量减少键的操作。然后,我们定义了一个鼠标手势检测函数。,用于检测鼠标左键的点击事件。在程序的主循环中,我们使用。在这个示例代码中,我们定义了两个函数。函数等待用户按下ESC键退出程序。