如何设置Windows 11的WSL系统用作备用桌面环境

如何设置Windows 11的WSL系统用作开发环境(含Astrill设置)

如何设置Windows 11的WSL系统用作备用桌面环境

引子:
2023年末,公司突然遭遇网络攻击,调整了防火墙设置,连接VPN用来飞X软件,与原来使用的VPN软件冲突了,因此要么设置双启动系统,要么用虚拟系统;此外,也想设置一个专用系统用于开发环境;那么最小代价是什么,WSL V2似乎是首选?

备注:

  1. 以下设置步骤基本都来自于公开资料,不少步骤都有多种操作方法(CSDN或者知乎相关文章),但是经过检索和尝试之后,本文中提供的方法经验证有效的步骤;
  2. 考虑到不同读者的背景,挑选了图形界面操作和命令行两种操作方式。如果有开发经验或者习惯于使用终端命令的读者会发现,命令行更直接和高效。

安装前准备(参加文献2)

为确保WSL V2版能使用虚拟GPU功能,确保Linux GUI程序的正确运行,推荐安装前确认显卡驱动更新到合适的版本;
特别说明】因为是支持WSL2运行虚拟GPU,因此在相应链接中请下载用于Windows 11(32/64位)对应版本的驱动

  • Intel GPU 驱动程序
  • AMD GPU 驱动程序
  • NVIDIA GPU 驱动程序

第1步:安装WSL V2(参见文献1)

1.1 安装Windows Subsystem for Linux(即WSL)

方法1:开启Windows 功能(Windows 11默认使用WSL 2)

在Windows 11的“搜索”中输入“启用功能”,选择
启用或关闭Windows功能选项
在“Windows功能”对话框中,选择如下3项
在这里插入图片描述
【注意】
Hyper V选项(见下图)不是必须的,如果仅仅使用WSL提供Ubuntu等Linux系统,建议不选择此项,节省资源。
在这里插入图片描述

方法2:直接在Powershell中使用命令

运行该命令时注意Powershell以管理员权限启动(以下无特殊说明都建议使用管理员权限进行安装和设置)

wsl --install

说明: 安装接近尾声的时候,会涉及到用户账号信息设置(名字以及账号密码),类似下方的提示内容,参考提示设置即可。
在这里插入图片描述

第2步:安装Ubuntu系统

方法1:使用 Windows Store提供的Ubuntu

在Windows Store中输入Linux关键词的时候,会出现不少可以选择的版本,截止2024年1月,最新的稳定版本(LTS版本)是22.04.3 LTS,直接选择安装即可。
在这里插入图片描述

方法2:第一步中的命令已经默认安装合适的Ubuntu发行版本,不需要额外操作

【补充说明】使用 WSL 命令安装其他Linux版本
wsl --list --online

将显示可以安装的Linux分发版本如下:
WSL可以安装的Linux版本
然后以如下命令,安装期望的版本。注意尖括号<>中的版本应该输入红色框线那一列的名字,而不是右边的“Friendly Name”

wsl --install -d <Distribution Name>

【注意】
如果运行“wsl --list --online”报错,显示如下内容,请参考此处【安装WSL时遇到“无法解析服务器名称或地址”的错误及解决方法】
在这里插入图片描述

第3步:设置WSL Ubuntu系统的中文本地信息及字体

3.1 安装中文语言包并设置中文为默认语言

1)设定中文区域配置
sudo apt install language-pack-zh-hans
sudo dpkg-reconfigure locales

运行上述第2行命令之后,会出现一个文本模式的菜单设置界面(如下),使用TAB健移动光标位置,空格键选择对应的区域选项(用PageUp/PageDown可以翻页),然后确定退出,即可完成设置。
在这里插入图片描述
说明】上图中是已经完成中文设置的显示效果,读者第一次操作时可能显示的是全英文,仔细阅读文字说明即可,不用紧张。
到这里,重启WSL Ubuntu终端即可显示中文。但是,如果运行Linux GUI软件(譬如火狐或者谷歌浏览器),还是无法正常显示中文。按照接下来步骤安装中文字体,才能解决问题。

