«

»

21 2019

使用 Linux Mint 作为主要操作系统的一些个人设置

这是关于使用 Linux 桌面版的第三篇文章了。估计一共会写 4 篇,下一篇讲讲一些常用软件。之后会整理一个列表出来。

本篇文章来讲讲自己的一些个人设置,以及遇到的一些系统问题。

文章很长,可以说其实每一个章节都可以拿出来单独发一篇文章。不过我又不靠发文章赚钱或搏眼球,没必要搞得自己像个三流博主或者自媒体一样。

目录

设置和操作

总结
参考资料

设置和操作

1.换源

用自己做的源列表选择工具 show-me-your-mirror 换源,比较方便。

DSC_1632

虽然 Linux 桌面版都自带源列表选择工具,而且都带有测速功能。但是大陆的网络很复杂,TCP 劫持,ICMP 劫持,HTTP 劫持,这三样哪个都会影响测速结果。所以我的建议,自己选择自己信得过的源,而且一定要选择 HTTPS 的。

个人觉得中科大的源目前最可靠,其次是清华的,虽然这两家一有重大活动就会掐线断网。如果你住在西部地区,还可以选择成电。尽量不要选择阿里和网易的,稳定性渣得一逼。

DSC_1634

2.apt 缓存

apt-get 不同,apt 默认不缓存 deb 包。

如果想开启缓存,在 /etc/apt/apt.conf.d/ 下创建个文件 01keep-debs ,内容为 Binary::apt::APT::Keep-Downloaded-Packages "true";

可以一条命令搞定。

echo 'Binary::apt::APT::Keep-Downloaded-Packages "true";' | sudo tee /etc/apt/apt.conf.d/01keep-debs

如果不想缓存,可以无视。

3.sshd

CLI 是 Linux 强大的体现之一,sftp 也非常适合远程文件管理,所以开启 sshd 会很方便。安装包 openssh-server 即可开启。

然而个人电脑和服务器不一样,安全性不是靠强密码,而是依靠个人看管实现的。毕竟服务器拆个硬盘挺费劲,但台式机或笔记本说丢就丢。

虽说有人可能说可以依靠证书秘钥进行免密登录,这个,烦不烦啊,一般用户还得带着个文件登 SHH,而机器就在手边,这又不是啥高度机密工具,平常老百姓用不着这么复杂。

有个最简单的办法,直接用 systemctl disable 掉,这样 sshd 就不会开机启动了,每次想使用的时候,手动启动,就不用担心在公共场合的网络下被爆菊。

4.关闭系统备份

我刚用没几天,硬盘就被塞满了,我又没下东西,又没出什么异常,怎么会硬盘塞满。

结果发现是 Linux Mint 自带的 System Snapshots 把硬盘撑满了。

系统的 System Snapshots 是靠 Timeshift 实现的。这个工具使用的备份方式有两种 Rsync 或 Btrfs 。我没有试过 Btrfs ,其应该是写入时复制,不清楚会不会有类似问题。但其默认选项是 Rsync ,也就是说会复制一大堆冗余的备份文件到系统上,而且貌似还只能选本地备份。备份的内容可选性不高,而且 SSD 也不能这么浪费的磨损的,所以 一定要关闭

打开 Timeshift,到 Schedule 页面,把所有定时都关了。

DSC_1647

如果有备份的想法,还是尽量依靠异地备份比较靠谱,都备份到一台机器上,只能防止误删和误修改。

我估计可能 Btrfs 模式可以向 Win7 的卷影服务一样?(我就没见过除我之外还有人用)

5.安装本地 deb 包

因为网络环境,很多时候本地安装要比 apt 靠谱得多。但是本地安装比较难解决包依赖问题。

好在有 gdebi 可以解决。

DSC_1641

6.屏幕显示比例,HiDPI 问题

Linux 的在小尺寸高分辨率屏幕上,显示是一大问题。

之前的文章中,是依靠 Font Settings – Text scaling factor 修改的。将字体修改成原先的 1.5 倍。然而实际用户体验并不好。字变大了并不意味着窗口和控件变大,如果不一起变大的话,就会变形,非常难过。

其实该调整的并不是这个设定。正确调整显示比例的设置在 General – Desktop Scaling 里。

DSC_1626

Linux mint Cinnamon 在 wiki.archlinux.org 上写的是开箱即用,但实际上 Cinnamon 目前只支持 Normal 和 Double ,即不缩放或两倍缩放。

