全民制作人们 大家好,我是练习Linux时长两年半的个人练习生,喜欢唱跳rap

说来我使用Linux确实已有两年半了。回顾一下历史,2021年底的时候把Ubuntu装进了笔记本的虚拟机中,还在上面运行了Java与Eclipse,尝试将其用来做开发,以及将日常的事务在Ubuntu虚拟机上完成。每次开机就启动虚拟机,把虚拟机当物理机用。后来还尝试了其他的发行版,比如CentOS, Fedora, Debian,体验上都有所不及Ubuntu,对一个Linux新手而言。虚拟机用了几个月,逐渐适应了Ubuntu的使用,便在2022年初,将Ubuntu装到了笔记本物理机上,作为双系统,一直使用至今。台式机也如此,Windows与Ubuntu双系统,干活的时候用Ubuntu,Windows用来打游戏。

为什么选Ubuntu

对于刚入门Linux的用户而言,并且也是基于自己的经验而言,我是推荐用Ubuntu的。

在UI上,Ubuntu默认使用的桌面环境是Gnome。我比较喜欢Gnome的一点是应用界面,如安卓一般,每个应用都有一个图标(Desktop Entry),并且图标可以自定义。如果你习惯安卓系统的话,应该也能快速适应Ubuntu的UI。

Ubuntu的Gnome还提供了一系列的图形界面组件,比如电源检测软件,磁盘管理软件,图片浏览器,PDF阅读器等,非常适合新人入门时使用。对于新人而言,最怕的大抵就是命令行了,能图形化界面完成的工作绝对不在命令行搞。而且Gnome还有很高的自由度,指针、主题、字体啥的全都可以自己定制。

Ubuntu的安装是很纯净的,可以选择最小化安装,避免安装Gnome桌面环境的一系列小游戏。相比之下,同为Gnome桌面的Debian无论在安装的时候怎么选,都会把它那些哔小游戏带上。真的有人会去玩儿吗?

还有一点是驱动管理比较智能化,尤其是对于装有显卡的台式机。NVIDIA显卡的Linux驱动可以在系统里直接安装,这一点相当省心。

社区环境什么的就不说了,每个Linux发行版都会吹自己的社区多么丰富。

选什么Ubuntu

Ubuntu有很多分支,比如教育版的Edubuntu,用KDE桌面环境的Kubuntu,还有中国特供版UbuntuKylin,还有基于Ubuntu的Linux Mint,这个严格意义上来说已经不算分支了。

作为普通用户,或者说开发者,用原版的Ubuntu即可。在版本选择上,我的看法是,非长期支持版(LTS)不用,最新的LTS不用,最新的LTS之前的一两个LTS可用。例如说目前最新的LTS是Ubuntu 24,不用,用22或者20,并且优先选择20。

我最开始接触的Ubuntu版本是18,用的最长时间的版本是20,目前使用的版本是22。

Ubuntu20是我使用时间最长的一个版本,我得承认其非常经典和优秀,在我这的地位如同Windows XP一般。但其有一些问题让我难以忍受,便更新成了22。具体问题有

  1. 对于可执行程序,如果类型是Shared Object,双击不能运行,只有Executable ELF可以。但现在很多程序的可执行文件,如Electron开发的,其可执行文件类型都属于前者。这一点在Ubuntu22得以解决。

  2. libc版本较旧,且官方没提供更新,以至于一些开源软件的最新版没法在20上运行

  3. 原生不支持远程桌面(微软的RDP协议),需要配置VNC或者ToDesk等软件才行。而22直接支持远程桌面

  4. 截图有时不成功,即画好截图区域后,截图没有保存成文件,也没有保存在剪切板里。且截图的时候,屏幕显示的内容不会静止,这种情况下从动图中截取某一帧就需要手法和运气。22更新了截图工具,截图时会让整个屏幕完全静止。

