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
-
点击 程序
-
点击 启用或关闭 Windows 功能
-
下滑找到 适用于 Linux 的 Windows 子系统 与 虚拟机平台,如果未勾选的,勾选上,点击确定(会提示重启电脑,点击重启即可)
1.3 设置版本号,更新 WSL
打开终端输入:(管理员模式下)
-
将 WSL2 设为默认版本:这样我们使用 Linux 系统时,默认是使用 WSL2 去运行 Linux 系统。
wsl --set-default-version 2
-
更新 WSL
wsl --update
【验证】输入指令:
wsl -v
出现上面信息说明 WSL2 安装成功。
那么只需要下载你需要的 Linux 系统 即可直接使用
2. 下载 Linux 发行版
需要注意的一点是:安装的 Linux 系统应该是 适用于 WSL 的 Linux 系统,因此如果你是从各大 Linux系统下载网站进行下载的话,需要注意这一点。
微软也给我们提供了几种下载方式:
下面我以 Ubuntu-22.04 为例
- Microsoft Stote
- 进入微软商店,搜索 ubuntu-22.04
现在就可以使用下载好的 ubuntu 了:
-
打开 ubuntu
开始菜单搜索 ubuntu 打开 或者 像下面这样 打开终端新建一个 ubuntu 终端
首次进入需要创建新用户:
-
设置用户
-
在下面位置输入用户名
-
输入密码
注意:输入密码时并不会显示你的输入,你只需要按键盘输入你想要设置的密码然后按 enter 键即可
-
出现此说明成功了:
- 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)
- Ubuntu-22.04 前面有个 *,说明它是 WSL 的默认运行版本。那么当你在终端输入指令 wsl 时,默认打开的是 ubuntu-22.04
-
终端输入指令 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】
相关文章:

WSL2 的安装与运行 Linux 系统
前言 适用于 Linux 的 Windows 子系统 (WSL) 是 Windows 的一项功能,允许开发人员在 Windows 系统上直接安装并使用 Linux 发行版。不用进行任何修改,也无需承担传统虚拟机或双启动设置的开销。 可以将 WSL 看作也是一个虚拟机,但是它更为便…...

业务终端动态分配IP-DHCP技术、DHCP中继技术
一、为什么需要DHCP? 1、许多设备(主机、无线WiFi终端等)需要动态地址的分配; 2、人工手工配置任务繁琐、容易出错,比如:IP地址冲突; 3、网络规模扩大、复杂度提高,网络配置越来越复杂,计算机的位置变化和数量超过可分配IP地址的数量,造成IP地址变法频繁以及IP地址…...

