当前位置: 首页 > news >正文

WSL使用技巧 / 虚拟机对比

WSL使用技巧 / 虚拟机对比

  • 前言
  • 虚拟机比较
  • VMware使用技巧
  • WSL使用技巧
    • 官方文档
    • 工具
    • 安装WSL
    • 基本命令
    • 运行命令
    • 关闭卸载
    • 磁盘管理
    • 导入导出
    • 指定安装路径

前言

本文介绍了VMware和WSL的区别,并详细介绍了WSL的使用方法和技巧。

虚拟机比较

VMware
比较灵活,拥有图形化界面,另外也可以访问USB设备,大部分VM软件的图形界面性能比Hyper-V好。

WSL 1
WSL 1用的是Windows内核模拟的各种系统接口。虽然可以运行大部分Linux应用,但还是有不少依赖于内核的应用是无法正常运行的——例如Docker。另外WSL 1和Windows共用文件系统、网络,有些时候会比较头疼。

WSL 2
WSL 2/Docker本质上都是Hyper-V。WSL 2是一个轻量级的Hyper-V VM;Docker for Windows如果要跑Linux镜像,会安装运行一台运行Linux的Hyper-V虚拟机。

总结
若不嫌安装软件和配置操作系统麻烦,则可以使用VMware;
若只想熟悉Linux命令,不使用Docker,可以使用WSL 1;
若想使用Docker,且不想安装VMware,可以使用WSL 2。
WSL占用内存很高,且无法自动回收,需要使用wsl --shutdown命令彻底关闭WSL才能释放内存。

VMware使用技巧

略。

WSL使用技巧

官方文档

文档目录:https://learn.microsoft.com/zh-cn/windows/wsl/
安装步骤:https://learn.microsoft.com/zh-cn/windows/wsl/install
基本命令:https://learn.microsoft.com/zh-cn/windows/wsl/basic-commands

工具

Windows Terminal
在Microsoft Store中安装Windows Terminal,如下图:
在这里插入图片描述

此终端软件可以打开多个选项卡,对Windows支持较好。可以使用此终端的PowerShell运行以下WSL命令。

安装WSL

# 安装默认发行版
wsl --install# 安装指定发行版
wsl --install <Distribution Name># 获取发行版名称的有效列表
wsl --list --online

未安装 WSL 时,选项包括:
--inbox:使用 Windows 组件(而不是 Microsoft Store)安装 WSL。 (WSL 更新将通过 Windows 更新接收,而不是通过 Microsoft Store 中推送的可用更新来接收)。
--enable-wsl1:在安装 Microsoft Store 版本的 WSL 的过程中也启用“适用于 Linux 的 Windows 子系统”可选组件,从而启用 WSL 1。
--no-distribution:安装 WSL 时不安装发行版。

安装后选项包括:
--distribution:指定要安装的 Linux 发行版。 可以通过运行 wsl --list --online 来查找可用的发行版。
--no-launch:安装 Linux 发行版,但不自动启动它。
--web-download:通过联机渠道安装,而不是使用 Microsoft Store 安装。

基本命令

列出可用的 Linux 发行版:

wsl --list --online
# or
wsl -l -o

查看可通过在线商店获得的 Linux 发行版列表。


列出已安装的 Linux 发行版:

wsl --list --verbose
# or
wsl -l -v

查看安装在 Windows 计算机上的 Linux 发行版列表,其中包括状态(发行版是正在运行还是已停止)和运行发行版的 WSL 版本(WSL 1 或 WSL 2)。可与 list 命令一起使用的其他选项包括:--all(列出所有发行版)、--running(仅列出当前正在运行的发行版)或 --quiet(仅显示发行版名称)。


将 WSL 版本设置为 1 或 2:

wsl --set-version <distribution name> <versionNumber>

若要指定运行 Linux 发行版的 WSL 版本(1 或 2),请将 替换为发行版的名称,并将 替换为 1 或 2。WSL 2 仅在 Windows 11 或 Windows 10 版本 1903、内部版本 18362 或更高版本中可用。


设置默认 WSL 版本:

wsl --set-default-version <Version>

若要将默认版本设置为 WSL 1 或 WSL 2,请将 替换为数字 1 或 2,表示对于安装新的 Linux 发行版,你希望默认使用哪个版本的 WSL。 例如,wsl --set-default-version 2。 WSL 2 仅在 Windows 11 或 Windows 10 版本 1903、内部版本 18362 或更高版本中可用。