2)为系统安装中文字体
 sudo apt install fontconfigsudo cp -r /mnt/c/Windows/Fonts /usr/share/fonts/windowssudo apt-get install --reinstall ttf-mscorefonts-installer   sudo fc-cache -f -v

上述命令中:

  • 第1行:安装字体管理程序
  • 第2行:直接借用宿主操作系(即用来安装WSL的Windows11)自带的字体,复制一份到WSL的字体文件中,避免了满世界找字体的麻烦(:确实有不少文章推荐使用Linux专用字体并进行了详细说明,如果有时间和精力可以自行研究,可参见文献4)。
  • 第3行:安装微软TTF字体转换程序;安装过程中可能会出现如下菜单操作界面,按提示进行操作即可。
  • 第4行:刷新系统字体缓存

如果顺利完成以上步骤,恭喜你!此时应该能顺利使用Linux GUI程序,并且能正确显示中文(参见下图火狐窗口)。
特别说明】读者可以像使用Windows 11内置应用一样使用Linux GUI程序,因此体验很平滑。
在这里插入图片描述
不过,到此为止,仍然有一个问题,就是没有办法直接针对该Linux GUI输入中文。如果需要解决这个问题,可以继续下文的操作。

第4步:设置WSL Ubuntu系统的中文输入法(可选)

sudo locale-gen 
sudo apt install -y fcitx fcitx-googlepinyin
dbus-uuidgen > /var/lib/dbus/machine-id

说明:

  • 第1行:将生成所有本地化的配置的文件(即/usr/lib/locale/locale-archive),如果是WSL,可以直接执行,因为默认就只有如下几种本地配置,加上我们定义的中文区域设置,不会太耗时。
    在这里插入图片描述
  • 第2行:安装fctix输入法框架程序,以及谷歌的拼音输入法(注:为了图省事,直接用推荐的,其实也不错;喜欢折腾的可以再研究一下搜狗的Linux版);
  • 第3行:为防止后续某些浏览器使用出现“无法找到/var/lib/dbus/machine-id”错误,先提前生成一个;

接下来在“/etc/profile.d/”创建fcitx.sh脚本;此步骤对于Linux不熟悉的同学有点麻烦,请参考以下操作命令。

sudo apt install gnome-text-editor
cd /etc/profile.d
sudo gnome-text-editor fcitx.sh

注意:第2行中的“profile.d”是一个目录;
运行第3行之后,会启动GNome文本编辑器(图形界面的软件),编辑fcitx.sh脚本并保存。详细内容如下(可以直接复制):

#!/bin/bash
export QT_IM_MODULE=fcitx
export GTK_IM_MODULE=fcitx
export XMODIFIERS=@im=fcitx
export DefaultIMModule=fcitx#optional
fcitx-autostart &>/dev/null

为方便后续运行,直接设定脚本运行权限并运行;(备注:部分资料用的是source命令,但也有论坛上反馈说刷新无效)。

sudo chmod +x /etc/profile.d/fcitx.sh
/etc/profile.d/fcitx.sh

此时可以运行fcitx配置工具了,输入如下命令:

fcitx-config-gtk3

如果看到如下显示信息,有英文键盘(输入法)以及安装的中文输入法(Google拼音),则说明配置成功。如果看到此处的对话框中没有信息和可选项,建议先关闭终端并使用WSL命令退出Ubuntu,重新启动一次。

wsl --shutdown

在这里插入图片描述

后记

到此为止,按照本篇的各种设置步骤,应该能使用WSL进行日常的上网浏览了。如果需要使用一些特定的Linux GUI软件,则根据需要选择安装即可。

不过,默认情况下,WSL中浏览视频时播放声音无法听见。这个问题也有相关的网友进行了尝试,经过一番波折,也解决了。由于需要处理的步骤挺多,可能要专门写一篇帖子描述。

备注:我上网时用到的Astrill工具(VPN)有Linux客户端(图形界面),因此Linux下用火狐或者谷歌时,不会与公司VPN设置冲突。

参考资料

  1. How to install Linux on Windows with WSL
  2. 在适用于 Linux 的 Windows 子系统上运行 Linux GUI 应用
  3. 如何在基于 Ubuntu 的发行版上安装微软 TrueType 字体 | Linux 中国
  4. 如何在 Linux 中安装新字体 以及Linux安装中文字体

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

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

