如何使用 WSL 在 Windows 上安装 Linux-官方流程

2023-11-05

  1. 前提条件
  2. 安装 WSL 命令
  3. 更改默认安装的 Linux 发行版
  4. 设置 Linux 用户信息
  5. 设置和最佳实践
  6. 检查你正在运行的 WSL 版本
  7. 从 WSL 1 升级到 WSL 2
  8. 使用 WSL 运行多个 Linux 发行版的方法
  9. 想体验最新的 WSL 预览版功能?

开发人员可以在 Windows 机器上同时使用 Windows 和 Linux 的强大功能。Windows Subsystem for Linux (WSL) 可让开发人员安装 Linux 发行版(如 Ubuntu、OpenSUSE、Kali、Debian、Arch Linux 等),并直接在 Windows 上使用 Linux 应用程序、实用程序和 Bash 命令行工具,而无需修改,也没有传统虚拟机或双启动设置的开销。

1、前提条件
您必须运行 Windows 10 2004 及更高版本(Build 19041 及更高版本)或 Windows 11 才能使用下面的命令。如果您使用的是早期版本,请参阅手动安装页面。

2、安装 WSL 命令
现在,您只需使用一条命令即可安装运行 WSL 所需的一切。在管理员模式下右击并选择 “以管理员身份运行”,打开 PowerShell 或 Windows 命令提示符,输入 wsl --install 命令,然后重启机器。

wsl --install

该命令将启用运行 WSL 所需的功能,并安装 Ubuntu Linux 发行版。(默认发行版可以更改)。

如果你运行的是旧版本,或只是不想使用安装命令,并希望一步一步地获得指导,请参阅旧版本的 WSL 手动安装步骤。

第一次启动新安装的 Linux 发行版时,会打开一个控制台窗口,要求你等待文件解压缩并存储到你的机器上。以后所有的启动过程都不会超过一秒。

注意:
如果运行 wsl --install 并看到 WSL 帮助文本,请尝试运行 wsl --list --online 查看可用发行版列表,然后运行 wsl --install -d 安装发行版。要卸载 WSL,请参阅卸载传统版本的 WSL 或取消注册或卸载 Linux 发行版。

3、更改默认安装的 Linux 发行版

  • 默认情况下,安装的 Linux 发行版为 Ubuntu。使用 -d 标志可以更改。
  • 要更改安装的发行版,请输入:wsl --install -d <发行版名称>。将 <发行版名称> 替换为你想安装的发行版名称。
  • 要查看可通过在线商店下载的可用 Linux 发行版列表,请输入:wsl --list --online 或 wsl -l -o。
  • 要在初始安装后安装其他 Linux 发行版,也可以使用以下命令:wsl --install -d <发行版名称>。

提示
如果要从 Linux/Bash 命令行(而不是从 PowerShell 或命令提示符)安装其他发行版,必须在命令中使用 .exe:wsl.exe --install -d <发行版名称> 或列出可用的发行版:wsl.exe -l -o。

如果在安装过程中遇到问题,请查看故障排除指南中的安装部分。

要安装未被列为可用的 Linux 发行版,可以使用 TAR 文件导入任何 Linux 发行版。或者在某些情况下,如 Arch Linux,你可以使用 .appx 文件进行安装。你也可以创建自己的自定义 Linux 发行版,与 WSL 一起使用。

4、设置 Linux 用户信息
安装 WSL 后,你需要为新安装的 Linux 发行版创建一个用户账户和密码。如需了解更多信息,请参阅《设置 WSL 开发环境的最佳实践》指南。

5、设置和最佳实践
我们建议您阅读我们的《WSL 开发环境设置最佳实践指南》,逐步了解如何为已安装的 Linux 发行版设置用户名和密码、使用基本的 WSL 命令、安装和自定义 Windows 终端、设置 Git 版本控制、使用 VS Code 远程服务器编辑和调试代码、文件存储的良好实践、设置数据库、安装外部驱动器、设置 GPU 加速等。

6、检查你正在运行的 WSL 版本
你可以在 PowerShell 或 Windows Command Prompt 中输入命令:wsl -l -v,列出已安装的 Linux 发行版,并检查每个发行版所设置的 WSL 版本。