设置默认 Linux 发行版:

wsl --set-default <Distribution Name>
# or
wsl -s <Distribution Name>

若要设置 WSL 命令将用于运行的默认 Linux 发行版,请将 替换为你首选的 Linux 发行版的名称。


更新 WSL:

wsl --update

将 WSL 版本更新到最新版本。 选项包括:
--web-download:从 GitHub 而不是 Microsoft Store 下载最新更新。


检查 WSL 状态:

wsl --status

查看有关 WSL 配置的常规信息,例如默认发行版类型、默认发行版和内核版本。


查看 WSL 版本:

wsl --version

检查有关 WSL 及其组件的版本信息。


Help 命令:

wsl --help

查看 WSL 中可用的选项和命令列表。

运行命令

运行默认的Linux发行版:

# 启动默认Linux发行版,并进入当前目录,即wsl的mnt文件夹
wsl# 启动默认Linux发行版,并进入用户主目录
wsl ~# 在wsl中进入用户主目录
cd ~

运行指定的Linux发行版:

运行指定的Linux发行版,并以指定用户登录
wsl --distribution <Distribution Name> --user <User Name>
# 简写
wsl -d <Distribution Name> -u <User Name># 进入Linux发行版后,若不知道当前用户名,可使用以下命令输出当前用户名
whoami

其中, 为 Linux 发行版的名称, 为用户名称。 若 Linux 发行版中不存在该用户,则会报错。

关闭卸载

关闭WSL,关闭所有发行版,清空内存

wsl --shutdown

立即终止所有正在运行的发行版和 WSL 2 轻量级实用工具虚拟机。 在需要重启 WSL 2 虚拟机环境的情形下,例如更改内存使用限制或更改 .wslconfig 文件,可能必须使用此命令。


关闭指定发行版:

wsl --terminate <Distribution Name>
# or
wsl -t <Distribution Name>

若要终止指定的发行版或阻止其运行,请将 替换为目标发行版的名称。


注销并卸载 WSL 发行版:

wsl --unregister <DistributionName>

如果将 替换为目标 Linux 发行版的名称,则将从 WSL卸载该发行版,与该发行版关联的所有数据、设置和软件将永久丢失。 从 Store 重新安装会安装发行版的干净副本。

例如:wsl --unregister Ubuntu 将从可用于 WSL 的发行版中删除 Ubuntu。 运行 wsl --list 将会显示它不再列出。

还可以像卸载任何其他应用商店应用程序一样卸载 Windows 计算机上的 Linux 发行版应用。 若要重新安装,请在 Microsoft Store 中找到该发行版,然后选择“启动”。

磁盘管理

装载磁盘或设备:

wsl --mount <DiskPath>

通过将 替换为物理磁盘所在的目录\文件路径,在所有 WSL2 发行版中附加和装载该磁盘。 请参阅在 WSL 2 中装载 Linux 磁盘。 选项包括:

--vhd:指定 引用虚拟硬盘。
--name:使用装入点的自定义名称装载磁盘
--bare:将磁盘附加到 WSL2,但不进行装载。
--type <Filesystem>:装载磁盘时使用的文件系统类型默认为 ext4(如果未指定)。 此命令也可输入为:wsl --mount -t <Filesystem>。可以使用 blkid <BlockDevice> 命令检测文件系统类型,例如:blkid <dev/sdb1>
--partition <Partition Number>:要装载的分区的索引号默认为整个磁盘(如果未指定)。
--options <MountOptions>:装载磁盘时,可以包括一些特定于文件系统的选项。 例如,wsl --mount -o "data-ordered"wsl --mount -o "data=writeback" 之类的 ext4 装载选项。 但是,目前仅支持特定于文件系统的选项。 不支持通用选项,例如 ro、rw 或 noatime。


卸载磁盘:

wsl --unmount <DiskPath>

卸载磁盘路径中给定的磁盘,如果未提供磁盘路径,则此命令将卸载并分离所有已装载的磁盘。

导入导出

导入和导出发行版:

# 导入
wsl --import <Distribution Name> <InstallLocation> <FileName>
# 导出
wsl --export <Distribution Name> <FileName>

将指定 tar 文件导入和导出为新的发行版。 在标准输入中,文件名可以是 -。 选项包括:

--vhd:指定导入/导出发行版应为 .vhdx 文件,而不是 tar 文件
--version:(仅导入)指定将发行版导入为 WSL 1 还是 WSL 2 发行版

指定安装路径