新一代大语言模型 GPT-5 对工作与生活的影响及应对策略
文章目录 📒一、引言 📒二、GPT-5 的发展背景 🚀(一)GPT-4 的表现与特点 🚀(二)GPT-5 的预期进步 📒三、GPT-5 对工作的影响 🚀(一…...

AI基于大模型语言存在的网络安全风险
目的: 随着大语言模型(LLM)各领域的广泛应用,我们迫切需要了解其中潜在的风险和威胁,及时进行有效的防御。 申明: AI技术的普及正当的使用大模型技术带来的便利,切勿使用与非法用途ÿ…...
探索Perl语言:入门学习与实战指南
文章目录 探索Perl语言:入门学习与实战指南一、Perl语言概述二、Perl的安装与配置安装PerlWindowsmacOSLinux 配置Perl 三、基本语法与数据类型标量变量数组哈希 四、控制结构条件语句循环语句 五、子程序与模块子程序模块 六、文件操作与正则表达式文件读取与写入正…...

dp or 数学问题
看一下数据量,只有一千,说明这个不是数学问题 #include<bits/stdc.h> using namespace std;#define int long long const int mo 100000007; int n, s, a, b; const int N 1005;// 2 -3 // 1 3 5 2 -1 // 1 -2 -5 -3 -1 int dp[N][N]; int fun…...

kibana连接elasticsearch(版本8.11.3)
前言 elasticsearch在8版本之后就出现了很大变化,由于kibana版本需要需elasticsearch进行版本对象,kibana连接方式也出现了很大变化。我在这里记录下自己的踩坑记录。 服务部署 本文中的服务都是在docker环境中部署的。其中elasticsearch版本和kibana版…...

基于python的图像去水印
1 代码 import cv2 import numpy as npdef remove_watermark(image_path, output_path):# 读取图片image cv2.imread(image_path)# 转换为灰度图gray cv2.cvtColor(image, cv2.COLOR_BGR2GRAY)# 使用中值滤波去除噪声median_filtered cv2.medianBlur(gray, 5)# 计算图像的梯…...
Linux下Supervisor的安装与配置
软件工程中,守护进程是非常行之有效的方案。能够让我们的一些指令在崩溃之后可以自我重新启动,从而保障业务上的持续使用。 这里就从0开始教大家安装Supervisor。 一,下载安装 安装有好多种方法,直接下载安装包安装,或者yum安装或者pip安装都可以。这次我们选择的是pip…...
使用Pandas读取Excel文件将特定列转成str格式方法汇总
文章目录 读取Excel文件并确保列为字符串类型使用 dtype 参数使用 converters 参数 读取Excel文件的正确拼写示例:读取Excel文件并过滤包含特定值的行详细解释 读取Excel文件并确保列为字符串类型 正确的方法是使用 pd.read_excel 函数,并指定 dtype 或…...

FPGA CFGBVS 管脚接法
说明 新设计了1个KU040 FPGA板子,回来之后接上JTAG FPGA不识别。做如下检查: 1、电源测试点均正常; 2、查看贴片是否有漏焊,检查无异常,设计上NC的才NC; 3、反复检查JTAG接线是否异常,贴片是…...

快速排序及归并排序的实现与排序的稳定性
目录 快速排序 一. 快速排序递归的实现方法 1. 左右指针法 步骤思路 为什么要让end先走? 2. 挖坑法 步骤思路 3. 前后指针法 步骤思路 二. 快速排序的时间和空间复杂度 1. 时间复杂度 2. 空间复杂度 三. 快速排序的优化方法 1. 三数取中优化 2. 小区…...

【系统架构设计】数据库系统(一)
数据库系统(一) 数据库模式与范式数据库的结构与模式数据模型关系代数数据的规范化反规范化 数据库设计事务管理备份与恢复分布式数据库系统数据仓库数据挖掘NoSQL大数据 数据库模式与范式 数据库的结构与模式 数据库技术中采用分级的方法将数据库的结…...

泛微e-cology WorkflowServiceXml SQL注入漏洞(POC)
漏洞描述: 泛微 e-cology 是泛微公司开发的协同管理应用平台。泛微 e-cology v10.64.1的/services/接口默认对内网暴露,用于服务调用,未经身份认证的攻击者可向 /services/WorkflowServiceXml 接口发送恶意的SOAP请求进行SQL注入,…...

<Rust><GUI>rust语言GUI库tauri体验:前、后端结合创建一个窗口并修改其样式
前言 本文是rust语言下的GUI库:tauri来创建一个窗口的简单演示,主要说明一下,使用tauri这个库如何创建GUI以及如何添加部件、如何编写逻辑、如何修改风格等,所以,这也是一个专栏,将包括tauri库的多个方面。…...

OBD诊断(ISO15031) 09服务
文章目录 功能简介ISO 9141-2、ISO 14230-4和SAE J1850的诊断服务定义1、请求车辆信息请求消息(读取支持的INFOTYPE)2、请求车辆信息响应消息(报告支持INFOTYPE)3、请求车辆信息请求消息(读取INFOTYPE值)4、请求车辆信息响应消息&…...
客户端与服务端之间的通信连接
目录 那什么是Socket? 什么是ServerSocket? 代码展示: 代码解析: 补充: 输入流(InputStream): 输出流(OutputStream): BufferedReader 是如何提高读取效率的&a…...
Font Awesome 图表图标
Font Awesome 图表图标 Font Awesome 是一个广泛使用的图标库,它提供了大量的图标,可以轻松地用于网页设计和开发中。在本文中,我们将重点介绍 Font Awesome 中的图表图标,探讨它们的特点、使用方法,并展示一些实际的…...

React Native 自定义 Hook 获取组件位置和大小
在 React Native 中自定义 Hook useLayout 获取 View、Pressable 等组件的位置和大小的信息 import {useState, useCallback} from react import {LayoutChangeEvent, LayoutRectangle} from react-nativeexport function useLayout() {const [layout, setLayout] useState&l…...

如何在SpringCloud中使用Kafka Streams实现实时数据处理
使用Kafka Streams在Spring Cloud中实现实时数据处理可以帮助我们构建可扩展、高性能的实时数据处理应用。Kafka Streams是一个基于Kafka的流处理库,它可以用来处理流式数据,进行流式计算和转换操作。 下面将介绍如何在Spring Cloud中使用Kafka Streams实…...

业务系统对接大模型的基础方案:架构设计与关键步骤
业务系统对接大模型:架构设计与关键步骤 在当今数字化转型的浪潮中,大语言模型(LLM)已成为企业提升业务效率和创新能力的关键技术之一。将大模型集成到业务系统中,不仅可以优化用户体验,还能为业务决策提供…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

51c自动驾驶~合集58
我自己的原文哦~ https://blog.51cto.com/whaosoft/13967107 #CCA-Attention 全局池化局部保留,CCA-Attention为LLM长文本建模带来突破性进展 琶洲实验室、华南理工大学联合推出关键上下文感知注意力机制(CCA-Attention),…...
FastAPI 教程:从入门到实践
FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建 API,支持 Python 3.6。它基于标准 Python 类型提示,易于学习且功能强大。以下是一个完整的 FastAPI 入门教程,涵盖从环境搭建到创建并运行一个简单的…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
Matlab | matlab常用命令总结
常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...
大模型多显卡多服务器并行计算方法与实践指南
一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...
C++八股 —— 单例模式
文章目录 1. 基本概念2. 设计要点3. 实现方式4. 详解懒汉模式 1. 基本概念 线程安全(Thread Safety) 线程安全是指在多线程环境下,某个函数、类或代码片段能够被多个线程同时调用时,仍能保证数据的一致性和逻辑的正确性…...

如何在网页里填写 PDF 表格?
有时候,你可能希望用户能在你的网站上填写 PDF 表单。然而,这件事并不简单,因为 PDF 并不是一种原生的网页格式。虽然浏览器可以显示 PDF 文件,但原生并不支持编辑或填写它们。更糟的是,如果你想收集表单数据ÿ…...

sipsak:SIP瑞士军刀!全参数详细教程!Kali Linux教程!
简介 sipsak 是一个面向会话初始协议 (SIP) 应用程序开发人员和管理员的小型命令行工具。它可以用于对 SIP 应用程序和设备进行一些简单的测试。 sipsak 是一款 SIP 压力和诊断实用程序。它通过 sip-uri 向服务器发送 SIP 请求,并检查收到的响应。它以以下模式之一…...