WSL2 最新最全帮助小白一步步详细安装教程

文章目录

  • 一、前言
    • 1.1、什么是 WSL ?
    • 1.2、WSL2 相比传统虚拟机的优势
    • 1.3、微软官方
  • 二、安装步骤`*`
    • 2.1、启用 WSL 功能
    • 2.2、重启电脑
    • 2.3、dos命令自动安装 (一行命令搞定,非常方便)
          • 2.3.1、通过 cmd 打开 dos 命令行 或者 WIN键 + R:
          • 2.3.2、输入底下命令
    • 2.4、首次运行设置
  • 三、一些常用设置
    • 3.1、将分发版本设置为 WSL 1 或 WSL 2
          • 3.1.1、查看 WSL 版本和分发版本
          • 3.1.2、如果想切换 wsl 版本,或者设置分发版本
    • 3.2、下次启动 wsl
    • 3.3、Windows 上操作 Linux
    • 3.4、Linux 操作 Windows 文件
    • 3.5、安装 Terminal
          • 3.5.1、安装后的界面
          • 3.5.1、修改默认启动终端
    • 3.6、安装 oh-my-zsh(主题、字体)
          • 3.6.1、打开 PowerShell,依次执行如下命令 Powerline 字体集合:
          • 3.6.2、接着安装 zsh:
          • 3.6.3、再安装 oh-my-zsh:
          • 3.6.4、解决办法
          • 3.6.5、安装完 oh-my-zsh 后,编辑 ~/.zshrc 文件,将主题设置为 agnoster:
          • 3.6.6、再次打开 Terminal 的 JSON 配置文件,在 schemes 中添加一个主题,主题名随意,这里为 wsl2:
          • 3.6.7、然后在该 JSON 文件中把 wsl 终端的主题设置为该 wsl2 主题,并把字体改为你喜欢的一个 Powerline 字体:
          • 3.6.8、最后一步,再做一点点美化:把命令行的机器名称去掉,并调整用户名的背景色。编辑 agnoster 主题文件:


一、前言

  • 快速安装只需操作打星号的步骤!

1.1、什么是 WSL ?

WSL(Windows Subsystem for Linux)是微软开发的一项技术,允许用户在Windows系统中直接运行完整的Linux环境,无需虚拟机。通过操作系统级虚拟化,WSL将Linux子系统无缝嵌入Windows,提供原生Linux命令行工具、软件包管理器及应用程序支持。它具有轻量化、文件系统集成、良好的交互性及开发效率提升等优点,消除了Windows与Linux之间的隔阂,尤其适合开发者和需在Windows平台上使用Linux工具的用户。

1.2、WSL2 相比传统虚拟机的优势

(1)传统的 VM 体验可能启动速度慢,是独立的,消耗大量资源,需要你花费时间进行管理。
(2)使用 Linux 文件系统以提高性能。
(3)提高文件系统性能,以及添加完全的系统调用兼容性。
(4)提升了文件 IO 性能。在使用 WSL 2 的情况下,文件密集型操作(如 git 克隆、npm 安装、apt 更新、apt 升级等)的速度都明显更快。
(5)在启动时使用的内存量更少。

1.3、微软官方

微软官方文档:https://docs.microsoft.com/zh-cn/windows/wsl/

二、安装步骤*

2.1、启用 WSL 功能

(1)打开开始菜单,在开始菜单中点击应用与程序;
(2)在应用与程序选项里面,鼠标滚到最底下,点击程序与功能;
(3)点击选项启用或关闭 Windows 功能;
(4)在弹出的窗口中勾选 虚拟机平台 和 适用于 Linux 的 Windows 子系统。
在这里插入图片描述

2.2、重启电脑

为了确保所有相关部件都整齐到位,需要重启系统,否则可能会发现事情没按预期进行。

2.3、dos命令自动安装 (一行命令搞定,非常方便)

对于 windows10 版本2004(内部版本19041或更高)及更新版本或者 windows11,可以直接用 dos
命令安装,如下:

2.3.1、通过 cmd 打开 dos 命令行 或者 WIN键 + R:

在这里插入图片描述

2.3.2、输入底下命令
 wsl --install

(略) 如果版本安装不成功,通过底下的方法查看 windows 系统版本:
在键盘上按下win+R调出运行窗口,随后输入“winver”命令并回车。
在这里插入图片描述