DSC_1627

官方的意思是,支持 4K 显示器。至于适用于 13.3 寸 1080p , 1.5 倍这种需求,不被接受。

所以没什么好办法。

个人建议,Text scaling factor 还是保持默认值 1,以防止变形。修改各个软件的显示。多数常用软件都有相应的功能,比如 Chrome,Firefox,Atom ,甚至是 Steam 都有相应的设置。

浏览器类的可以直接用 Ctrl + 鼠标滚轮 的方式控制缩放,也可以直接设置个默认值,设置默认之后, Ctrl + 0 就是还原到 150% 而不是 100% 了。不过目前发现,如果网页里有使用 title 作为属性的提示文字的话,还是原来的大小。

这个时候就能看出来谁网页做得好,谁网页做得傻逼了。

Terminal

改字体大小就行了

Chrome

在设置里就能找到,Page Zoom。

DSC_1643

Firefox

修改 about:config 中的 layout.css.devPixelsPerPx ,由 -1 修改成 1.5 。

不过有一个问题,工具栏也会变肿,悬浮提示文字还是原来的大小。

更多软件

wiki.archlinux.org 上有很多关于 HiDPI 的设置,可以点此查看:HiDPI (简体中文)

7.浏览器鼠标中键滚动

既然聊到了浏览器,就得说一句,在最初,鼠标滚轮是没有按键功能的,而三键鼠标也从没流行过。但是设计之初,Linux 是把鼠标中键当做粘贴键使用的,这个传统一直使用至今,现在部分 ssh 客户端也有这个传统设置。

但在浏览器上,鼠标中键作为滚动键更为方便。

所以最好的办法是,修改浏览器的设置。

Firefox 的设置在:Browsing – Use autoscrolling

DSC_1695

Chrome 则需要安装一个 AutoScroll 插件

之后就可以像 Windows 一样使用鼠标中键滚动了。

8.屏蔽鼠标中键点击标题栏

鼠标中键点击一般软件的标签,可以关闭此标签。但是像 Chrome 这种标签栏在最顶端的软件,在 Linux Mint 下鼠标中键点击会触发操作系统动作:窗口向下一层。

个人认为是个毫无意义的功能,所以关了比较好。

在 System Setting – Windows 中:把 Action on title bar middle-click 设置成 None。

DSC_1674

9.输入法输入特殊符号

除了搜狗输入法之外,我还尝试了不少输入法,RIME,sunpinyin 都试了。说实话,用户体验大同小异。

原本选搜狗输入法还有另一个理由,就是符号输入。搜狗输入法在 Windows 上按 v + 数字,就可以开启符号输入。

snap2352

可惜 Linux 上没这功能。不仅如此,其他输入法也都没有这个功能。

不过并不是完全不能输入特殊符号。

按下 Ctrl + Alt + B ,可以调出虚拟键盘,之后点击虚拟键盘的标题栏,就可以切换键盘内容,就可以输入特殊符号了。

DSC_1662

另外如果只是单纯的想输入直角引号 「」 ,可以直接输入拼音 zhijiaoyinhao ,或者缩写 zjyh ,就 有可能 匹配到,只是有可能。

DSC_1698

10.字体问题

Linux Mint 默认字体是 Noto Sans ,其不包含简体中文字体。

DSC_1645

如果遇到简体中文,会自动适配到 Noto Sans CJK SC。

但是:当你安装完简体中文支持之后,系统的部分默认字体(尤其是浏览器)会变成楷体 AR PL UKai ,显示器上会显示得特别的丑。

DSC_1694

根源是,正规网页会在 html 标记中注明 lang ,如果本地中文应用也使用了类似标签,指定了中文,或者非中文应用显示中文, Linux 就强制用 AR PL UKai 这个字体,这就是 Linux Mint 你的不对了,明明有 Noto Sans 你却移情别恋 Win95。

解决办法,可以把系统字体都修改成自带的 Noto Sans CJK SC ,或者也可以使用自带的文泉驿微米黑 WenQuanYi Micro Hei ,这两种字体也都自带等宽字体。

也可以选择下载并使用 Adobe 的 思源黑体 Source Han Sans ,不过没有等宽字体,另外其实这个和 Noto Sans 是一个玩意,只是略有差异,用哪个其实对咱们这些老百姓的影响不大。