可通过导出再导入的方式指定WSL的安装路径,步骤如下:

查看运行子系统:通过wsl -l --running查看正在运行的子系统
终止运行:若有正在运行的子系统,则通过wsl -t <DistributionName>来终止其运行
备份系统:利用wsl --export <DistributionName> <FileName>来备份子系统,结果会得到一个tar归档文件。
假设有名为Ubuntu-20.04的子系统, 想要将结果文件保存为Ubuntu2004.tar
(同时指定其路径即为D:\wsl\Ubuntu2004.tar),则调用的命令为
wsl --export Ubuntu-20.04 D:\wsl\Ubuntu2004.tar
恢复系统:然后利用wsl --import <DistributionName> <InstallLocation> <FileName>来恢复子系统。
例如wsl --import Ubuntu D:\wsl\Ubuntu2004\ D:\wsl\Ubuntu2004.tar(将新恢复的子系统命名为Ubuntu)
修改默认登录用户:Ubuntu config --default-user <UserName>,若使用Ubuntu 20.04,则将Ubuntu替换为ubuntu2004。
注销原系统(可选):使用wsl --unregister Ubuntu-20.04注销原始子系统。

相关文章:

WSL使用技巧 / 虚拟机对比

WSL使用技巧 / 虚拟机对比 前言虚拟机比较VMware使用技巧WSL使用技巧官方文档工具安装WSL基本命令运行命令关闭卸载磁盘管理导入导出指定安装路径 前言 本文介绍了VMware和WSL的区别&#xff0c;并详细介绍了WSL的使用方法和技巧。 虚拟机比较 VMware 比较灵活&#xff0c;拥…...

vuex_cart案例

