Windows10访问Ubuntu子系统(WSL)的桌面环境

2023-10-27

Windows10访问Ubuntu子系统(WSL)的桌面环境

Why Linux ?

最近有个需求是go语言的服务程序需要提供python的sdk供另一个项目调用。而这个python项目的pip源是公司内部,且其中有一个包只有linux版本。

Why WSL ?

在双系统、虚拟机、子系统(Windows Subsystem for Linux)三者中,首先排除了双系统,首先不能随时切换,而且在新的系统中重现当前工作环境(不只是开发环境)代价太大。而虚拟机需要额外安装软件且有额外资源开销,于是尝试在子系统中折腾一把。
网上有些教程需要在windows上安装Xserver什么的,我觉得能不多装东西就不装吧,所以本文不需要在windows下额外安装任何软件。

开启WSL

本文默认看官已经安装并启动了子系统。如果需要帮助可以打开开始菜单中的Microsoft Store,在搜索框中输入linux回车,然后根据提示会一步步引导你安装成功。注意不要随便百度一个教程直接开搞,有些还需要编辑注册表的简直坑人。

Ubuntu换源

这一步不是必须的,前提是你网络足够好的情况下。
既然要做修改,第一步当然是备份。

cp /etc/apt/sources.list /etc/apt/sources.list.bak

然后执行vi /etc/apt/sources.list并在文件最开始添加如下信息:

deb http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-security main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-updates main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-proposed main restricted universe multiverse
deb-src http://mirrors.aliyun.com/ubuntu/ bionic-backports main restricted universe multiverse

更新与升级

sudo apt update
sudo apt upgrade
sudo apt autoremove

其中第三个命令不是必须的,但是既然有用不到的包何不及时清理呢?
另外说明一下,如果命令执行期间有报错或卡住的情况,直接ctrl+C重新执行即可,它会自动跳过之前已完成的部分(get 序号会从1重新开始计数,但不会重新get已完成的包)。
另外如果遇到bluemen的报错,可以忽略不管。

安装桌面环境xubuntu

sudo apt install xubuntu-desktop

说明一下,本人最开始执着于gnome桌面,在各种google无果后选择了搜错过程中出现次数最多的xfce4,同时了解到xubuntuxfce4的一个扩展,于是采用xubuntu桌面环境,在使用了几天后发现还挺好用,它里面内置了若干panel可供替换(这个后面再说)。如果弹出选择gdm3或lightdm,选择gdm3

安装远程桌面服务xrdp

sudo apt install xrdp

这个就是直接跟windows交互的哥们了,有关其原理的介绍可以参考这篇文章,不过不看也没关系,不影响使用。
另外有的教程会让你安装xorgxfce4,这两个的安装其实在上一步sudo apt install xubuntu-desktop的时候已经完成了。

配置xrdp端口

sudo sed -i 's/port=3389/port=3390/g' /etc/xrdp/xrdp.ini

这里面3389是默认配置,这里将其改为3390是避免和windows的端口冲突。我们折腾的是子系统不是虚拟机,两边的端口号是通的。比如在wsl中开一个8080端口的WebServer,在windows中开浏览器是可以直接访问的。

配置xsession

sudo echo xfce4-session >~/.xsession

这一步其实是在告诉系统,开启桌面环境的时候开启什么桌面环境。为什么是xfce4呢,上面也说了xubuntu本质就是xfce4加上一些插件与软件。

重启一下电脑

不重启的时候会报错

connecting to sesman ip 127.0.0.1 port 3350 
sesman connect ok
sending login info to session manager, please wait...
login successful for display 25
started connecting
connection problem, giving up
some problerm

启动xrdp

sudo service xrdp restart

这里用start也行restart也行,既然都可以,当然后者用起来更方便。
启动成功后会看到如下提示

 * Starting Remote Desktop Protocol server 
[20190514-19:06:59] [DEBUG] Testing if xrdp can listen on 0.0.0.0 port 3390.
[20190514-19:06:59] [DEBUG] Closed socket 6 (AF_INET6 :: port 3390)[ OK ]

远程连接

在windows开始菜单中搜远程桌面打开后在计算机后面输入localhost:3390点击连接。首次连接可能需要较长时间。
用户名密码可以先写,也可以不写,网上有教程还勾选了保存凭据的,这个看个人习惯吧,我用软件从来不勾选记住密码的。

汉化

其实Linux汉化显得很low,但咱这英语水平在处理一些感叹号弹窗的时候看不懂提示不敢瞎点yes还是no,所以汉化步骤放在这,看官依据个人口味吧。