要在安装新的 Linux 发行版时将默认版本设置为 WSL 1 或 WSL 2,请使用以下命令:wsl --set-default-version <Version#>,用 1 或 2 取代 <Version#>。

要设置使用 wsl 命令的默认 Linux 发行版,请输入:wsl -s 或 wsl --setdefault ,用要使用的 Linux 发行版名称替换 。例如,在 PowerShell/CMD 中输入:wsl -s Debian,将默认发行版设置为 Debian。现在,从 Powershell 运行 wsl npm init 将在 Debian 中运行 npm init 命令。

要在不更改默认发行版的情况下从 PowerShell 或 Windows 命令提示符运行特定的 wsl 发行版,请使用以下命令:wsl -d , 将 替换为您要使用的发行版名称。

了解更多信息,请参阅 WSL 基本命令指南。

7、从 WSL1 升级到 WSL2
使用 wsl --install 命令安装的新 Linux 默认设置为 WSL 2。

wsl --set-version命令可用于从WSL 2降级到WSL 1,或将以前安装的Linux发行版从WSL 1升级到WSL 2。

要查看你的 Linux 发行版是设置为 WSL 1 还是 WSL 2,请使用命令:wsl -l -v。

要更改版本,请使用以下命令:wsl --set-version 2 将 替换为要更新的 Linux 发行版名称。例如,wsl --set-version Ubuntu-20.04 2 将设置 Ubuntu 20.04 发行版使用 WSL 2。

如果在 wsl --install 命令可用之前手动安装了 WSL,还需要启用 WSL 2 使用的虚拟机可选组件,并安装内核软件包(如果尚未安装)。

要了解更多信息,请参阅《WSL 命令参考》(Command reference for WSL),了解 WSL 命令的列表;《比较 WSL 1 和 WSL 2》(Comparing WSL 1 and WSL 2),了解在工作场景中应使用哪种命令;或《建立 WSL 开发环境的最佳实践》(Best practices for setting up a WSL development environment),了解使用 WSL 建立良好开发工作流程的一般指导。

8、使用 WSL 运行多个 Linux 发行版的方法
WSL 支持运行多种不同的 Linux 发行版。这包括从微软商店中选择发行版、导入自定义发行版或构建自己的自定义发行版。

