首页 > 其他分享 >WSL学习笔记

WSL学习笔记

时间:2024-08-12 23:04:50浏览次数:6  
标签:Windows Ubuntu WSL 笔记 学习 -- Linux 安装

WSL学习笔记

适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,可用于在 Windows 计算机上运行 Linux 环境,而无需单独的虚拟机或双引导。 WSL 旨在为希望同时使用 Windows 和 Linux 的开发人员提供无缝高效的体验。

本笔记主要介绍WSL2

WSL的版本区别

WSL有两个版本,两个版本不仅在名字上,在技术内核上也有巨大区别:

  1. WSL1:是较早的版本,通过将Linux内核调用转换为Windows内核调用,使得Linux应用程序可以在Windows上运行。虽然性能比起传统虚拟机要好,但还是有一些局限性,例如I/O性能相对较低。对于WSL1你可以理解为将Linux翻译成Windows进行执行,本质上并不运行真正的Linux的系统,因此存在着缺陷。
  2. WSL2:是较新的版本,使用了真正的Linux内核,运行在轻量级的虚拟机中。它提供了更好的性能,尤其是在文件I/O操作上。同时,WSL 2能够更好地兼容Linux应用程序,几乎所有在Linux上能运行的应用程序都可以在WSL 2上运行。实际上整个Windows和Linux都运行在基于Hyperv的虚拟化平台上,本质上是一个大虚拟机,你可以理解为WSL2上运行的是真正的Linux系统,具有完整Linux内核的系统。
功能 WSL 1 WSL 2
Windows 和 Linux 之间的集成
启动时间短
与传统虚拟机相比,占用的资源量少
可以与当前版本的 VMware 和 VirtualBox 一起运行
托管 VM
完整的 Linux 内核
完全的系统调用兼容性
跨 OS 文件系统的性能
systemd 支持
IPv6 支持

WSL2使用的前置条件

CPU虚拟化

Windows功能

其中有两个功能:

  1. 虚拟化平台
  2. 适用于Linux的Windows子系统

安装系统

直接使用powershell进行安装:

wsl --install --web-download

其中web-download是其中的一个选项,此选项会从微软的在线服务器下载并安装最新的WSL版本、Linux内核和相关组件,而不依赖于你当前Windows系统中的Windows Update或预装包。这个选项非常有用,尤其是在你希望确保安装最新版本的WSL时,或者当你的系统配置限制了使用本地或离线安装时。

如果在国内环境的话建议使用,减少了因为网络问题而无法下载的问题

此时下载完成之后会显示:

之后安装要求输入root用户名与密码:

安装完成之后会自动进入终端:

即默认WSL安装完成

其他版本WSL安装

目前WSL2已经支持几乎所有的Linux发行版,我们可以通过以下指令进行查看:

wsl --list --online

常见的官方支持的发行版有:

NAME FRIENDLY NAME
Ubuntu Ubuntu
Debian Debian GNU/Linux
kali-linux Kali Linux Rolling
Ubuntu-18.04 Ubuntu 18.04 LTS
Ubuntu-20.04 Ubuntu 20.04 LTS
Ubuntu-22.04 Ubuntu 22.04 LTS
Ubuntu-24.04 Ubuntu 24.04 LTS
OracleLinux_7_9 Oracle Linux 7.9
OracleLinux_8_7 Oracle Linux 8.7
OracleLinux_9_1 Oracle Linux 9.1
openSUSE-Leap-15.6 openSUSE Leap 15.6
SUSE-Linux-Enterprise-15-SP5 SUSE Linux Enterprise 15 SP5
SUSE-Linux-Enterprise-Server-15-SP6 SUSE Linux Enterprise Server 15 SP6
openSUSE-Tumbleweed openSUSE Tumbleweed

其他一些发行版可以通过其他方式进行安装,可以通过下载root文件手动安装,本文在这里不做介绍

这里我们安装Kali-linux

wsl --install kali-linux --web-download

其安装过程与安装Ubuntu类似

WSL的基本指令

1.系统镜像管理

wsl --list -v

这里显示了WSL中所有的子系统以及运行状态

其中*代表目前WSL中默认启动的系统

  1. 默认系统的切换
wsl --set-default <NAME>

这里的NAME指的是系统的名字,请务必注意区分大小写,比如说我现在切换为Ubuntu

wsl --set-default Ubuntu

之后我们再执行1中的命令:

此时默认系统以及被切换为Ubuntu

  1. 系统的启动

PowerShell右上箭头,后打开后选中你想要运行的系统:

启动速度很快,几乎秒开(看人缘 偶尔快):

如果你想要通过命令行启动系统,可以使用:

wsl -d <NAME>

  1. 系统的关闭
  • 直接关闭终端

  • 使用exit,出现logout即为退出登录成功

  1. 系统的删除
wsl --unregister <NAME>

  1. 镜像的导出
wsl --export <NAME> <EXPORT NAME>

之后再对应文件夹内即可看到tar文件,进入文件后不难看出其包含了基本的Linux文件结构

如果你想要切换其他的压缩格式,比如说7zrar等等,你可以更改文件后缀名,比如说Ubuntu.7z等等

  1. 镜像的导入
wsl --import <NAME> <导入路径> <导出镜像路径>

之后进入导入路径查看:

这更加证实了WSL2是基于Hyperv的既定事实

关于子系统的一些

  1. 磁盘挂载

Windows下的C盘与D盘是作为磁盘直接挂载在WSL下的,这意味着两个文件是相通的