相关文章

GoZero微服务个人探究之路(零)个人对微服务产生原因的思考,对前三篇的补充

为什么产生了微服务架构--必要性 这里我觉得看GoZero作者写的博文就可以有很好的体会 具体的&#xff0c;他画了这一张图&#xff08;以电商后台系统为例子&#xff09; 所以&#xff0c;我个人产生了如下思考 1.业务逻辑越来越复杂&#xff0c;层层嵌套&#xff0c;分解成微…

渗透测试(14)- HTTP协议解析

HTTP(HyperText Transfer Protocol)即 超文本传输协议 &#xff0c;是一种详细规定了浏览器和 服务器之间互相通信的规则&#xff0c;它是万维网交换信息的基础&#xff0c;它允许将 HTML( 超文本标 记语言 ) 文档从 Web 服务器传送到Web 浏览器&#xff0c;用于客户端和服务器…

十二、Qt 操作PDF文件(2)

一、在《十、Qt 操作PDF文件-CSDN博客》中我们用Poppler类库打开了PDF文件&#xff0c;并显示到窗体上&#xff0c;但只能显示一页&#xff0c;功能还没完善&#xff0c;在本章节中&#xff0c;加入了&#xff1a; 通过选择框选择PDF文件并打开&#xff0c;默认打开第一页。通…

实战 | 奇怪的万能密码

本文由掌控安全学院 - 杳若 投稿 前言 打的站点打多了&#xff0c;什么奇怪的问题都会发生 打点 开局一个登录框 用户枚举到账号爆破 测了一下&#xff0c;没发现admin的弱口令&#xff0c;但是发现存在用户枚举漏洞&#xff0c;因此准备跑一下账号 输入密码为123456 进行…

华清远见作业第三十天——网络编程(第五天)

思维导图&#xff1a; 使用selsect实现TCP客户端的并发 代码 #include<a.h> #define SER_PORT 8888 //服务器端口号 #define SER_IP "192.168.125.50" //服务器ip地址 #define CLI_PORT 6666 //客户端的端口号 #define CLI_I…

阿里云PolarDB开发者大会首度召开,让数据库开发像“搭积木”一样简单

1月17日&#xff0c;首届阿里云PolarDB开发者大会在京举办&#xff0c;中国首款自研云原生数据库PolarDB发布“三层分离”全新版本&#xff0c;基于智能决策实现查询性能10倍提升、节省50%成本。面向开发者&#xff0c;阿里云全新推出数据库场景体验馆、训练营等系列新举措&…

乐观锁与悲观锁:高并发场景下的选择

&#x1f604; 19年之后由于某些原因断更了三年&#xff0c;23年重新扬帆起航&#xff0c;推出更多优质博文&#xff0c;希望大家多多支持&#xff5e; &#x1f337; 古之立大事者&#xff0c;不惟有超世之才&#xff0c;亦必有坚忍不拔之志 &#x1f390; 个人CSND主页——Mi…

实战纪实 | 记一次攻防演练

看到一处登录后台&#xff0c;各种操作都尝试过无果&#xff0c;翻了一下js,看到一处文件上传接口泄露&#xff08;没图了&#xff0c;已经整改了&#xff09; 构造上传数据包&#xff0c;很nice,上传成功 直接连接webshell&#xff0c;搭建隧道进行内网穿透 翻看配置文件&…

TCP 拥塞控制对数据延迟的影响

哈喽大家好&#xff0c;我是咸鱼 今天分享一篇文章&#xff0c;是关于 TCP 拥塞控制对数据延迟产生的影响的。作者在服务延迟变高之后进行抓包分析&#xff0c;结果发现时间花在了 TCP 本身的机制上面&#xff1a;客户端并不是将请求一股脑发送给服务端&#xff0c;而是只发送…

【开源】基于JAVA语言的河南软件客服系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 系统管理人员2.2 业务操作人员 三、系统展示四、核心代码4.1 查询客户4.2 新增客户跟进情况4.3 查询客户历史4.4 新增服务派单4.5 新增客户服务费 五、免责说明 一、摘要 1.1 项目介绍 基于JAVAVueSpringBootMySQL的河…

新能源汽车出海业务之报关