安装完成后,有几种运行 Linux 发行版的方法:

  • 安装 Windows 终端(推荐) 使用 Windows 终端可支持安装任意数量的命令行,并能在多个标签页或窗口窗格中打开它们,在多个 Linux 发行版或其他命令行(PowerShell、命令提示符、Azure CLI 等)之间快速切换。你可以使用独特的配色方案、字体样式、大小、背景图片和自定义键盘快捷键完全自定义你的终端。(https://learn.microsoft.com/en-us/windows/terminal/)
  • 访问 Windows 开始菜单并输入已安装的发行版名称,即可直接打开 Linux 发行版。例如 “Ubuntu”。这将在它自己的控制台窗口中打开 Ubuntu。
  • 在 Windows 命令提示符或 PowerShell 中,输入已安装的发行版名称。例如:Ubuntu
  • 在 Windows 命令提示符或 PowerShell 中,输入:wsl.exe,即可在当前命令行中打开默认 Linux 发行版。
  • 在 Windows 命令提示符或 PowerShell 中输入:wsl [command],即可在当前命令行中使用默认的 Linux 发行版,而无需输入新命令。将 [command] 替换为 WSL 命令,如:wsl -l -v 用于列出已安装的发行版,或 wsl pwd 用于查看当前目录路径在 wsl 中的挂载位置。在 PowerShell 中,get-date 命令将提供 Windows 文件系统中的日期,而 wsl date 将提供 Linux 文件系统中的日期。

选择哪种方法取决于你正在做什么。如果在 Windows 提示符或 PowerShell 窗口中打开了 WSL 命令行,并希望退出,请输入命令:exit。

9、想体验最新的 WSL 预览版功能?
加入 Windows Insiders 计划,试用 WSL 的最新功能或更新。加入 Windows Insiders 后,您可以在 Windows 设置菜单内选择希望接收预览版的渠道,以自动接收与该预览版相关的任何 WSL 更新或预览功能。您可以选择

开发通道: 最新更新,但稳定性较低。
测试版渠道: 早期用户的理想选择,比 Dev 频道更可靠。
Release Preview 频道: 在 Windows 下一版本向大众推出之前,预览其修复和关键功能。

参考:
https://learn.microsoft.com/en-us/windows/wsl/install

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 WSL 在 Windows 上安装 Linux-官方流程 的相关文章

  • 跟踪 Linux 程序中活跃使用的内存

    我想跟踪各种程序在特定状态下接触了多少内存 例如 假设我有一个图形程序 最小化时 它可能会使用更少的内存 因为它不会重新绘制窗口 这需要读取图像和字体并执行大量库函数 这些对象仍然可以在内存中访问 但实际上并没有被使用 类似的工具top它们
  • GLIBCXX_3.4.26 未找到在 BeagleBone 上运行交叉编译的程序

    我有以下程序 include
  • 如何在 Linux 中编写文本模式 GUI? [关闭]

    Closed 这个问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 当我编写脚本 程序时 我经常想弹出一个简单的文本 gui 来提示输入 我该怎么做 例如 来自 Shel
  • Jenkins中找不到环境变量

    我想在詹金斯中设置很多变量 我试过把它们放进去 bashrc bash profile and profile of the jenkins用户 但 Jenkins 在构建发生时找不到它们 唯一有效的方法是将所有环境变量放入Jenkinsf
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • VB - 以隐式方式链接 DLL

    我正在开发 VB6 图形界面 并且需要隐式链接到 DLL 这样做的动机来自于我上一个问题 https stackoverflow com questions 5194573 有问题的 DLL 使用静态 TLS declspec thread
  • 为什么内核需要虚拟寻址?

    在Linux中 每个进程都有其虚拟地址空间 例如 32位系统为4GB 其中3GB为进程保留 1GB为内核保留 这种虚拟寻址机制有助于隔离每个进程的地址空间 对于流程来说这是可以理解的 因为有很多流程 但既然我们只有 1 个内核 那么为什么我
  • 如何在 Ubuntu VirtualBox 中运行 Meteor 应用程序并使用 Windows 主机上的编辑器进行编辑?

    我希望在运行 Ubuntu 的 virtualbox 来宾中运行一个用于开发目的的流星服务器 该项目将位于主机上的一个文件夹内 该文件夹将共享给来宾 该文件夹本身位于 Dropbox 文件夹内 这样我可以在多个虚拟机和工作站之间共享开发 但
  • 无法加载 JNI 共享库 (JDK)

    当我尝试打开时Eclipse http www eclipse org 弹出对话框指出 无法加载 JNI 共享库 C JDK bin client jvm dll 此后 Eclipse 强制关闭 我想提出以下几点 我检查了这条路径上是否存在
  • Linux中的定时器类

    我需要一个计时器来以相对较低的分辨率执行回调 在 Linux 中实现此类 C 计时器类的最佳方法是什么 有我可以使用的库吗 如果您在框架 Glib Qt Wx 内编写 那么您已经拥有一个具有定时回调功能的事件循环 我认为情况并非如此 如果您
  • 在哪里可以找到并安装 pygame 的依赖项?

    我对 Linux 比较陌生 正在尝试安装 python 的 pygame 开发环境 当我运行 setup py 时 它说我需要安装以下依赖项 我找到并安装了其中之一 SDL 然而 其他人则更加难以捉摸 Hunting dependencie
  • 可以读取目标文件吗?

    我很好奇 obj文件 我几乎不知道它们是什么 或者它们包含什么 所以我用 Vim 文本编辑器打开它们 我在里面发现了一种类似外星人的语言 有什么办法可以理解它们代表什么以及它们的内容是什么 另外 它们的用途是什么 Thanks Sure 但
  • 使用 sed 更新 xml 属性(Windows + cygwin 和 Linux)?

    我需要使用 sed 命令对 xml 文件进行更新 但我在这方面遇到了麻烦 它需要在 Windows 使用 cygwin 和 Linux 上运行 XML 具有以下元素
  • 域套接字“sendto”遇到“errno 111,连接被拒绝”

    我正在使用域套接字从另一个进程获取值 就像 A 从 B 获取值一样 它可以运行几个月 但最近 A 向 B 发送消息时偶尔会失败 出现 errno 111 连接被拒绝 我检查了B域套接字绑定文件 它是存在的 我也在另一台机器上做了一些测试 效
  • 如何使用 Win32 API 与 com 端口 (RS232) 通信

    我正在尝试使用 win32 API 与 com 端口对话 我找到了这个http www robbayer com files serial win pdf http www robbayer com files serial win pdf
  • 仅在单个端口 8080 上转发到本地主机(Windows)可能吗? [关闭]

    Closed 这个问题是无关 help closed questions 目前不接受答案 我知道如何在 Windows 上使用 xampp 设置本地网络服务器 我在主机文件 c windows system32 drivers etc ho
  • 如何验证文件名称在 Windows 中是否有效?

    是否有一个 Windows API 函数可以将字符串值传递给该函数 该函数将返回一个指示文件名是否有效的值 我需要验证文件名是否有效 并且我正在寻找一种简单的方法来完成此操作 而无需重新发明轮子 我正在直接使用 C 但针对的是 Win32
  • Node.js 升级在 Windows 中仍然显示旧版本

    我已使用 msi 安装程序下载并安装了新版本的 nodejs 4 1 2 之后我跑了node v 但它仍然显示旧版本 0 12 2 我尝试重新启动Windows 甚至卸载nodejs并重新安装它 但仍然显示相同的内容 为什么会发生这种情况
  • 如何使用GDB修改内存内容?

    我知道我们可以使用几个命令来访问和读取内存 例如 print p x 但是如何更改任何特定位置的内存内容 在 GDB 中调试时 最简单的是设置程序变量 参见GDB 分配 http sourceware org gdb current onl
  • Discord.net 无法在 Linux 上运行

    我正在尝试让在 Linux VPS 上运行的 Discord net 中编码的不和谐机器人 我通过单声道运行 但我不断收到此错误 Unhandled Exception System Exception Connection lost at

随机推荐

  • linux 固定 ip 地址

    文章目录 查看当前ip 修改配置文件 查看当前ip ip addr ifconfig 修改配置文件 vim etc sysconfig network scripts ifcfg ens33 原来是这样的 TYPE Ethernet PRO
  • 软件测试-面试题

    1 什么是需求文档测试 测试需求中是否存在逻辑矛盾以及需求在技术上是否可以实现 2 什么是设计文档测试 测试设计是否符合全部需求以及设计是否合理 3 什么是 测试 Alpha测试 测试 是由一个用户在开发环境下进行的测试 也可以是公司内部的
  • SpringBoot 集成Redisson 提示:java.lang.ClassNotFoundException: **.redis.connection.ReactiveRedisConnec

    SpringBoot 集成Redisson 提示如下错误信息 Caused by java lang ClassNotFoundException org springframework data redis connection Reac
  • Vue安装less报错

    使用npm安装less 指定版本为5 npm install save less less loader 5 报错 npm ERR code ERESOLVE npm ERR ERESOLVE unable to resolve depen
  • 渗透测试面试题--日更(1-9day)

    day one 1 拿到一个待检测的web站 渗透测试思路 答 1 信息收集 获取域名的whois信息 获取注册者的邮箱姓名电话等 查服务器的旁站以及子域名站点 因为主站一般比较难 所以可以先看看旁站有没有通用cms或者其他漏洞 查看服务器
  • 华为OD机试真题-单词接龙-2023年OD统一考试(B卷)

    题目描述 单词接龙的规则是 可用于接龙的单词首字母必须要前一个单词的尾字母相同 当存在多个首字母相同的单词时 取长度最长的单词 如果长度也相等 则取字典序最小的单词 已经参与接龙的单词不能重复使用 现给定一组全部由小写字母组成单词数组 并指
  • 基于高德地图API — 绘制热力图初尝试

    初次了解高德地图 并尝试在地图的基础上绘制热力图 官方传送链接高德开放平台 前提准备 点击注册开发者账号 登录成功后 点击左侧菜单栏 应用管理 如图所示 点击 添加 获取API 服务平台 一项请选择 Web 端 JSAPI 回到页面 引入文
  • 基于DAC0832的信号发生器设计与实现(源码+原理图+PCB)

    摘要 本课题设计了一个基于DAC0832的信号发生器 使之输出不同频率的正弦波 三角波 锯齿波和方波 并通过按键切换不同的波形 也可以改变频率以及频率变化的步进 本方案选择了DAC0832作为核心芯片 并与51单片机结合 设计出一款建议的高
  • 共识算法1--工作量证明机制简介及算法实现

    共识算法1 工作量证明机制简介及算法实现 所谓 共识机制 是通过特殊节点的投票 在很短的时间内完成对交易的验证和确认 对一笔交易 如果利益不相干的若干个节点能够达成共识 我们就可以认为全网对此也能够达成共识 1 当前 已有多种常见的共识机制
  • 【GO】详解GOROOT和GOPATH

    GOROOT 其实就是golang 的安装路径 当你安装好golang之后其实这个就已经有了 GOPATH 作用 存放sdk以外的第三方类库 自己收藏的可复用的代码 目录结构 GOPATH目录约定有三个子目录 3 src存放源代码 比如 g
  • 蚀刻后残留物和光刻胶去除技术

    摘要 在未来几代器件中 去除光刻胶和残留物变得非常关键 在前端线后离子注入 源极 漏极 扩展 使用PR来阻断部分电路导致PR基本上硬化并且难以去除 在后端线 BEOL 蚀刻中 除低k材料的情况下去除抗蚀剂和残留物的选择性非常具有挑战性 介绍
  • uniapp select 多选选择器封装

    前言 作者想实现的功能类似一个uniapp选择器 但是可以选择多个值 同时又可以单选和全选 在uniapp 的UI框架去找 发现没有类似的 最后在uniapp 的插件市场找到了这个multiple select 里面的功能比较全实现了单选全
  • MySQL 多表连接查询

    交叉连接 特点 又称 笛卡尔乘积 将多张表中的数据行一 一对应连接在一起 结果集的数据行数相当于多张表数据行数 相乘 后的结果 语法格式 select 字段列表 from 表1 表2 表3 where 连接条件1 and 连接条件2 注释
  • Windows7下安装Caffe(GPU):试了很久的失败版本(可参考)

    这是个失败的版本 既然记录下来了 就保留下来 总体来说没错 只是可能CUDA版本不合适 可以参考下 一 安装CUDA 1 下载 https developer nvidia com cuda downloads 2 正常安装 出现这个问题
  • Ant Design学习1——概述

    2021SC SDUSC 介绍 Ant Design of React antd 是基于 Ant Design 设计体系的 React UI 组件库 主要用于研发企业级中后台产品 官方简介 蚂蚁集团的企业级产品是一个庞大且复杂的系统 数量多
  • MyEclipse提示过期,MyEclipse Subscription Expired激活方案

    一 错误描述 紧接上文 虽然解决了MyEclipse提示过期问题 但是你会发现出现一行红色提示如下 1 错误日志 Product activation must be completed within 5 days 2 错误说明 产品激活必
  • Windows多显示器编程--VC

    一 Windows中接入多个显示器时 可设置为复制和扩展屏 1 设置为复制屏幕时 多个显示器的分辨率是一样的 位置为0 分辨率值 2 设置为扩展屏幕时 显示器之间的关系比较复杂些 首先Windows系统会识别一个主显示器 这个可以在屏幕分辨
  • 问题总结!常用插件Pytest的测试用例的一些问题

    目录 前言 失败重跑 Pytest rerunfailures 用例执行顺序 Pytest ordering 重复执行 Pytest repeat 多重断言 Pytest assume 前言 Pytest是Python中的一个流行的测试框架
  • Linux经典书籍推荐

    Linux经典书籍推荐 入门篇 LINUX权威指南 书不错 写的很全面也比较广 涉及的不深 做为入门书籍不错 可以比较全面的了解linux 另外比较热门的也可以看看 鸟哥的私房菜 等书 偏管理类的书 如果想做server方向的可以找来看看
  • 如何使用 WSL 在 Windows 上安装 Linux-官方流程

    前提条件 安装 WSL 命令 更改默认安装的 Linux 发行版 设置 Linux 用户信息 设置和最佳实践 检查你正在运行的 WSL 版本 从 WSL 1 升级到 WSL 2 使用 WSL 运行多个 Linux 发行版的方法 想体验最新的