json-server使用 在目录下新建db文件夹>里面新建index.json index.json {"cart": [{"id": 100001,"name": "低帮城市休闲户外鞋天然牛皮COOLMAX纤维","price": 128,"count": 6,"thumb": "http…...

Linux系统的安装

文章目录 1 Linux介绍1.1 Linux是什么1.2 Linux的特点1.3 Linux的应用1.4 Linux的发行版本1.5 Linux的Shell 2 Linux安装2.1 安装方式2.2 什么是VMware2.3 VMware主要功能2.4 什么是CentOS2.5 VMware与CentOS与Linux的关系2.6 VMware安装CentOS的步骤 1 Linux介绍 1.1 Linux是…...

微服务设计和高并发实践

文章目录 1、微服务的设计原则1.1、服务拆分方法1.2、微服务的设计原则1.3、微服务架构 2、高并发系统的一些优化经验2.1、提高性能2.1.1、数据库优化2.1.2、使用缓存2.1.3、服务调用优化2.1.4、动静分离2.1.5、数据库读写分离 2.2、服务高可用2.2.1、限流和服务降级2.2.2、隔离…...

2023年高教社杯数学建模思路 - 案例:粒子群算法

文章目录 1 什么是粒子群算法&#xff1f;2 举个例子3 还是一个例子算法流程算法实现建模资料 # 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 什么是粒子群算法&#xff1f; 粒子群算法&#xff08;Pa…...

Tomcat 集群介绍

一.Tomcat 集群介绍 在实际生产环境中&#xff0c;单台 Tomcat 服务器的负载能力或者说并发能力在四五百左右。大 部分情况下随着业务增长&#xff0c;访问量的增加(并发量不止四五百)&#xff0c;单台 Tomcat 服务器是 无法承受的。这时就需要将多台 Tomcat 服务器组织起来&a…...

Windows右键添加用 IDEA 打开

1.安装IDEA时 安装时会有个选项来添加&#xff0c;如下&#xff1a; 勾选即可 2.修改注册表 安装时未勾选&#xff0c;可以把下面代码中程序路径改为自己的&#xff0c;保存为对应的 idea.reg文件&#xff0c;双击即可 Windows Registry Editor Version 5.00[HKEY_CLASSES…...

Golang 中return和defer执行先后顺序

先给出最终结论&#xff1a; 执行return语句 -> 执行defer函数 -> 函数返回 这里可能会有一个疑问&#xff0c; 执行return语句和函数返回难道不是一回事? Golang语言中函数的return不是原子操作&#xff0c;而是分为了两步&#xff1a; 返回值赋值真正函数返回 Gol…...

业务数据模拟/采集

业务数据模拟/采集 2.2 业务数据模拟 2.2.1 连接MySQL 通过MySQL可视化客户端连接数据库。2.2.2 建表语句 1&#xff09;通过SQLyog创建数据库2&#xff09;设置数据库名称为gmall&#xff0c;编码为utf-8&#xff0c;排序规则为utf8_general_ci3&#xff09;导入数据库结构脚本…...

qt day 5

实现局域网的网络聊天室功能 1>服务器代码 --------------------------------------------------------------- widget.h --------------------------------------------------------------- #ifndef WIDGET_H #define WIDGET_H#include <QWidget> #include <QMes…...

Java设计模式之适配器模式

适配器模式&#xff08;Adapter Pattern&#xff09;是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式&#xff0c;它结合了两个独立接口的功能。 这种模式涉及到一个单一的类&#xff0c;该类负责加入独立的或不兼容的接口功能。举个真实的例子&#xff0…...

每天一个工业通信协议(3)2023.8.29 (DAP接口)

文章目录 参考文献1.DAP接口介绍2.DAP接口的2/3pin3.一种DAP接口方案应用的说明,通过两步初始化把JTAG接口变成DAP接口使用4.DAP接口的协议4.1 DAP电报的分类(只用JTAG类电报)4.2 电报格式4.3 DAP有限状态机参考文献 李婧. DAP模块验证组件系统级开发和实现[D]. 陕西:西安电…...

如何将Word转成PDF?试一下这个转换方法

Word转成PDF是现代办公中常见的需求&#xff0c;它可以确保文件的格式和内容在不同平台上保持一致&#xff0c;并且更加方便共享和打印。在这个数字化时代&#xff0c;我们经常需要将Word文档转换为PDF格式&#xff0c;无论是个人用户还是商务用户都会遇到这样的需求。那么如何…...

成都睿趣科技:现在开一家抖音小店还来得及吗

随着社交媒体的迅猛发展&#xff0c;抖音已经成为了一个全球范围内广受欢迎的社交平台。在这个短视频应用上&#xff0c;人们分享着各种各样的内容&#xff0c;从搞笑段子到美食教程&#xff0c;再到时尚搭配和手工艺品制作。随着用户数量的不断增长&#xff0c;很多人都在思考…...

原型链中:为什么Function.proto==Function.prototype?

背景: 在 JavaScript 中&#xff0c;每个函数&#xff08;包括构造函数&#xff09;都是一个对象&#xff0c;而对象都有一个 __proto__ 属性&#xff0c;指向它们的原型。当你创建一个函数时&#xff0c;JavaScript 引擎会自动为该函数创建一个原型对象&#xff0c;并将其关联…...

原生js实现轮播图及无缝滚动

我这里主要说轮播图和无缝滚动的实现思路&#xff0c;就采用最简单的轮播图了&#xff0c;当然实现的思路有很多种&#xff0c;我这也只是其中一种。 简单轮播图的大概结构是这样的&#xff0c;中间是图片&#xff0c;二边是箭头可以用来切换图片&#xff0c;下面的小圆点也可以…...

MP中的字段还可以利用函数来查询拼接sql

//根据value查询GetMapping("getTest")public List<HashMap> getTest() {QueryWrapper<TTest> queryWrapper new QueryWrapper<>();queryWrapper.eq("substr(name,1,2)","99999");List<TTest> list1 testService.list…...

【python爬虫】中央气象局预报—静态网页图像爬取练习

静态网页爬取练习 中央气象局预报简介前期准备步骤Python爬取每日预报结果—以降水为例 中央气象局预报简介 中央气象台是中国气象局&#xff08;中央气象台&#xff09;发布的七天降水预报页面。这个页面提供了未来一周内各地区的降水预报情况&#xff0c;帮助人们了解即将到来…...

数字孪生城市总体架构进一步迭代更新

经过五年来发展&#xff0c;数字孪生城市基本形成“三横四纵”的总体架构&#xff0c;“三横”为新型基础设施、智能运行中枢、孪生应用体系&#xff0c;“四纵”为组织保障体系、标准规范体系、网络安全防线、运营保障体系&#xff0c;具体如下。 数字孪生城市总体架构-来源&a…...

通过 Jetbrains GateWay实现Remote Development

本次环境准备 环境准备&#xff1a;win10、一台安装有树莓派系统的树莓派&#xff08;也可以是其他的服务器&#xff09; 第一步&#xff1a;通过官网下载JetBrains Gateway 官网地址&#xff1a;https://www.jetbrains.com/remote-development/gateway/ 第二步&#xff1a;安装…...

从COCO到Cityscapes:实例分割指标mAP和mIOU在不同数据集上的表现差异与陷阱

从COCO到Cityscapes&#xff1a;实例分割指标mAP和mIOU在不同数据集上的表现差异与陷阱 当你在COCO数据集上训练的Mask R-CNN模型取得了0.85的mAP&#xff0c;满怀信心地将其部署到自动驾驶项目的Cityscapes数据集上时&#xff0c;却发现mIOU从预期的0.75骤降到0.52——这种&qu…...

手把手教你用AsyncOpenAI库,为自部署的Llama 3模型打造一个高速问答接口

基于AsyncOpenAI与Llama 3构建高并发问答接口的工程实践 在当今AI应用开发领域&#xff0c;如何将开源大模型高效地集成到生产环境中&#xff0c;是许多开发者面临的挑战。特别是当我们需要处理大量并发请求时&#xff0c;传统的同步调用方式往往成为性能瓶颈。本文将深入探讨…...

【2026】知云文献翻译安装使用指南:学术PDF划选即译,研究生必备工具

读英文文献最烦的不是词汇&#xff0c;是格式。复制到翻译软件&#xff0c;格式全乱、公式变问号、图注和正文混在一起。知云文献翻译的解法是直接在PDF里划选翻译&#xff0c;格式不动&#xff0c;原文译文左右对照&#xff0c;不用来回切换窗口。 这篇从安装到核心功能配置一…...

Windows防撤回补丁终极指南:微信QQ消息永久保存的完整解决方案

Windows防撤回补丁终极指南&#xff1a;微信QQ消息永久保存的完整解决方案 【免费下载链接】RevokeMsgPatcher :trollface: A hex editor for WeChat/QQ/TIM - PC版微信/QQ/TIM防撤回补丁&#xff08;我已经看到了&#xff0c;撤回也没用了&#xff09; 项目地址: https://gi…...

从设计到验证:如何用ADS的HB2TonePAE_FPswp模板快速评估你的PA线性度?

射频功放线性度评估实战&#xff1a;ADS高级仿真模板深度解析 在射频功率放大器(PA)的设计流程中&#xff0c;线性度评估往往是最耗时的环节之一。传统方法需要工程师手动搭建测试平台&#xff0c;不仅效率低下&#xff0c;还容易引入人为误差。Keysight ADS软件内置的HB2ToneP…...

Windows热键冲突智能解析:Hotkey Detective终极解决方案

Windows热键冲突智能解析&#xff1a;Hotkey Detective终极解决方案 【免费下载链接】hotkey-detective A small program for investigating stolen key combinations under Windows 7 and later. 项目地址: https://gitcode.com/gh_mirrors/ho/hotkey-detective 在Wind…...

【Autosar】MCAL - 从零到一的工程配置实战

1. 工程创建&#xff1a;从零搭建MCAL开发环境 第一次打开Autosar配置工具时&#xff0c;面对满屏的选项确实容易发懵。记得我刚接触MCAL配置时&#xff0c;光是工程创建就反复折腾了好几次。下面我就把踩过的坑和验证过的正确姿势分享给大家。 创建新工程时&#xff0c;工程名…...

Perplexity国际新闻搜索深度解析(全球记者都在用的AI情报工作流)

更多请点击&#xff1a; https://codechina.net 第一章&#xff1a;Perplexity国际新闻搜索深度解析&#xff08;全球记者都在用的AI情报工作流&#xff09; Perplexity 不仅是问答引擎&#xff0c;更是现代调查记者与情报分析师的“实时新闻雷达”。其核心优势在于融合权威信…...

Win10下通过桥接网卡实现QEMU虚拟机与宿主机及外网的无缝互联

1. 为什么需要桥接网卡&#xff1f; 在Windows 10环境下使用QEMU创建虚拟机时&#xff0c;很多朋友都会遇到一个头疼的问题&#xff1a;虚拟机虽然能上网&#xff0c;但宿主机和虚拟机之间就是无法互相访问。这种情况我遇到过太多次了&#xff0c;特别是需要调试web服务或者进行…...

网络安全十大常见漏洞|原理 + 危害 + 防御,一篇讲透✅

一、弱口令【文末福利】 产生原因 与个人习惯和安全意识相关&#xff0c;为了避免忘记密码&#xff0c;使用一个非常容易记住 的密码&#xff0c;或者是直接采用系统的默认密码等。 危害 通过弱口令&#xff0c;攻击者可以进入后台修改资料&#xff0c;进入金融系统盗取钱财…...