sudo dpkg-reconfigure locales

然后一直按键盘上的找到zh_CN UTF-8,然后按空格勾选,再tab切换到ok上回车,接下来的界面选zh再回车。
这一步完成后可能会导致键盘不可用,不用激动,点击桌面左上角图标注销后重进就好了。
首次进入中文界面会提示是否重命名那几个文件夹,建议保持英文状态,因为有些路径是写进配置文件了的,重命名会带来不必要的麻烦。
桌面环境汉化之后就是中文输入法了,这个需要用浏览器访问搜狗网页,所以先装下chrome吧(自带的火狐一开始打不开,几天后又能用了)。

安装chrome

sudo apt install google-chrome

安装完成后在命令行sudo google-chrome --no-sandbox启动,直接google-chrome会报权限错误,加上sudo又提示需要--no-sandbox,看官可以自己试试,如果能非sudo运行请下面评论给咱见识一哈。

安装中文输入法

这个浏览器打开搜狗输入法网页,然后在导航条(顶部那一条)找linux,进去会自动下载安装包,下载完成后从文件夹进入Download执行dpkg -i file_name即可安装。
注意别在浏览器中跳转到文件夹,因为浏览器是sudo打开的,从这进文件夹,再右键打开终端,安装后的文件是root用户的,还需要找到并chown,比较麻烦。后面下载安装其他软件同理。
输入法配置可以点击桌面左上角图标,进入设置管理器(SettingManager),然后到最后面找一个拿着毛笔的企鹅就行了,这部分没什么难的就不细说了,有问题评论区见(如果你看到这篇文章是爬虫爬过的,请在csdn上搜同名标题再到评论区提问)。

美化

之前提到的那个panel此时可以试试了,点击左上角图标,进入设置管理器(SettingManager),找xfce panel switch然后有一个列表就是所有的panel了,选中一个后点下面的齿轮就可以看效果,找到满意的直接关闭窗口就行。

结语

大概就是这些了,如果看官们有更好的意见或建议,或者还有其他问题都可以直接在评论区提出来。如果觉得还不错可以点个赞哈哈。

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

Windows10访问Ubuntu子系统(WSL)的桌面环境 的相关文章

