在 Windows 上运行 Linux:WSL2 完整指南(二)

系列文章目录

在 Windows 上运行 Linux:WSL2 完整指南(一)🚪
在 Windows 上运行 Linux:WSL2 完整指南(二)🚪


文章目录

  • 系列文章目录
  • 前言
  • 四、常见问题及解决方法
    • 问题二:0x800701bc
    • 问题三:0x80080005
  • 五、WSL 美化
    • 5.1 准备工作
    • 5.2 安装 oh-my-zsh 美化包
    • 5.3 安装 Powerline9k 主题
    • 5.4 安装字体
  • 六、oh-my-zsh插件
    • 6.1 安装插件
    • 6.2 添加天气和时钟显示
    • 6.3 启动动画
  • 总结


前言

在第一篇文章中,我们介绍了 WSL2 的特点和与传统虚拟机的比较,并讲解了如何在 Windows 上安装和配置 WSL2。在这篇文章中,我们将继续解决一些常见问题,并介绍如何对 WSL2 进行美化,使其使用体验更加友好。

在这里插入图片描述


四、常见问题及解决方法

问题二:0x800701bc

描述:在安装完 Linux 分发版之后可能会出现报错。

在这里插入图片描述

这个错误可能是因为电脑版本过低,需要下载安装适用于 x64 计算机的最新 WSL2 Linux 内核更新包。

解决方法:
下载链接:WSL2 Linux 内核更新包🚪。下载完更新包之后点击 next -> finish 即可解决问题。

问题三:0x80080005

描述:在输入用户名 huahua 的时候报错WslLaunchInteractive adduser --quiet --gecos '' huahua failed with error: 0x80080005

这个错误通常与COM(组件对象模型)服务有关,可能是由于WSL安装或配置的问题导致的

解决方法:

  1. 尝试重启 WSL 服务。在 PowerShell(以管理员身份运行)中执行以下命令:
net stop LxssManager
net start LxssManager
  1. 如果特定的Linux发行版出现问题,可以尝试重置该发行版。注意,这会清除该发行版中的所有数据。然后重新安装该发行版。
wsl --unregister <发行版名称>
  1. 确保已经启用了WSL和虚拟机平台功能。在PowerShell(以管理员身份运行)中执行以下命令:
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart
dism.exe /online /enable-feature /featurename:VirtualMachinePlatform /all /norestart
  1. 尝试重装WSL组件。在PowerShell(以管理员身份运行)中执行以下命令:
dism.exe /online /disable-feature /featurename:Microsoft-Windows-Subsystem-Linux
dism.exe /online /enable-feature /featurename:Microsoft-Windows-Subsystem-Linux /all /norestart

五、WSL 美化

5.1 准备工作

确保已经存在 WSL2,并在微软商店下载并安装 Windows Terminal。

5.2 安装 oh-my-zsh 美化包

  1. 安装 zsh:
sudo apt update
sudo apt install zsh -y

在这里插入图片描述

  1. 安装oh-my-zsh(代理工具🚪)
sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

在这里插入图片描述

5.3 安装 Powerline9k 主题

  1. 安装主题
git clone https://github.com/bhilburn/powerlevel9k.git ~/.oh-my-zsh/custom/themes/powerlevel9k

在这里插入图片描述

  1. 启用主题:编辑 ~/.zshrc 配置文件,修改 ZSH_THEME 项的内容为:ZSH_THEME="powerlevel9k/powerlevel9k"
    在这里插入图片描述

5.4 安装字体

访问 nerd-fonts🚪 的 Github release 页,下载某种字体的压缩包(如 JetBrainsMono.zip),解压后在 Windows 系统上安装字体文件(有些时候可能需要使用管理员权限安装)

修改 Windows Terminal 的默认字体:
在这里插入图片描述


六、oh-my-zsh插件

6.1 安装插件

  1. 安装 zsh-autosuggestions(自动补全):
git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
  1. 安装 zsh-syntax-highlighting(高亮显示):
git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting
  1. 启用插件(包含默认插件):修改 ~/.zshrc 配置文件的 plugins 项,内容如下(可按需添加或删减)
plugins=(cargocommand-not-founddockergitgolangnpmnvmrustsudosystemdweb-searchzsh-autosuggestionszsh-syntax-highlighting
)

6.2 添加天气和时钟显示

用一个shell脚本显示
root文件夹下新建一个weather-clock.sh文件,代码如下:

#!/bin/bash# NAME: now
# PATH: $HOME/bin
# DESC: Display current weather, calendar and time
# CALL: Called from terminal or ~/.bashrc
# DATE: Apr 6, 2017. Modified: May 24, 2019.# UPDT: 2019-05-24 If Weather unavailable nicely formatted error message.# NOTE: To display all available toilet fonts use this one-liner:
#       for i in ${TOILET_FONT_PATH:=/usr/share/figlet}/*.{t,f}lf; do j=${i##*/}; toilet -d "${i%/*}" -f "$j" "${j%.*}"; done# Setup for 92 character wide terminal
DateColumn=34 # Default is 27 for 80 character line, 34 for 92 character line
TimeColumn=61 # Default is 49 for   "   "   "   "    61 "   "   "   "# Replace Edmonton with your city name, GPS, etc. See: curl wttr.in/:help
curl wttr.in/Shanghai?0 --silent --max-time 3 > /tmp/now-weather
# Timeout #. Increase for slow connection---^readarray aWeather < /tmp/now-weather
rm -f /tmp/now-weather# Was valid weather report found or an error message?
if [[ "${aWeather[0]}" == "Weather report:"* ]] ; thenWeatherSuccess=trueecho "${aWeather[@]}"
elseWeatherSuccess=falseecho "+============================+"echo "| Weather unavailable now!!! |"echo "| Check reason with command: |"echo "|                            |"echo "| curl wttr.in/Edmonton?0    |" # Replace Edmonton with your cityecho "|   --silent --max-time 3    |"echo "+============================+"echo " "
fi
echo " "                # Pad blank lines for calendar & time to fit#--------- DATE -------------------------------------------------------------# calendar current month with today highlighted.
# colors 00=bright white, 31=red, 32=green, 33=yellow, 34=blue, 35=purple,
#        36=cyan, 37=whitetput sc                 # Save cursor position.
# Move up 9 lines
i=0
while [ $((++i)) -lt 10 ]; do tput cuu1; doneif [[ "$WeatherSuccess" == true ]] ; then# Depending on length of your city name and country name you will:#   1. Comment out next three lines of code. Uncomment fourth code line.#   2. Change subtraction value and set number of print spaces to match#      subtraction value. Then place comment on fourth code line.Column=$((DateColumn - 10))tput cuf $Column        # Move x column number# Blank out ", country" with x spacesprintf "          "
elsetput cuf $DateColumn    # Position to column 27 for date display
fi# -h needed to turn off formating: https://askubuntu.com/questions/1013954/bash-substring-stringoffsetlength-error/1013960#1013960
cal > /tmp/terminal1
# -h not supported in Ubuntu 18.04. Use second answer: https://askubuntu.com/a/1028566/307523
tr -cd '\11\12\15\40\60-\136\140-\176' < /tmp/terminal1  > /tmp/terminalCalLineCnt=1
Today=$(date +"%e")printf "\033[32m"   # color green -- see list above.while IFS= read -r Cal; doprintf "%s" "$Cal"if [[ $CalLineCnt -gt 2 ]] ; then# See if today is on current line & invert backgroundtput cub 22for (( j=0 ; j <= 18 ; j += 3 )) ; doTest=${Cal:$j:2}            # Current day on calendar lineif [[ "$Test" == "$Today" ]] ; thenprintf "\033[7m"        # Reverse: [ 7 mprintf "%s" "$Today"printf "\033[0m"        # Normal: [ 0 mprintf "\033[32m"       # color green -- see list above.tput cuf 1elsetput cuf 3fidonefitput cud1               # Down one linetput cuf $DateColumn    # Move 27 columns rightCalLineCnt=$((++CalLineCnt))
done < /tmp/terminalprintf "\033[00m"           # color -- bright white (default)
echo ""tput rc                     # Restore saved cursor position.#-------- TIME --------------------------------------------------------------tput sc                 # Save cursor position.
# Move up 8 lines
i=0
while [ $((++i)) -lt 9 ]; do tput cuu1; done
tput cuf $TimeColumn    # Move 49 columns right# Do we have the toilet package?
if hash toilet 2>/dev/null; thenecho " $(date +"%I:%M %P") " | \toilet -f future --filter border > /tmp/terminal
# Do we have the figlet package?
elif hash figlet 2>/dev/null; then
#    echo $(date +"%I:%M %P") | figlet > /tmp/terminaldate +"%I:%M %P" | figlet > /tmp/terminal
# else use standard font
else
#    echo $(date +"%I:%M %P") > /tmp/terminaldate +"%I:%M %P" > /tmp/terminal
fiwhile IFS= read -r Time; doprintf "\033[01;36m"    # color cyanprintf "%s" "$Time"tput cud1               # Up one linetput cuf $TimeColumn    # Move 49 columns right
done < /tmp/terminaltput rc                     # Restore saved cursor position.exit 0