引言 在做中国新能源汽车出海业务的信息化建设过程&#xff0c;秉承着深入了解业务的原则&#xff0c;对业务全链路进行学习了解总结&#xff0c;本文是针对出口报关业务环节的一些个人积累总结&#xff0c;供与诸位交流学习。 业务概述 报关是指在国际贸易中&#xff0c;出口…

Marin说PCB之关于1000 BASE-T1--ESD的处理知多少?

对于板子上的ESD器件想必大家做硬件或者是layout应该的不陌生吧&#xff0c;我们几乎遇到大部分板子上面的接口部分都会添加这个ESD器件&#xff0c;例如那些USB,MIPI接口&#xff0c;百兆/千兆-T1以太网连接器等。 其中T1连接器用的是罗森博格家的&#xff0c;在这个链路中有一…

腾讯云轻量化应用服务器_轻量化应用服务器_轻量化私有云

腾讯云轻量应用服务器开箱即用、运维简单的轻量级云服务器&#xff0c;CPU内存带宽配置高并且价格特别便宜&#xff0c;大带宽&#xff0c;但是限制月流量&#xff0c;轻量2核2G3M带宽62元一年、2核2G4M优惠价118元一年&#xff0c;540元三年、2核4G5M带宽218元一年&#xff0c…

Docker 仓库管理

Docker 仓库管理 仓库&#xff08;Repository&#xff09;是集中存放镜像的地方。以下介绍一下 Docker Hub。当然不止 docker hub&#xff0c;只是远程的服务商不一样&#xff0c;操作都是一样的。 Docker Hub 目前 Docker 官方维护了一个公共仓库 Docker Hub。 大部分需求…

如何在MinIO存储服务中通过Buckets实现远程访问管理界面上传文件

文章目录 前言1. 创建Buckets和Access Keys2. Linux 安装Cpolar3. 创建连接MinIO服务公网地址4. 远程调用MinIO服务小结5. 固定连接TCP公网地址6. 固定地址连接测试 前言 MinIO是一款高性能、分布式的对象存储系统&#xff0c;它可以100%的运行在标准硬件上&#xff0c;即X86等…

ArcGIS Pro 标注牵引线问题

ArcGIS Pro 标注 模仿CAD坐标牵引线问题 右键需要标注的要素&#xff0c;进入标注属性。 选择背景样式 在这里有可以选择的牵引线样式 选择这一个&#xff0c;可以根据调整间距来进行模仿CAD标注样式。 此图为cad样式 此为调整后gis样式 此处可以调整牵引线的样式符号 …

ClickHouse学习笔记(六):ClickHouse物化视图使用

文章目录 1、ClickHouse 物化视图2、物化视图 vs 普通视图3、物化视图的优缺点4、物化视图的用法4.1、基本语法4.2、准备表结构4.3、准备数据4.4、查询结果 1、ClickHouse 物化视图 ClickHouse 的物化视图是一种查询结果的持久化&#xff0c;它的存在是为了带来查询效率的提升…

KubeSphere 开源社区 2023 年度回顾与致谢

2023 年结束了&#xff0c;让我们再一次一起回顾一下 KubeSphere 开源社区在过去一年的变化。更重要的是&#xff0c;本篇文章将会对 2023 年所有参与过 KubeSphere 社区贡献的成员致以最诚挚的感谢&#xff0c;快来看看有没有你&#xff01; 开源项目发展情况 2023 年&#…

go实现判断20000数据范围内哪些是素数(只能被1和它本身整除的数),采用多协程和管道实现

实现一个并发程序&#xff0c;用于寻找 20000 以内的所有素数。使用了 Goroutines 和 Channels 来分发和处理任务&#xff0c;并通过 WaitGroup&#xff08;实现为 exitChan&#xff09;来同步 Goroutines 的退出。 一.GO代码 package mainimport ("fmt""time…

Python-基础篇-类与对象/面向对象程序设计-py脚本

面向对象基础 第一个面向对象 class Cat:def eat(self):print("小猫爱吃鱼")def drink(self):print("小猫要喝水")# 创建猫对象 tom Cat()tom.eat() tom.drink()print(tom)addr id(tom) print("%x" % addr)新建两个猫对象 class Cat:def ea…