随机推荐

  • tracert与traceroute命令详解

    tracert 一 tracert 介绍 tracert 是一个简单的网络诊断工具 用于确定 IP 数据报访问目标所经过的路径 Tracert 命令用 IP 生存时间 TTL 字段和 ICMP 错误消息来确定从一个主机到网络上其他主机的路由
  • 基于Matlab的深度学习LSTM模型时间序列多步预测——多对单

    LSTM在时间序列预测方面的应用非常广 但有相当一部分没有考虑使用多长的数据预测下一个 类似AR模型中的阶数P 我基于matlab2021版编写了用LSTM模型实现多步预测时间序列的程序代码 可以自己调整使用的数据 阶数 序列数据是我随机生
  • java ---- 逻辑控制

    目录 一 顺序结构 二 分支结构 1 if 结构 2 switch结构 三 循环结构 1 while结构 2 休息并继续 3 for结构 4 do while结构 四 输入和输出 3个输出 从键盘输入 循环输入 一 顺序结构 按照代码书写的
  • 9.荔枝派 zero(全志V3S)-移植最新版Uboot

    上面是我的微信和QQ群 欢迎新朋友的加入 1 获取源码 https gitlab denx de u boot u boot 文件拉下来要花点时间 将老版本的配置文件拷贝过来 编译 生成UBoot的bin文件和设备树文件 make ARCH
  • 二、TCP/IP协议之网络接口层(MAC地址、CSMA/CD、ARP协议)

    2 2 网络接口层 2 2 1 相关介绍 TCP IP模型的网络接口层实际上没有规定任何具体的协议 各物理网络可以使用自己的物理层协议和数据链路层协议 仅仅提供一个各种网络和TCP IP接口的要求 在TCP IP模型中 网络接口层对应ISO
  • git 命令行 创建分支_从命令行创建Git补丁

    git 命令行 创建分支 如果您不想执行常规的提交 请求 请求流程 Git修补程序是将更改应用于项目的一种简便方法 补丁是包含等效Git提交差异的文件 您可以使用git diff创建修改后的工作状态补丁 diff输出采用正确的补丁格式 gt
  • Python vitualenv环境下用pyinstaller打包exe程序,及报错解决:No module named ‘sklearn.metrics,xgboost.libpath

    问题 之前直接用命令打包 默认的是系统的python环境 没有用到虚拟环境 打包出来会特别大一个多G 1 cd E Users 13626 PycharmProjects pythonProject3 venv Scripts 虚拟环境项目
  • Hadoop分布式集群时间同步(ntp)配置

    目录 时间服务器配置 必须root用户 1 查看所有节点ntpd 时间服务器 服务状态和开机自启状态 2 修改hadoop102的ntp conf配置文件 3 重新启动ntpd服务并设置开机自启 配置其他服务器 1 关闭所有节点上的ntpd
  • vm options什么意思_什么是锂电池保护板,保护板的基础知识和不良分析!

    点击上面 电动知家 可以订阅哦 锂电池保护板是对串联锂电池组的充放电保护 在充满电时能保证各单体电池之间的电压差异小于设定值 一般 20mV 实现电池组各单体电池的均充 有效地改善了串联充电方式下的充电效果 同时检测电池组中各个单体电池的过
  • SiriKit 新变化:让 Intent 更强大

    Python实战社群 Java实战社群 长按识别下方二维码 按需求添加 扫码关注添加客服 进Python社群 扫码关注添加客服 进Java社群 作者 wiilen iOS 开发者 来源丨老司机技术周报 ID LSJCoding Sessio
  • mysql 视图的作用

    转自 http blog csdn net fm0517 article details 5625949 视图是从一个或几个基本表 或视图 导出的表 它与基本表不同 是一个虚表 数据库只存放视图的定义 而不存放视图对应的数据 这些数据仍存放
  • JS赋值运算符详解

    赋值运算符左侧的操作数必须是变量 对象属性或数组元素 也称为左值 例如 下面的写法是错误的 因为左侧的值是一个固定的值 不允许操作 1 100 返回错误 赋值运算有以下两种形式 简单的赋值运算 把等号右侧操作数的值直接复制给左侧的操作数 因
  • [下载演讲稿]数字藏品与元宇宙存储—数字新世界的“土壤”

    和上次 下载 元宇宙存储 演讲稿 相比 增加了 1 两厅印发的 关于推进实施国家文化数字化战略的意见 对数字藏品的发展有积极促进作用 2 NFT和数字藏品的分类 新玩法 高质量体验 守诺 受朱嘉明老师 朱嘉明 数字经济和非同质时代 NFT
  • Java BigInteger的使用

    前言 在Java中 由CPU原生提供的整型最大范围是64位 long 型整数 使用 long 型整数可以直接通过CPU指令进行计算 速度非常快 但是如果我们使用的整数范围超过了 long 型怎么办 这个时候 就只能用软件来模拟一个大整数 j
  • unity 3D RPG高级教程(十)

    目录 声明 1 Action Button 快捷栏按键 2 Stats Info 显示 Player 相关信息 3 Change Animator 切换动画控制器 4 Item Tooltip 物品信息显示栏 5 Loot Items 掉落
  • misc.func.php,完美解决 discuz 您的管理面板已经锁定!

    出现 对不起 由于您多次输入错误密码 所以管理面板暂时锁定 您现在无法进入管理面板 15 分钟以后 锁定会自动解除 的提示 是出于安全的考虑 在您连续输入五次密码 仍然没有成功登陆的情况下所提示的 并且会在 15 分钟内禁止此 IP 再次登
  • mysql怎样设置默认值约束_MySQL默认值约束怎么用

    本篇文章将介绍default 默认约束 如何使用和改动后的效果 常用数据库约束 default 默认约束 not null 非空约束 指定某列不为NULL unique 唯一约束 指定某列和几列组合的数据不能重复 primary key 主
  • 【C/C++多线程编程之九】pthread读写锁

    多线程编程之读写锁 Pthread 是 POSIX threads 的简称 是POSIX的 线程标准 pthread读写锁把对共享资源的访问者分为读者和写者 读者只对共享资源进行读访问 写者只对共享资源进行写操作 在互斥机制 读者和写者都需
  • 详解Nodejs中的模块化

    Nodejs是一个基于Chrome V8引擎的JavaScript运行时环境 它允许开发者使用JavaScript在服务器端运行代码 在Nodejs中 模块化是一种组织和重用代码的重要方式 模块化允许我们将代码拆分成小块 使得代码结构更清晰
  • Windows10访问Ubuntu子系统(WSL)的桌面环境

    Windows10访问Ubuntu子系统 WSL 的桌面环境 文章目录 Windows10访问Ubuntu子系统 WSL 的桌面环境 Why Linux Why WSL 开启WSL Ubuntu换源 更新与升级 安装桌面环境xubuntu