2.4、首次运行设置

等待几分钟,会跳出输入账号密码的界面。
首次启动需要设置用户名,输入用户名后进行密码设置,设置好后可以看到Ubuntu启动成功。如下所示:
在这里插入图片描述
到此 Linux 系统安装完成!
可以通过 cat /etc/os-release 命令查看 Linux 的版本。

三、一些常用设置

3.1、将分发版本设置为 WSL 1 或 WSL 2

3.1.1、查看 WSL 版本和分发版本

windows 下以管理员身份打开 cmd 或者 powershell 。
可以打开 PowerShell 命令行并输入以下命令检查分配给每个已安装的 Linux 分发版的 WSL 版本:

wsl -l -v 或者 wsl --list --verbose

如下:
在这里插入图片描述

3.1.2、如果想切换 wsl 版本,或者设置分发版本

设置 Ubuntu-20.04 为 WSL 2

 wsl.exe --set-version Ubuntu-20.04 2

如果要设置为 WSL 1,执行如下命令:

 wsl.exe --set-version Ubuntu-20.04 1

3.2、下次启动 wsl

下次想要使用 wsl 的话,在 cmd 或者 powershell 内输入 wsl 命令即可:
在这里插入图片描述

3.3、Windows 上操作 Linux

在 Windows 文件资源管理器左侧可以找到 Linux 的标志,点击 Linux 就可以操作 Linux 文件。
在这里插入图片描述

3.4、Linux 操作 Windows 文件

Windows 下的所有文件都被挂载在了 /mnt 下,在Windows 终端中的任意目录下输入 wsl,即可进入 Linux 对应的路径。
在这里插入图片描述

3.5、安装 Terminal

3.5.1、安装后的界面

打开微软应用商店,搜索“Terminal”,安装,打开后的界面是这样的:
在这里插入图片描述

3.5.1、修改默认启动终端

默认打开的是 PownerShell 终端,我们可以设置为默认打开 Ubuntu 终端。
(1)点击标签右边的下拉三角,选择设置;
(2)打开一个 JSON 配置文件,使用随意一个文本软件打开;
在这里插入图片描述
(3)在 profiles->list 中搜索 Ubuntu 并复制 guid;
(4)将它粘贴为文件开头的 defaultProfile 的值;
(5)重启 terminal 发现,默认终端改变了。
在这里插入图片描述

3.6、安装 oh-my-zsh(主题、字体)

我们需要先安装一些额外的字体来支持 oh-my-zsh 显示特殊的符号。

3.6.1、打开 PowerShell,依次执行如下命令 Powerline 字体集合:
git clone https://github.com/powerline/fonts.git
cd fonts
.\install.ps1
3.6.2、接着安装 zsh:
sudo apt update
sudo apt install git zsh -y
3.6.3、再安装 oh-my-zsh:
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

看到这个界面就说明已经成功了
在这里插入图片描述
此步如果报如下等相关错误,使用以下 3.6.4 的解决办法:

curl: (7) Failed to connect to raw.githubusercontent.com port 443: Connection refused
3.6.4、解决办法

(略 本人使用方案 2 )1、增加 用于访问 raw.githubusercontent.com 的 DNS
首先查看 raw.githubusercontent.com 的IP地址 用下面的网站,查询ip:
https://site.ip138.com/raw.Githubusercontent.com/

修改hosts Ubuntu,CentOS及macOS直接在终端输入
sudo vi /etc/hosts
添加以下内容保存即可 (IP地址查询后相应修改,可以ping不同IP的延时 选择最佳IP地址)

# GitHub Start
52.74.223.119 github.com
192.30.253.119 gist.github.com
54.169.195.247 api.github.com
185.199.111.153 assets-cdn.github.com
151.101.76.133 raw.githubusercontent.com
151.101.76.133 gist.githubusercontent.com
151.101.76.133 cloud.githubusercontent.com
151.101.76.133 camo.githubusercontent.com
151.101.76.133 avatars0.githubusercontent.com
151.101.76.133 avatars1.githubusercontent.com
151.101.76.133 avatars2.githubusercontent.com
151.101.76.133 avatars3.githubusercontent.com
# GitHub End