不过浏览器并不使用系统设置得字体,他们到底默认选什么字体不清楚,反正只要 css 里 font-family 没指定,就是 AR PL UKai 。本站也是借此机会才研究了一下这个浏览器行为(而且主页并没被当做简体中文,而是被当做日文,并自动匹配了 高雄P哥特体 TakaoPGothic ),接下来要一定幅度的修改所有页面了。

对于浏览器的解决办法是,修改浏览器的默认字体。这个就不用多讲了。(当然很多网站还是老老实实写了 font-family 的)

安装思源黑体 Source Han Sans

Linux Mint 最简单的安装办法就是下载其 OTF 文件。

大陆地区可以根据区域选择 SourceHanSansCN ,也可以根据语言选择简体中文的 SourceHanSansSC 。都说了对一般老百姓来讲差异不大。而且,要知道对于未指定语言本地应用来讲,如果是同一个字的不同地区的不同写法,也是没办法同时支持两个字体的,一般情况下也不影响阅读。

双击字体文件就能看到绿色的安装按钮,点击就能安装。

11.FAT文件系统时间问题

(首先,真高兴我们这些脑子正常的国家不再使用夏令时了)

我个人经常使用各种同步软件进行文件同步的,毕竟设备太多了,电脑,手机,服务器。多数同步软件都是依靠文件修改时间实现的。有些依靠网络同步,有些则依靠 U 盘或 TF 卡同步。

然而在这里将面临一个极为严峻的问题,即我们日常使用的外置存储设备,多数都是 FAT 文件系统的。而 FAT 在时间记录上是不保存时区的,也就是插上去的 U 盘,将被当做格林威治标准时间。而我们已经在安装系统时设定了时区是东八区,也就是说,手机上的照片如果以 FAT 文件系统的方式存储并接到 Linux Mint 上之后,修改时间要比正确的多 8 个小时。

DSC_1652

此问题目前只发现于 FAT32 文件系统上,NTFS、ext4 以及 exFAT 都没这个问题。可以说这就是历史遗留问题了。

一种解决思路是:修改 Linux 的挂载脚本,针对 FAT32 文件系统的挂载,修正其时区。

可以说方法是好方法,时区可以从系统中读取,而且 mount 也真的有这个选项。唯一的问题是,各个发行版的 自动挂载脚本 都不一样。我找了很久都没找对实现 Linux Mint 的自动挂载脚本。这个方法只能放弃。

另一种思路是,考虑 Windows 和 Linux 的不同之处。

介绍几个名词:

  • RTC time,硬件时钟,即计算机里的那个表,哒哒哒哒走个不停的,没有时区概念。
  • UTC, UTC 是与时区无关的全球时间标准。
  • Unix time, 就是 UTC 自 1970 年 1 月 1 日经过的秒数。
  • Local time,存储于操作系统上本地时间,就是你手上的表,你住中国大陆你就得设置成东八区的时间。

简单来讲,如果你手里有个药瓶,上面写着「请在 20 点钟服用」,你能明白这是到晚上 8 点时该吃的药。但如果这个药瓶子是地球某个角落通过瞬间移动传送过来的药瓶子,你就得想想,这是哪个国家的晚上 8 点了。

但假如上面写的是:「亲爱的来自东八区的病人,请在您当地的 20 点钟服用」,你就知道,哦,这是在我的 20 点钟。

不过 Unix time 更方便,「亲爱的病人,请在 Unix time 1555690481 时服用」,都不用计算时区了。

回到正题,重点是,电脑里硬件的那个 RTC time ,不能记录时区。

Windows 操作系统会将 Local time 写入 RTC time ,所有不需要时区的事情都以 Local time 解决,值与 RTC time 相等。计算机里的那个表是你的当地时间。

而 Linux 默认将 UTC 写入 RTC time ,Local time 的值是 UTC + 你的时区 算出来的。计算机里的那个表是格林威治时间。

在不使用双系统时,其实没差,因为干所有事情都是依靠 Local time。

DSC_2357

Linux Mint 在挂载 FAT32 文件系统的时候用的是 RTC time 而非 Local time ,罪魁祸首就是他了。

不仅是 Linux Mint ,在 Ubuntu 和 CentOS 上也都有相同的问题。

还能说是 Windows 的问题么? Linux 的心口不一才是问题。

解决办法

(再次,真高兴我们这些脑子正常的国家不再使用夏令时了)