输入 curl wttr.in 命令可以查看当前位置天气情况
在这里插入图片描述
如果要更换为自己所在城市的天气,在上面的代码19行处,可自行更换为自己所在城市。运行上面的代码还需要下载两个插件,一个是ncaltoilet,分别是日期和时钟

sudo apt install ncal toilet

最后编辑 ~/.zshrc 配置文件,在最后一行加上bash /root/weather-clock.sh代码,重新打开WSL即可看到
在这里插入图片描述

6.3 启动动画

运行git clone https://github.com/pipeseroni/pipes.sh.git命令,在~/.zshrc 配置文件天气的前一行加上bash /root/pipes.sh/pipes.sh -p 5即可
在这里插入图片描述
运行效果为如下图片,按下空格键可退出动画:
在这里插入图片描述


总结

通过上述步骤,我们可以有效解决在使用 WSL2 过程中可能遇到的常见问题,并对 WSL2 进行美化,使其使用体验更加友好。希望这篇文章能为您在 Windows 上运行 Linux 提供帮助。希望这篇博客对你有所帮助,如果有任何疑问或需要进一步的信息,欢迎随时讨论🌹

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

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

相关文章

昇思25天学习打卡营第17天|LLM-基于MindSpore的GPT2文本摘要

打卡 目录 打卡 环境准备 准备阶段 数据加载与预处理 BertTokenizer 部分输出 模型构建 gpt2模型结构输出 训练流程 部分输出 部分输出2&#xff08;减少训练数据&#xff09; 推理流程 环境准备 pip install -i https://pypi.mirrors.ustc.edu.cn/simple mindspo…

AV1技术学习:Affine Motion Compensation

一、Affine Model Parameter 除了传统的平移运动补偿&#xff0c;AV1 还支持仿射变换模型&#xff0c;将当前像素点 (x, y) 通过以下方式投影到参考帧中的预测像素点 (x, y). 参数 (h13, h23) 对应于平移模型中使用的常规运动向量。 参数 h11 和 h22 控制垂直和水平轴上的比例…

Spring后端框架复习总结

之前写的博客太杂,最近想把后端框架的知识点再系统的过一遍,主要是Spring Boot和Mybatis相关,带着自己的理解使用简短的话把一些问题总结一下,尤其是开发中和面试中的高频问题,基础知识点可以参考之前写java后端专栏,这篇不再赘述。 目录 Spring什么是AOP?底层原理?事务…

【HarmonyOS NEXT】网络请求 - 分页加载

分页加载关键字&#xff1a;onReachEnd 一、申请网络权限 在 module.json5 文件中&#xff0c;添加网络权限&#xff1a; {"module": {..."requestPermissions": [{"name": "ohos.permission.INTERNET","usedScene": {&qu…

K8S实战进阶

title ‘K8S实战进阶’ date 2024-04-02T16:57:3608:00 draft true 一、搭建Kubernetes集群 1.1 搭建方案 1.1.1 minikube minikube 是一个工具&#xff0c; 能让你在本地运行 Kubernetes。 minikube 在你的个人计算机&#xff08;包括 Windows、macOS 和 Linux PC&…

图像生成(Text-to-Image)发展脉络

这篇博客对 图像生成&#xff08;image generation&#xff09; 领域的经典工作发展进行了梳理&#xff0c;包括重要的一些改进&#xff0c;目的是帮助读者对此领域有一个整体的发展方向把握&#xff0c;并非是对每个工作的详细介绍。 脉络发展&#xff08;时间顺序&#xff0…

WGS84经纬度坐标 GCJ02火星坐标 BD09百度坐标互相转换

WGS84经纬度坐标 GCJ02火星坐标 BD09百度坐标互相转换 背景&#xff1a;uniapp做的微信小程序&#xff0c;使用到了相机拍照并获取位置坐标信息&#xff1b;在腾讯地图上展示坐标点位置信息&#xff1b; 由于业务需要我们的PC端用的不是腾讯地图&#xff0c;需要使用WGS84坐标或…

uniapp判断h5/微信小程序/app端+实战展示

文章目录 导文使用条件编译的基本语法常见的平台标识符示例实战展示使用场景举例注意事项 导文 这里是导文 当你在开发Uni-app时&#xff0c;需要根据不同的平台&#xff08;比如App端、H5端、微信小程序等&#xff09;来执行不同的代码逻辑&#xff0c;可以使用条件编译来实现…

03 Git的基本使用