2、由于我们位于中国或印度(对于某些 ISP)等国家/地区,则可能需要替换 URL 才能安装。
把 raw.githubusercontent.com 替换为 https://install.ohmyz.sh
使用以下命令安装 oh-my-zsh :

MethodCommand
curlsh -c “$(curl -fsSL https://install.ohmyz.sh/)”
wgetsh -c “$(wget -O- https://install.ohmyz.sh/)”
fetchsh -c “$(fetch -o - https://install.ohmyz.sh/)”

3、如果还不行,请到 github 上查看最新解决办法:

源码地址:https://github.com/ohmyzsh/ohmyzsh/

3.6.5、安装完 oh-my-zsh 后,编辑 ~/.zshrc 文件,将主题设置为 agnoster:

在这里插入图片描述

3.6.6、再次打开 Terminal 的 JSON 配置文件,在 schemes 中添加一个主题,主题名随意,这里为 wsl2:

在这里插入图片描述

3.6.7、然后在该 JSON 文件中把 wsl 终端的主题设置为该 wsl2 主题,并把字体改为你喜欢的一个 Powerline 字体:

在这里插入图片描述
字体修改前:
在这里插入图片描述
字体修改后:
在这里插入图片描述

3.6.8、最后一步,再做一点点美化:把命令行的机器名称去掉,并调整用户名的背景色。编辑 agnoster 主题文件:
 vi ~/.oh-my-zsh/themes/agnoster.zsh-theme

把 92 行修改为:

 prompt_segment green black "%(!.%{%F{yellow}%}.)%n"

修改后如下:
在这里插入图片描述

到此主题和字体优化结束


谢谢点赞关注哈!

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

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

相关文章

探案录 | 在线打补丁,运维更轻松

清晨,曙光温柔地洒落在福尔摩斯K那标志性的书房内,福尔摩斯K坐在他那张熟悉的扶手椅上,眼神锐利如鹰,正沉浸在思考的海洋中。门突然被推开,华生K带着一丝急切步入室内。 “福尔摩斯K,这次案件非同小可&…

如何在线观看汤姆克鲁斯、比莉艾利什、红辣椒乐队、HER等明星的奥运闭幕式

2024 年巴黎奥运会将以一系列众星云集的表演者为结尾,他们将帮助将奥运会移交给洛杉矶——以下是在线直播盛大决赛的时间和地点。 经过两周多令人惊叹的田径运动、激烈的比赛和表情包活动后,2024 年巴黎奥运会即将落下帷幕。 奥运会闭幕式将于 8 月 12 …

【C++】 特殊类设计:从构思到实现,引领设计新潮流

🌈 个人主页:Zfox_ 🔥 系列专栏:C从入门到精通 目录 🚀 前言 一: 🔥 不能被拷贝的类 二: 🔥 只能在堆上创建对象的类 三: 🔥 只能在栈上创建对象的…

uniapp使用echarts在H5上显示报错问题的解决方法

前言 在做uniapp vue3开发的echarts图表的时候,发现在浏览器上面正常运行,但在微信开发者工具上显示报错了,报错如下 原因:在微信小程序中,使用document.getElementById会报错,因为小程序的运行环境是基于…

目前最强的文生图模型?!FLUX完全解读!附体验地址

大家好,我是木易,一个持续关注AI领域的互联网技术产品经理,国内Top2本科,美国Top10 CS研究生,MBA。我坚信AI是普通人变强的“外挂”,专注于分享AI全维度知识,包括但不限于AI科普,AI工…

css rem之2024

话题开始前 我们都知道1rem是等于html fontSize标签的字体大小的,我们主要用来做移动端网页设计稿等比例在手机上面的显示。 看到的问题 这个html fontsize的大小是通过js动态计算的,而这个js的运行时晚于html渲染的,所以会导致一个问题&am…

python网络爬虫使用代理

Python网络爬虫使用代理的实用指南 在网络爬虫的开发过程中,使用代理是一个非常重要的环节。代理不仅可以帮助爬虫绕过反爬虫机制,还能保护开发者的隐私。本文将介绍如何在Python中使用代理进行网络爬虫,包括基本的设置和示例代码。 1. 代理…

WordPress多用途电子商务博客新闻主题betheme 21.5.6版本

简介: WordPress多用途电子商务博客新闻主题betheme 21.5.6版本 自带500多套模板 BeTheme第一次发布于2014年5月21日,自那时以来,已有数以百万计的人下载了BeTheme,其评分为4.8。 这个主题是WooCommerce支持的,在此…

Git代码管理规范

1. 简介 git 分支分为集成分支、功能分支和修复分支,分别命名为 develop、feature 和 hotfix,均为单数。不可使用 features、future、hotfixes、hotfixs 等错误名称。 master(主分支,永远是可用的稳定版本,不能直接在…

mybatis xml 动态sql相关语法

<?xml version"1.0" encoding"UTF-8" ?> <!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN""http://mybatis.org/dtd/mybatis-3-mapper.dtd"><mapper namespace"com.xiaKangan.mapper.EmpMapper&qu…

JavaScript 文档元素获取

目录 通过id获取文档元素 任务描述 相关知识 什么是DOM 文档元素 节点树 通过id获取文档元素 编程要求 通过类名获取文档元素 任务描述 相关知识 通过类名获取文档元素 编程要求 通过标签名获取文档元素 任务描述 相关知识 通过标签的名字获取文档元素 获取标…

android13 关闭selinux 临时关闭或者永久关闭

总纲 android13 rom 开发总纲说明 目录 1.前言 2.情况分析 2.1 临时关闭 2.2 永久关闭 3.修改方法 3.1 临时修改 3.2 永久关闭 4.编译测试 5.彩蛋 1.前言 在Android操作系统中,SELinux(Security-Enhanced Linux)是一种安全模块,用于提供强制访问控制(MAC)安全…

IDEA自定义注释模版

1.类&#xff08;接口/枚举等同理&#xff09; 2.方法模版 先自定义一个模版组&#xff0c;然后在里面添加模版名&#xff0c;触发快捷键&#xff08;Tab/Enter&#xff09;&#xff0c;模版描述&#xff0c;哪些语言中应用 模版中的自定义参数params和returns可以自动展开参数…

Linux学习记录(五)-------三类读写函数

文章目录 三种读写函数1.行缓存2.无缓存3.全缓存4.fgets和fputs5.gets和puts 三种读写函数 1.行缓存 遇到新行&#xff08;\n&#xff09;,或者写满缓存时&#xff0c;即调用系统函数 读&#xff1a;fgets,gets,printf,fprintf,sprintf写&#xff1a;fputs,puts,scanf 2.无缓…

Golang | Leetcode Golang题解之第328题奇偶链表

题目&#xff1a; 题解&#xff1a; func oddEvenList(head *ListNode) *ListNode {if head nil {return head}evenHead : head.Nextodd : headeven : evenHeadfor even ! nil && even.Next ! nil {odd.Next even.Nextodd odd.Nexteven.Next odd.Nexteven even.N…

贷齐乐系统sql注入漏洞

目录 源码 代码流程 payload编写 全局污染 php小特性 注入思路 payload构造 获取数据库名&#xff0c;这里是不可以使用database的因为括号被过滤乐 在information中查询数据库名 然后获取表名 获取数据 源码 <?php header("Content-type: text/html; char…

基于ssm+vue+uniapp的网上商城小程序

开发语言&#xff1a;Java框架&#xff1a;ssmuniappJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;M…

mac要装虚拟机吗

在Mac上安装虚拟机可以带来多种好处&#xff0c;‌但同时也存在一些潜在的影响。‌ 首先&#xff0c;‌虚拟机技术允许在同一设备上运行多个操作系统&#xff0c;‌这对于需要测试不同操作系统兼容性的开发者和IT专业人员来说非常有用。‌此外&#xff0c;‌虚拟机还能解决软件…

fastadmin自定义弹框,以及回调函数等问题,

效果图 1&#xff0c; 代码 弹框中使用弹框 弹框1代码主要代码 <div class"form-group ccol-xs-12 col-sm-2" style"text-align: right"><a href"#" data-url"{:url(user/add)}" class"btn btn-info" id"a…

【多线程】如何实现三个线程循环打印ABC

&#x1f970;&#x1f970;&#x1f970;来都来了&#xff0c;不妨点个关注叭&#xff01; &#x1f449;博客主页&#xff1a;欢迎各位大佬!&#x1f448; 文章目录 1. 如何实现三个线程顺序打印ABC1.1 详细要求描述1.2 使用join()1.3 实现代码1.4 运行结果 2. 如何实现三个线…