当然22版本也有一些问题,但瑕不掩瑜,22依旧是一个比较好的,值得使用的LTS。

  1. 强推snap,甚至于将系统浏览器(Firefox)与snap捆绑,其心可诛

  2. 应用图标,添加到了Dock上过后,在应用界面就会消失。也就是说无法让图标同时在Dock和应用界面两个地方都出现,这在20是可以的

  3. 更大的内存占用,开机完毕后,内存占用比Ubuntu20多了约100~200MB左右。当然这对于现在动则16G甚至更高内存的机器而言并不是什么大问题。

软件

本节介绍一些我日常使用的软件,可以作为参考,以便更快地适应Ubuntu作为日常操作系统。

软件所附带的链接,若非特殊说明,均为官网

输入法

在输入法这块,Ubuntu自带的输入法框架是ibus,但事实上我更倾向使用fcitx框架。

中文输入法中,做的比较好的也就只有百度输入法搜狗输入法,搜狗输入法最后一次更新是在2023年,百度的则不详,貌似很久没更新了,但其在Ubuntu22还是能正常使用着。这两个输入法基于的框架均为fcitx

日语输入法就用Google开发的Mozc即可,它在软件仓库中,可以直接通过apt安装。这也是基于fcitx框架的输入法,虽然算不上好用,但起码能用......我也没调研过小日子过得不错的日本Linux用户有什么更好用的输入法,总不可能全都在用这个Mozc罢。

浏览器

主流的浏览器,例如FirefoxEdgeChrome全都是支持Linux上运行的,其它的非主流比如360浏览器搜狗浏览器则不行。

使用Ubuntu 22的用户听我一句劝,把系统自带的那Snap版Firefox扬了,去网上重新下载和安装使用。顺带连snap一起灭了,这里就不具体展开步骤了

自己下载的浏览器在播放网页视频,比如bilibili时,可能会遇到"不支持HTML5播放器"的问题。该问题的原因可能在于视频编解码器,目前主流方案是通过安装一些非开源的、包含专利性的编解码器来解决。事实上应该可以手动配置和使用开源的替代方案,这一点我目前还在研究中。

sudo apt install ubuntu-restricted-extras

驱动

Linux上安装驱动确实不像Windows那样简单地执行一个exe即可安装,很多情况下需要自己拉取源码,编译安装。

不过好在绝大多数的硬件驱动,例如网卡、声卡、USB,系统都已经集成好了,需要用户额外安装的驱动一般只有无线网卡、显卡和打印机。

关于打印机驱动,需要针对具体的打印机品牌,去其官网上搜索对应型号的驱动,下载安装。

关于无线网卡驱动,大部分类型的无线网卡驱动可以在其官网或者Github上找到,自行编译安装即可。但有些无线协议的无线网卡,是没有对应的Linux驱动的,就我所见过的有802.11ac。

关于显卡驱动,核显的话驱动是系统会自带的,AMD和英特尔都是,独显的话,既可以去Nvidia官网下载,也可以通过系统的nvidia-detector指令寻找合适的驱动版本,然后在应用Additional Drivers中全自动下载安装

driver.webp

远程SSH

SSH是一种安全带远程登录协议,其客户端指令ssh已经集成在了Ubuntu系统中。但在远程服务器密码保存,密钥配置上并不是很方便。

于是Electerm申请出战。这是个基于Electron开发的SSH客户端,可以用于登录服务器,还有图形化的文件管理界面(SFTP),此外这个软件的UI可以自定义,更改主题、背景图、光标、字体等,并且支持中文。

electerm.webp

通讯

主流的通讯以及办公软件,例如QQ钉钉飞书腾讯会议都是已经支持Linux了,有些甚至做得还挺不错。

至于微信的Linux版,其实是有的,但还处于测试阶段,官方并没有将下载链接放在官网,需要的话得在银河麒麟资源列表里面找。都是腾讯的软件,相比于QQ,不能说做得多好,只能说勉强能用。

文档

别指望微软会好心地给Linux开发一套Office,梦里才有。

在Linux上要查看和编辑Word、PPT、Excel之类的文档,主要有Libre Office永中OfficeWPSOffice 365等方案。