因为不论是 Linux 还是 Windows,大部分干活的还是靠 Local time ,也就是其实使我们设置的时间。RTC 最终只是当了个计数器用,哒哒哒哒走准了就行。

DSC_1655

所以解决办法,就是把 RTC 时间设置成 Local time 。

DSC_1656

问题解决。

(题外话:目前仍无法实现使用安卓手机 sftp 进行文件同步,安卓 7 版本之前的文件系统 FUSE 有 Bug,安卓 8 之后虽然文件系统更新为 SDCardFS , ftp 已经实现了修改文件时间,但是 ftp 性能太差。 sftp 仍然没戏。所以定时把 TF 卡拔下来备份还是挺烦的。这个问题今后有机会再写吧)

12.USB 文件复制

注:这同样是个 Desktop 和 Server 共有的问题,而且这个问题坑过很多人,大部分人目前仍一直以为是内存或者 U 盘的问题。

简单描述下现象的话,就是有时候向 U 盘或移动硬盘写入文件时,会出现快到离谱的写入速度,不论是 cp 还是 rsync 还是经由界面。

比如我有一个用 SATA2 改的 移动硬盘,其磁头的持续写入能力只有 40MB/s,那么如果我拷贝一个 500M 大的文件,应该需要 10 秒才对。但是实际现象是,可能 1 秒钟就没用到,复制进程就以 400MB/s 的速度搞定了。

甭说是超过移动硬盘的持续写入能力,这速度都已经超过 SATA2 的理论值了。

DSC_1665

移动硬盘的指示灯还在闪烁,但却并不明显,貌似还有写入,但又不是一直在写,敲了 sync 后才有写入的迹象。如果这时候 umount ,复制的文件就会损坏。

我们能接受的是 40MB/s 的进度条,而不是刷一下结束之后没准的等待。

这是一种现象。还有一种反过来的,就是复制文件的时候,系统突然变得巨卡无比,甚至键盘鼠标都毫无反应,直到文件复制结束。(简直就是 Win98 时代的软驱)

理由很简单:Linux 的 脏数据 Bug,而且 2013 年就存在了。

修复方式:

立竿见影,但重启失效:

echo $((16*1024*1024)) |sudo tee /proc/sys/vm/dirty_background_bytes

echo $((48*1024*1024)) |sudo tee /proc/sys/vm/dirty_bytes

或修改 sysctl.conf ,添加

vm.dirty_background_bytes = 16777216
vm.dirty_bytes = 50331648

搞定。

DSC_1667

我没仔细研究,两个参数的大小都是抄的,有兴趣研究出来的可以留个言讲讲。

13.一些不再维护的命令缺失

tailf 这些命令已经没有了。这可能会导致某些使用了这些命令的程序不能正常工作。

DSC_1628

我在标准的 Ubuntu 中检查了, tailf 虽然效果上和 tail -f 相似,但却并不是什么 alias 或 脚本,而是一个实打实的二进制文件。

snap2353

原因是 tailf 在 2017 年就已经不再维护了,官方建议是因安全性问题不要继续使用,并改用 tail -f

snap2359

所以老老实实用 tail -f

14.声卡控制

Linux Mint 的声卡控制做得不是很好,经常出问题。

有时候拔掉耳机后,默认声卡输出不会自动切回内置音箱,需要手工选一下 Output profile 才行。

DSC_1651

问题不大。

15.开启休眠功能

注:此操作需要修改 GRUB 引导,不建议无经验的用户尝试,不然系统引导不起来了可能不知道该怎么救活。

不可迷信大厂

之前买笔记本的时候,是专门到 https://certification.ubuntu.com 查了的,这才选了戴尔。

snap2358

本以为这样这款机型就可以支持所有硬件,殊不知指纹识别就是不好使。

而且官方说 Hibernate is not working on this system ,即休眠功能在此系统不可用。

实际上,休眠功能就在那好好地摆着等待启用!

修改 GRUB 启用休眠功能

首先要确保你的 SWAP 分区大于内存大小,因为与 Windows 不一样,Linux 直接使用交换分区保存内存数据。

之后要确保 GRUB 中,Linux Mint 的启动处于第一位,对于单系统来讲不用担心。

执行 cat /etc/fstab 查看你的 SWAP 分区的 UUID

