WSL2 的安装与运行 Linux 系统

前言

适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,允许开发人员在 Windows 系统上直接安装并使用 Linux 发行版。不用进行任何修改,也无需承担传统虚拟机或双启动设置的开销。

可以将 WSL 看作也是一个虚拟机,但是它更为便利。
比如

  • 你可以直接在 Windows 终端打开 Linux 终端,不需要像传统虚拟机那样:先运行虚拟机,进行一些配置,才能打开 Linux 系统
  • 可以直接利用 Linux 访问 Windows 系统的文件,不需要设置共享文件
  • … …

下面开始安装:

只需要 启用 WSL2,然后就可以直接安装 Linux发行版 进行使用


1. 开启 WSL2 功能

1.1 安装 WSL2 的系统版本要求

  • win10 系统:
    • x64:版本 1903 或更高版本,内部版本为 18362.1049 或更高版本。
    • ARM64:版本 2004 或更高版本,内部版本为 19041 或更高版本。
  • win11 系统:都可以

【扩展】如何查看系统版本号

  • 快捷键 win + R 打开终端 (cmd,powershell 等都行)
  • 输入 winver 指令

在这里插入图片描述

1.2 开启所需的 Windows 功能

以下演示为 windows11 系统

  • 打开控制面板
    • win + R 打开终端
    • 输入指令:control

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-rUqbJb70-1720955353798)(https://i-blog.csdnimg.cn/direct/3908c5233c6442e89c27c39be6c2bdf2.png)]

  • 点击 程序
    在这里插入图片描述

  • 点击 启用或关闭 Windows 功能
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-w09ilgXY-1720955353800)(https://i-blog.csdnimg.cn/direct/2b88335627674149a5c8ca8e79daeb73.png)]

  • 下滑找到 适用于 Linux 的 Windows 子系统虚拟机平台,如果未勾选的,勾选上,点击确定(会提示重启电脑,点击重启即可)
    在这里插入图片描述

1.3 设置版本号,更新 WSL

打开终端输入:(管理员模式下

  1. 将 WSL2 设为默认版本:这样我们使用 Linux 系统时,默认是使用 WSL2 去运行 Linux 系统。

    wsl --set-default-version 2
    
  2. 更新 WSL

    wsl --update
    

【验证】输入指令:

wsl -v

在这里插入图片描述

出现上面信息说明 WSL2 安装成功。

那么只需要下载你需要的 Linux 系统 即可直接使用


2. 下载 Linux 发行版

需要注意的一点是:安装的 Linux 系统应该是 适用于 WSL 的 Linux 系统,因此如果你是从各大 Linux系统下载网站进行下载的话,需要注意这一点。

微软也给我们提供了几种下载方式:

下面我以 Ubuntu-22.04 为例


  1. Microsoft Stote
  • 进入微软商店,搜索 ubuntu-22.04
    在这里插入图片描述

现在就可以使用下载好的 ubuntu 了:

  • 打开 ubuntu

    开始菜单搜索 ubuntu 打开 或者 像下面这样 打开终端新建一个 ubuntu 终端

    在这里插入图片描述

首次进入需要创建新用户:

  • 设置用户

    • 在下面位置输入用户名
      在这里插入图片描述

    • 输入密码

    注意:输入密码时并不会显示你的输入,你只需要按键盘输入你想要设置的密码然后按 enter 键即可

    在这里插入图片描述

出现此说明成功了:

在这里插入图片描述


  1. wsl 指令下载

下面的指令可能有的电脑由于版本较低无法执行,如果无法执行那么你使用 微软商店 下载即可

可通过 “wsl -l -o” 查看所有可选的 linux 发行版:

在这里插入图片描述

如果执行这一指令报错:无法解析服务器地址,那么也是建议你使用 微软商店 下载。

你仍然想使用的话,这里有一个可行的解决方案:
下载 dev-sidecar 软件(这是 github 上的一个开源软件,主要目的是解决一些网站访问慢的问题),项目地址:【https://github.com/docmirror/dev-sidecar】

  • wsl --install 指令

安装 WSL 和 Linux 的默认 Ubuntu 发行版

可以在指令后面指定想要安装的 linux 发行版:

以 ubuntu-24.04 为例,输入指令等待安装即可

在这里插入图片描述

同理第一运行后也会要求创建用户,按之前说的步骤做即可。


3. 通过 WSL指令 使用 Linux

你可以按之前说的方法直接运行所下载的 linux 发行版。

下面说说通过 wsl 指令运行 linux

3.1 运行 linux

  • 查看当前已安装的 linux 发行版:

    wsl -l -v” 或者 “wsl -l

    在这里插入图片描述

    • Ubuntu-22.04 前面有个 *,说明它是 WSL 的默认运行版本。那么当你在终端输入指令 wsl 时,默认打开的是 ubuntu-22.04
      在这里插入图片描述
    • state:表示系统是否在运行
    • version:表示该系统使用的 WSL 的版本 (目前 WSL 有两个版本:WSL2 与 WSL1)

  • 终端输入指令 wsl 即可运行默认 linux 版本

    • 如果你需要更改默认运行的 linux 版本,那么需要执行指令:wsl --set-default [发行版名称]

    比如 wsl --set-default Ubuntu-24.04

    • 如果你想运行特定版本的 linux,那么执行:wsl --d [发行版名称] --u [用户名]

    如果在第一次运行 linux 时创建了用户 (假如叫 blr),那么该 linux 会有两个用户:root、blr,其中 WSL 默认使用的用户为 blr (新创建的用户)。
    你也可以通过指令 [发行版名称] config --default-user [用户名] 修改默认用户
    比如:ubuntu-22.04 config --default-user root

运行后即可使用 Linux,那么如何使用 Linux 就不属于本文的范畴了。


4. 导入与导出 linux 发行版

所安装的 linux 发行版,它会占用一定的存储空间,WSL 默认将它所占用的空间设置在 C 盘。随着它的使用,可能导致 C 盘存储空间逐渐不足,那么可以通过将 Linux 导出到其他盘以减轻 C 盘的压力。

WSL 属于系统功能,我看到一些教程说可以将 WSL 移动到其他盘,这一做法是否正确未知,我在官方文档中也未看见相关说明(也可能是我粗心没发现)。

【注】如果下面的指令显示权限不够,请使用管理员模式打开终端。

  • 关闭运行的 linux

    wsl --shutdown

  • 导出 linux 发行版

    wsl --export [发行版名称] [导出文件的路径]

    比如我将 ubuntu-22.04 导出到 “E:\ubuntu”,那么执行

    wsl --export ubuntu-22.04 E:\ubuntu\ubuntu-22.04.tar

    在这里插入图片描述

  • 注销(卸载)原来的 ubuntu-22.04

    wsl --unregister [发行版名称]

    因为第一次安装时,WSL 保存了 ubuntu-22.04 的一些相关配置信息,因此需要注销原来的 ubuntu
    在这里插入图片描述

  • 利用之前导出的文件,导入 ubuntu-22.04 到新位置

    wsl --import [发行版名称] [导入的路径] [导出文件的路径]

    比如利用之前导出的文件 “E:\ubuntu\ubuntu-22.04.tar" 来导入新的发行版:ubuntu-22.04,导入到 “E:\ubuntu\ubuntu-22.04”
    在这里插入图片描述

此时导出的文件 ubuntu-22.04.tar 就可以删除了。(是导出的文件,不是导入的文件)

需要注意这时 WSL 之前保存的一些配置信息就没了,比如以此教程安装的两个 ubuntu 系统为例:

  • 现在默认打开的发行版不再是 ubuntu-22.04,你可自行设置
  • 打开 ubuntu-22.04 默认用户不是之前创建的 blr 用户,而是 root 用户

由于现在 ubuntu-22.04 为导入的发行版,那么如果要修改默认用户的话需要更改 /etc/wsl.conf 文件

  • 运行 ubuntu-22.04
    在这里插入图片描述

  • 执行指令:

    echo -e "[user]\ndefault=用户名" >> /etc/wsl.conf
    

    用户名换为你想要的用户名(必须已经存在)

    比如我将默认用户改为 blr:
    在这里插入图片描述

  • 将终端关闭重启即可


最后

本文基于微软官方文档,如果有错误,欢迎指正。
如果你在安装过程中出现错误,可以参见官方文档【常见问题】。
想要了解更多 WSL 指令见:【WSL 基本指令】

如果你觉得 ubuntu 的终端不好看,想给它进行美化,可参见:【终端美化:zsh + oh-my-zsh】

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/377264.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

let/const/var的区别及理解

在JavaScript中,let、const 和 var 是用来声明变量的关键字,但它们之间在作用域、变量提升、重复声明等方面存在区别,详细情况如下: 1. let、const、var 的区别 (1) 块级作用域 let 和 const:具有块级作用域,由 {} 包…

记录些Redis题集(2)

Redis 的多路IO复用 多路I/O复用是一种同时监听多个文件描述符(如Socket)的状态变化,并能在某个文件描述符就绪时执行相应操作的技术。在Redis中,多路I/O复用技术主要用于处理客户端的连接请求和读写操作,以实现高并发…

Redis 中String类型操作命令(命令演示,时间复杂度,返回值,注意事项)

String 类型 文章目录 String 类型set 命令get 命令mset 命令mget 命令get 和 mget 的区别incr 命令incrby 命令decr 命令decrby 命令incrbyfloat 命令append 命令getrange 命令setrange 命令 字符串类型是 Redis 中最基础的数据类型,在讲解命令之前,我们…

STM32基础篇:EXTI × 事件 × EXTI标准库

EXTI EXTI简介 EXTI:译作外部中断/事件控制器,STM32的众多片上外设之一,能够检测外部输入信号的边沿变化并由此产生中断。 例如,在检测按键时,按键按下时会使电平产生翻转,因此可以使用EXTI来读取按下时…

用AirScript脚本给女/男朋友发送每日早安邮件(极简版本)

先看效果 工具 金山文档/WPS提供了每日定时的AirScript脚本服务,非常方便~ 话不多说,我们以金山文档为例,只有简单的五个步骤,非常容易~ 教程开始 步骤1 我们打开金山文档新建一个智能表格 步骤2 按下图…

基于Python thinker GUI界面的股票评论数据及投资者情绪分析设计与实现

1.绪论 1.1背景介绍 Python 的 Tkinter 库提供了创建用户界面的工具,可以用来构建股票评论数据及投资者情绪分析的图形用户界面(GUI)。通过该界面,用户可以输入股票评论数据,然后通过情感分析等技术对评论进行情绪分析…

【Linux网络】IP协议{初识/报头/分片/网段划分/子网掩码/私网公网IP/认识网络世界/路由表}

文章目录 1.入门了解2.认识报头3.认识网段4.路由跳转相关指令路由 该文诸多理解参考文章:好文! 1.入门了解 用户需求:将我的数据可靠的跨网络从A主机送到B主机 传输层TCP:由各种方法(流量控制/超时重传/滑动窗口/拥塞…

【JavaEE】网络编程——TCP

🤡🤡🤡个人主页🤡🤡🤡 🤡🤡🤡JavaEE专栏🤡🤡🤡 文章目录 前言1.网络编程套接字1.1流式套接字(TCP)1.1.1特点1.1.2编码1.1.2.1ServerSo…

微信小游戏 彩色试管 倒水游戏 逻辑 (二)

最近开始研究微信小游戏,有兴趣的 可以关注一下 公众号, 记录一些心路历程和源代码。 定义一个 Water class 1. **定义接口和枚举**: - WaterInfo 接口定义了水的颜色、高度等信息。 - PourAction 枚举定义了水的倒动状态,…

【Nuxt3】vue3+tailwindcss+vuetify引入自定义字体样式

一、目的 在项目中引入自定义的字体样式(全局页面都可使用) 二、步骤 1、下载好字体 字体的后缀可以是ttf、otf、woff、eot或者svg(推荐前三种) 以抖音字体为例下载好放在静态文件夹(font)下 案例字…

数学建模入门

目录 文章目录 前言 一、数学建模是什么? 1、官方概念: 2、具体过程 3、适合哪一类人参加? 4、需要有哪些学科基础呢? 二、怎样准备数学建模(必备‘硬件’) 1.组队 2.资料搜索 3.常用算法总结 4.论文撰写的…

【密码学】数字签名

一、数字签名的基本概念 数字签名是一种用于验证电子文档完整性和身份认证的密码学技术。它通过使用公钥加密体系中的私钥对文档的一部分(通常是文档的摘要)进行加密,从而创建一个“签名”。这个签名可以附在文档上,或作为一个单独…

【数据结构】--- 堆的应用

​ 个人主页:星纭-CSDN博客 系列文章专栏 :数据结构 踏上取经路,比抵达灵山更重要!一起努力一起进步! 一.堆排序 在前一个文章的学习中,我们使用数组的物理结构构造出了逻辑结构上的堆。那么堆到底有什么用呢&…

【Linux】01.Linux 的常见指令

1. ls 指令 语法:ls [选项] [目录名或文件名] 功能:对于目录,该命令列出该目录下的所有子目录与文件。对于文件,将列出文件名以及其他信息 常用选项: -a:列出当前目录下的所有文件,包含隐藏文件…

Spring webflux基础核心技术

一、 用操作符转换响应式流 1 、 映射响应式流元素 转换序列的最自然方式是将每个元素映射到一个新值。 Flux 和 Mono 给出了 map 操作符&#xff0c;具有 map(Function<T&#xff0c;R>) 签名的方法可用于逐个处理元素。 当操作符将元素的类型从 T 转变为 R 时&#xf…

「豆包Marscode体验官」我用豆包Marscode画数据大屏

认识豆包Marscode 豆包 MarsCode IDE 是一个 AI 原生的云端集成开发环境&#xff08;IDE&#xff09;。内置的 AI 编程助手和开箱即用的开发环境让我们可以更加专注于各种项目的开发。豆包 MarsCode 编程助手&#xff0c;具备以智能代码补全为代表的 AI 功能。支持了多种编程语…

【学习笔记】无人机(UAV)在3GPP系统中的增强支持(十二)-无人机群在物流中的应用

引言 本文是3GPP TR 22.829 V17.1.0技术报告&#xff0c;专注于无人机&#xff08;UAV&#xff09;在3GPP系统中的增强支持。文章提出了多个无人机应用场景&#xff0c;分析了相应的能力要求&#xff0c;并建议了新的服务级别要求和关键性能指标&#xff08;KPIs&#xff09;。…

解读网传《深圳IT圈⭕新解读八小时工作制》

网传深圳IT圈的新解读八小时工作制 工作时间安排&#xff1a; 10:00-12:0014:00-18:0019:00-21:00 初看&#xff1a;有惊喜 上午开始时间晚&#xff1a;相对于传统的9点开始&#xff0c;这种安排允许员工有更多的早晨时间&#xff0c;可以用来休息或处理个人事务。下午和晚上分…

Amazon EC2 部署Ollama + webUI

最近和同事闲聊&#xff0c;我们能不能内网自己部署一个LLM&#xff0c;于是便有了Ollama webUI的尝试 对于Linux&#xff0c;使用一行命令即可 curl -fsSL https://ollama.com/install.sh | shollama --help Large language model runnerUsage:ollam…

架构设计-NX的二次开发API架构设计介绍

1.与整体的关系 2.API设计目标 能够允许用户访问NX的所有UI工具组件&#xff0c;二次开发用户能够编写外观和运行行为类似NX的应用程序。能够允许用户直接访问NX数据模型即使底层数据结构和功能实现发生很大变化&#xff0c;API接口保持稳定&#xff0c;不会影响上层用户。 3…