此外需要注意的是,在Ubuntu上的字体渲染相比起Windows还是差了点的,这也是一众Linux发行版的硬伤

Libre Office是国外开源的Office软件。就我的经历而言,有些时候在Libre Office上编辑好的文档,到微软的Office上面打开会出现文字错位、重叠等问题。不过这都是我刚接触Linux时遇到的,不知道最新的版本修复了没有。

永中Office是国产软件,用过一小段时间,也挺不错,只是使用习惯上跟微软的Office差别有点大,让我难以适应。

WPS也是国产的软件,知名度比较高,网上的教程也比较全,我目前使用的便是这个。

Office 365是微软的Office在线版,不用单独购买,有浏览器即可使用,在Linux上是不错的方案。唯一不足也正是因为它是在线版,脱离了网络便无法使用。

文本

尽管系统自带有文本编辑器,但其功能性是偏弱的,在代码高亮、Markdown渲染等方面有严重不足。而且Ubuntu的系统文本编辑器gedit还有一个不知道算不算bug,即浏览多行文本时,有时最后一行看不到,或只能看到部分。

所以文本编辑上,可用方案有命令行的vim、图形化界面的VS CodeNotepad--(简称ndd)、还有撰写本文时使用的Markdown编辑器Typora

开发

对于软件开发的程序员,常用的IDE和编程语言基本都有对应的Linux版本,除了某个懒得喷的国产操作系统。

除了前面提到的VS Code,做安卓开发的Android Studio,做Java开发的Eclipse和IDEA,搞Python的PyCharm都可以在对应的官网下载。

为什么这一部分的软件没有链接?拜托你都是程序员了,IDE还找不到下载链接干脆退学吧

对于硬件开发,我不是很熟悉,也不清楚硬件开发相关的软件有无Linux版本。我自己只浅玩过Arduino,知道Arduino IDE还是有Linux版本的。

媒体

媒体主要是指图片、视频、音频。

在Ubuntu中自带了eog,也就是系统的图片浏览器。其本身过于简单,甚至无法浏览webp类型的图片。在此推荐XnView,这是个跨平台的图像浏览器,但貌似并不开源。

音频和视频的播放器,可选方案主要有两个,VLC或者MPV,两者都是开源的播放器。

VLC是Ubuntu官方支持的(貌似),MPV的UI和功能则比较简单,正因如此MPV的可扩展性更强一些,因此我推荐基于MPV的SM Player

SM Player以MPV作为播放引擎,扩展了很多功能,例如播放列表,操作快捷键、在线播放网络流视频、字幕绑定等。

smplayer

事实上我对VLC是有偏见的...因为曾经使用它的时候爆过显存。

录屏

录屏软件我用过的有SimpleScreenRecorder,自认为还不错。但在调研的时候我还看到一个也支持Linux的录免费屏软件Screenrec,尚不清楚其表现如何,只能说作为备选方案吧。

SimpleScreenRecorder在apt仓库中有,用户只需简单地通过apt install安装即可

下载器

在Windows下比较知名的下载器比如IDM和迅雷,并不支持Linux。

对于多线程下载,还有磁力链接之类的下载,Linux上的替代方案是Motrix,这也是个跨平台的软件,并且支持浏览器插件,在浏览器下载文件时,可跳转到Motrix下载。不过浏览器插件只支持Chrome系列的。 Firefox: 世界,拒绝了我

游戏

坦率说,出于各种原因,在Linux上打游戏并不是个明智之举...

不过还是有一小撮游戏是可以爽玩的。比如Minecraft的Java版,跨平台的Java永远的神!

还有著名的音游OSU,提供了Linux版本的Appimage。

osu.webp

游戏平台Steam也有Ubuntu客户端,只不过安装过程有点麻烦,以及还有可能遇到各种版本冲突和库缺失的问题,因此我不太建议使用。即使费尽千辛万苦安装上了,Steam上的游戏又有多少能在Linux上运行呢。