第3章&#xff1a;Git的基本使用 一、创建版本仓库 一&#xff09;TortoiseGit ​ 选择项目地址&#xff0c;右键&#xff0c;创建版本库 ​ 初始化git init版本库 ​ 查看是否生成.git文件&#xff08;隐藏文件&#xff09; 二&#xff09;Git ​ 选择项目地址&#xff0c…

Redis分布式系统中的主从复制

本篇文章主要对Redis的主从复制进行讲解。主要分析复制的原理&#xff0c;包括:建立复制、全量复制、部分复制、全量复制、心跳检测等。希望本篇文章会对你有所帮助。 文章目录 一、主从复制简介 二、配置主从复制模式 断开主从复制 安全性 只读 传输延迟 三、拓扑结构 四、主…

Java开发之Java容器

#来自ゾフィー&#xff08;佐菲&#xff09; 1 总览 1.1 List ArrayList&#xff1a; Object[]数组Vector&#xff1a;Object[]数组LinkedList&#xff1a; 双向链表&#xff0c;JDK1.6 之前为循环链表&#xff0c;JDK1.7 取消了循环 1.2 Set HashSet&#xff1a;无序&#xf…

mybatis 报CannotGetJdbcConnectionException

目录 报错起因 报错截图 运行环境 数据库配置 解决思路 报错起因 在web项目上拉取代码启动web服务抛CannotGetJdbcConnectionException。 报错截图 运行环境 windows idea maven tomcat springMVC mybatis 数据库配置 urlxxx driverClassNamexxx usernamexxx pass…

docker compose 容器 编排分组

遇到问题&#xff1a;执行docker compose up -d 后docker compose 创建的容器们 在desktop-docker 中都在docker下一堆 搜索想着能不能把这个docker名字改一下&#xff0c;但是都没有找到这样的一个方案&#xff1b; 最后发现&#xff0c;我执行docker compose up -d 命令所在…

【数据结构】二叉树OJ题_对称二叉树_另一棵的子树

对称二叉树 题目 101. 对称二叉树 - 力扣&#xff08;LeetCode&#xff09; 给你一个二叉树的根节点 root &#xff0c; 检查它是否轴对称。 示例 1&#xff1a; 输入&#xff1a;root [1,2,2,3,4,4,3] 输出&#xff1a;true示例 2&#xff1a; 输入&#xff1a;root [1,2…

Linux文件和目录常用命令

1.操作命令 查看目录内容 ls 切换目录 cd 创建和删除操作 touch rm mkdir 拷贝和移动文件 cp mv 查看文件内容 cat more grep 其他 echo 重定向 > 和 >> 管道 | 1.1 终端实用技巧 1>自动补全 在敲出 文件/目录/命令 的前几个字母之后&#xff0c;按下…

git实操之线上分支合并

线上分支合并 【 1 】本地dev分支合并到本地master上 # 本地dev分支合并到本地master上# 远程(线上)分支合并# 本地dev分支合并到本地master上# 远程(线上)分支合并#####本地和线上分支同步################ #### 远程创建分支&#xff0c;拉取到本地####-远程创建分支&#…

FPGA:频闪灯设计

1、需求 若在FPGA上实现LED灯一秒闪烁一次&#xff0c;先进行计算&#xff0c;1秒闪烁一次&#xff0c;即周期为1秒&#xff0c;开发板XC7A35TFFG-2的基本时钟输入由板载 50MHz 有源晶振提供&#xff0c;即频率为f 50MHz 。 则一个周期为 T 1 f 1 50 M H z 20 n s T\frac{…

git使用、git与idea结合、gitee、gitlab

本文章基于黑马程序javase模块中的"git"部分 先言:git在集成idea中,不同版本的idea中页面显示不同,操作时更注重基于选项的文字;git基于命令操作参考文档实现即可,idea工具继承使用重点掌握 1.git概述 git是目前世界上最先进的分布式文件版本控制系统 分布式:将…

FastAPI(六十六)实战开发《在线课程学习系统》接口开发--用户注册接口开发

在前面我们分析了接口的设计&#xff0c;那么我们接下来做接口的开发。 首先&#xff0c;我们先设计下pydantic用户参数的校验&#xff1a; """ -*- encodingutf-8 -*- Time: 2024/7/19 16:48 Author: lc Email: 15101006331163.com File: schemas.py "&…

基于单片机的智能医疗监护系统设计

1.简介 随着社会的发展&#xff0c;智能化电子设备成为了人们生活中不可或缺的一部分&#xff0c;尤其是在人们对于身心健康更加注重的今天&#xff0c;智能医疗监护系统应运而生。本套电子监护设备集体温测量、心电采集、心率监测、血氧监测于一体&#xff0c;带有语音播报模块…