修改 /etc/default/grub 文件,在 GRUB_CMDLINE_LINUX_DEFAULT 中添加 resume=UUID=putYourSwapUUIDhere ,把 putYourSwapUUIDhere 换成你的 SWAP 分区的 UUID

GRUB_CMDLINE_LINUX_DEFAULT="quiet splash resume=UUID=putYourSwapUUIDhere"

执行 sudo update-grub 更新 grub

执行 sudo systemctl hibernate 验证休眠功能。

给开始菜单和电源管理增加休眠选项

新建文件 /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla

并编辑为以下内容:

现在开始菜单和电源管理应该都有休眠选项了。

DSC_1677

DSC_1681

16.任务栏和快捷键

默认任务栏风格是 Modern ,有点像 Win10 ,我个人是不喜欢的,换成了 Traditional ,比较像 XP 。没法实现 Win7 的样子。感觉其实 Win7 的任务栏设置成不合并之后,效率才是最高的。

显示桌面按钮是个 applet,默认放在开始菜单旁边了,非常的 XP 。可以移动到最右侧,保持和 Win7 一个风格。

DSC_1686

Win 键,在 Linux 下叫做 Super 键。

Win + E ,是打开默认文件管理器。不过 Win + R 啥都没绑定。可以在 Kerboard – Shortcuts 中设置用 Win + R 打开 Terminal 。命令是 gnome-terminal

DSC_1690

总结

光是为了设置就写了这么多条,可见 Linux 仍然很不适合一般用户?

回想一下当年用 Win98 的时代,其实每次装完系统,照样要在操作系统里捣鼓大半天,才算装完系统。XP 和 Win7 虽然默认设置已经好了很多,但是仍然需要一些个人习惯的微调,但几乎不足轻重。Win10 的默认设置甚至还不如现在的 Linux 。

不过这可能对其他人不一样,如果还是 Win98 时代,这些人估计也会用默认设置过日子。像 Win10 那种低劣品质的玩意在这些用户眼里完全没什么不同,甚至还会夸赞起来。

之前那篇 《在 Dell Inspiron 7380 上安装 Linux》 中讲的几个问题没有并入本篇文章,包括 修复 Samba 。Fn + F9 其实真的已经绑定了搜索,只不过 Linux 当然没有全局搜索功能,所以在桌面不生效。颜色校准就不用妄想了,送修了两次才知道这玩意是代工厂组装的,谁知道用的是哪个厂子的屏幕。戴尔显示器?戴尔显示器的特点是 “不漏光非戴尔” 了,谁买谁 SB 。而且你也看到了,虽说的确对于某些硬件无法支持休眠功能,但可以支持休眠功能的硬件也说不支持,明显戴尔根本就没仔细测试,他只是把自己手里的硬件资料检查了一下,能支持的就说能支持(资料显示指纹可以识别,但社区的答案是否定的),觉得不能支持的就说不能支持(休眠功能在部分机器上不可用,为了避则不论测没测都说不能用),大厂不可信。

另外这篇文章的文本量真的有点大得打怵了,而且最近身体状态和精神状态都特别的不好,已经连续咳了一个多月了,睡眠经常是躺在床上辗转反侧到凌晨 3 点之后才能睡着,早上 9 点不到就会头痛疼醒。因此,文章中错字特别的多,我自己简单过了一遍之后光是改错字就用去了半个小时。

接下来还有一篇关于 Linux Mint 下软件的使用,压力非常的大。

参考资料

https://unix.stackexchange.com/questions/447593/make-debian-apt-new-apt-get-aptitude-frontend-cache-deb-files-in-var-ca
https://superuser.com/questions/837181/disable-middle-mouse-button-on-title-bar-alt-tab-like-behaviour
https://unix.stackexchange.com/questions/940/how-can-i-get-a-formatted-date-for-a-unix-timestamp-from-the-command-line
https://askubuntu.com/questions/397249/system-freezes-unresponsive-unusable-when-copying-large-file-to-usb
https://lwn.net/Articles/572911/

4 comments

Skip to comment form

  1. 老虎

    写那么多,真是爱好?

    1. 石樱灯笼

      是病,得治。

      1. 老虎

        其实主要看你说咳嗽一个月了,我觉得还是身体健康最重要,其它都tm是虚的,连同工作在内,别说博客了,玩玩就好。

        1. 石樱灯笼

          那看来我已经是病入膏肓到了晚期,没救了,不用治了。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据