云游戏也是个不错的方案,毕竟有浏览器就能玩儿,这里主要是指米哈游旗下的云游戏,其它的我没体验过。云原神云星穹铁道

代理

代理软件无非就Clash for Windows和V2rayA。

V2Ray在Linux上的配置比较麻烦,V2RayA是我认为比较好的图形化界面方案。

此外在Ubuntu上启动代理时,一定要现在系统设置里设置好端口

音频处理

Windows上著名的音频处理软件Audition,在Ubuntu上可以用Audacity作为平替。这软件开源,且功能还不错,只是UI没有那么好看。

资源监视器

Ubuntu的资源监视器相比起Windows的任务管理器可以说是比较残废的,服务看不了、硬盘IO看不了、显存占用看不了,非Root用户启动的话甚至有些进程都看不到。

Github上一个开源项目——System Monitoring Center就做得挺不错,内容详细且实时更新。不过遗憾的是这个项目停止更新了。

systemmonitoringcenter.webp

Windows

如果还是跟什么Windows软件有执念,放不开手的话,试试Wine吧。Wine作为一个兼容层,能在非Windows系统上运行Windows软件(当然并不能保证100%运行)。

通过apt安装Wine的话可能会出现一些版本冲突问题,更严重的甚至可能会把系统给扬了,这并非危言耸听,因为我真的曾在安装Wine时试图通过fix-missing以及fix-broken解决冲突问题,结果它把Ubuntu的一些系统核心包给卸载。

这里建议通过Appimage的方式运行Wine,没有依赖问题,且容易删除。Github上有两位大佬打包了Appimage,分别是mmtrtHackerl,不过后者已经停止更新了。

问题

双系统时间差8小时

大多数人将Ubuntu装在物理机上时,一般都是与Windows共存,作为双系统。当重启切换系统时,就会发现两个系统的时间差8个小时。

根据网络上的说法是Windows将硬件时间认定为本地时间,而Ubuntu将硬件时间认定为UTC时间,在显示的时候会在其基础上加上时区偏移。我们使用东八区时间,因此会差八个小时。

解决方案是要么让Windows服从Ubuntu,要么Ubuntu服从Windows。前者需要动注册表,后者只需要一行指令即可完成,比较简单。

美化

Ubuntu的图形界面,严格来说应该说是Gnome桌面默认情况下是很朴素和简陋的。但好在其开放性高,可自定义,光标图标主题托盘壁纸字体甚至是启动引导界面Grub都可以自定义。

Gnome-look网站有很多对Gnome桌面环境的美化方案,包括了上一段提到的所有能自定义的部分。

版本冲突

版本冲突是指通过dpkg安装第三方deb包后,提示的缺库或库版本不满足条件,通过fix-missing或者fix-broken后,安装或更改了跟系统不兼容的库版本,破坏了原本的库依赖关系。这么表述不完全准确,但总之结果就是你安装的deb程序无法正常运行,通过apt安装某包会提示依赖异常,执行autoremove会删掉很多核心组件库。

用Ubuntu20的时候给这么折腾过几次,重装过几次,于是现在安装第三方deb包时都十分谨慎,能解压出来直接运行就不会去用dpkg指令安装。

如果通过apt安装什么包,提示依赖某个包的某个版本,而这个依赖的版本又无法通过apt本身安装的话,可以尝试去pkgs网站上去找,下载需要的版本的deb包,再通过dpkg安装即可。虽然可能引入新的依赖问题

总结

总体而言,Ubuntu是能够作为主系统使用的,其软件生态已经足够成熟了。当然在游戏、视频剪辑等方面或许还略显逊色,不过瑕不掩瑜。

用了两年半Ubuntu了,之后还会继续用下去罢。我倒是希望国内各大厂能重视Linux,多利用跨平台技术,推动国内Linux生态建设,虽然大概率只是奢求。

本文并不会写完就完了,在"问题"一章,会持续更新使用Ubuntu时会遇到的典型性问题,以及一些解决思路。