但由于WSLI/O性能很弱,如果你需要进行大量文件拷贝的操作的话,可以采取内网传输的方法

  1. 包管理器

之前说了WSL中运行的是完整Linux,因此我们可以直接使用包管理器进行安装,不过需要注意的是,使用前需要先进行

apt update

之后再进行安装,不然有可能会出错

  1. 显卡直连

WSL本身支持显卡直连,你需要安装以下步骤:

  • 你需要安装适用于 Windows 的最新 NVIDIA 驱动程序,确保其支持 CUDA 和 WSL 2。

  • 安装CUDA工具包:

    • 添加 CUDA 存储库
    sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 7FA2AF80
    sudo add-apt-repository "deb http://developer.download.nvidia.com/compute/cuda/repos/ubuntu2204/x86_64/ /"
    sudo apt-get update
    
    • 安装 CUDA 工具包
    sudo apt-get install nvidia-cuda-toolkit
    
  • 安装驱动

sudo apt-get install nvidia-utils-535
  • 验证
nvidia-smi

  1. GUI显示

这个对我来说没啥用意义,不写了。。。

参考文章:适用于 Linux 的 Windows 子系统文档
超详细的WSL教程:Windows上的Linux子系统

如果你感兴趣的话不妨访问:小树 | WSL学习笔记

标签:Windows,Ubuntu,WSL,笔记,学习,--,Linux,安装
From: https://www.cnblogs.com/juniortree/p/18355902

相关文章

  • HTML并不简单读书笔记-2
    第二章a元素最简单的a标签,点击后跳转到对应的页面,再加上herf属性<ahref="http://www.w3school.com.cn">W3School</a>rel属性浏览器支持30多个rel属性下面介绍重点关注的值rel=“nofollow”这是seo的常用策略,告诉搜索引擎不要追踪这个链接。在以下两种情況下需要......
  • 【知识宝库】打造编程学习“知识宝库”:高效笔记策略与整理艺术
    在编程学习的征途上,每一位探索者都渴望拥有一座坚实的知识宝库,那里收藏着解决问题的钥匙、创新思维的火花以及深入技术的阶梯。而构建这样一座宝库,高效且系统的笔记记录与整理方法无疑是不可或缺的基石。本文将带您深入探索如何打造个性化的编程学习笔记系统,让知识不再是散落......
  • HarmonyOS NEXT 学习笔记6--prop装饰器-单向传递
    1.代码:@Entry@ComponentstructComponentQuestionCase{@Statemoney:number=999999;build(){Column(){Text('father:'+this.money)Button('存100块').onClick(()=>{this.money+=100})......
  • 学习Linux第十八天:高级的编程
    structFILE{}流: FILE*   数据从文件当中流入和流出所体现出来的字节   流叫做流   流的分类:      二进制流:2001\n         二进制数据的流      文本流:         ASCII码数据的流\n\t FILE结构定......
  • 24/8/12算法笔记 复习_线性回归
    importnumpyasnp#导入包X=np.array([[1,1],[2,1]])#构造矩阵y=np.array([14,10])np.linalg.solve(X,y)#linalg是线性代数,用于求解线性方程AX=b,solve计算线性代数回归问题X.T#转置a=X.T.dot(X)#矩阵乘法B=np.linalg.inv(a)#求逆矩阵fromsklearn.line......
  • 24/8/11算法笔记AdaBoost多分类原理展示
    importnumpyasnpfromsklearn.ensembleimportAdaBoostClassifierfromsklearnimportdatasetsfromsklearn.model_selectionimporttrain_test_splitfromsklearnimporttreeimportgraphviz加载数据X,y=datasets.load_iris(return_X_y=True)X_train,X_test......
  • DEVCON初级使用教程结构,你可以根据自己的需求深入学习每个部分。深入了解 DEVCON 的中
    DEVCON(DeviceConsole)是一个用于管理Windows设备驱动程序和设备的命令行工具。它提供了一个用于列出、启用、禁用、安装、卸载和更新设备驱动程序的接口。以下是一个DEVCON初级使用教程的大纲,帮助你了解如何开始使用这个工具。DEVCON初级使用教程大纲1. 介绍什么是DEVCON?......
  • 前端小白编程学习之整理笔记篇
    如何高效记录并整理编程学习笔记?在编程学习的海洋中,高效的笔记记录和整理方法就像一张珍贵的航海图,能够帮助我们在浩瀚的知识中找到方向。如何建立一个既能快速记录又易于回顾的笔记系统?如何在繁忙的学习中保持笔记的条理性?让我们一起探讨如何打造属于自己的编程学习“知识宝......
  • UE5学习笔记12-为角色添加蹲下的动作
    一、一点说明    1.蹲下使用了ACharacter类中Crouch();函数,函数功能是先检查是否存在运动组件,将bool类型的变量变为true,该变量代表是想要蹲下。      2.通过源码可知存在是否蹲下的bool变量bIsCrouched如图,如果对:1有疑问请搜索C++位域二、代码实现 ......
  • 高斯消元 学习笔记
    用于求解方程组。给定\(n\)个关于\(m\)个变量的方程组,需要你判断该方程组是否无解、有无数解、有唯一解,并输出唯一的解。考虑使用消元法。我们枚举一个变量\(i\),从所有没有被操作过的方程式中选出一个,然后用它对其他没有被操作过的方程式进行消元,并将被选中的那个方程式视......