今天算是创作欲爆棚了,想到了一点东西就又写一点。今天来探讨一下这个话题,为什么选择 Linux 桌面。

为什么选择 Linux

市面上日用消费者最多的操作系统,主要是 Windows 和 MacOS ,你要把 Android 、 iOS 拉进来比也不是不可以,但是这里至少 GNU/Linux 不是主流。注意,这里我们说的 Linux 主要是 GNU/Linux ,我们指代最广的也是它。所以,我们为什么要用 Linux 呢?这就要看 Linux 与其它操作系统一个最重要的区别—— Libre 。

真的不是什么玩笑话,因为横向比较,消费软件生态比不过 Windows ,桌面美化又有一堆 Linux 桌面美化模仿着 MacOS ,不管怎样日用总是很亏的,但我还是想用,归根结底,是因为它的自由吸引了我。我见过不少人因为各种原因来日常使用 Linux ,但又有不少人最终又回到 MacOS 或者 Windows 的怀抱。如果你不在意软件自由的话,你很难在 Linux 上坚持住。

当然,每个人选择 Linux 理由其实各不相同,我讲一下我的理由。

首先,我讨厌 Windows 。起初是 Win10 经常崩溃,然后是微软的强制更新让我觉得非常恶心,我是非常讨厌这种强制行为的。我不拒绝升级,我讨厌强制。

其次是 MacOS 。 MacOS 比起 Windows 还要封闭,它完全劫持了用户行为习惯,它让用户适应它,而不是让用户去改造它以适应用户。我是很讨厌强制的。

而且两个系统背后的厂商都有窥探用户隐私的前科,我不是很信任。

至于 FreeBSD 之类的,我就没成功装过,而且生态比起 Linux 还要小。

所以,我选择了 Linux 。它是自由的,不限制用户对它进行修改,不强制用户改变使用习惯,不会在我不知道的情况下往不知道的服务器发东西。我使用 Linux 有一种「爽」,就是随心所欲的畅快感。这就是 GNU 所追求的。

当然,我也不是 GNU 的狂信徒。

为什么使用桌面

我听过最蠢的一种观点就是,用 Linux 根本不要用什么桌面。

我只能说你比 Linus 都要厉害, Linus 都还要用 Gnome ,而你只需要 tty 。

图形化是计算机发展的一大进步,大大提高了生产效率。图形化本身就是一种必然,即使你不使用 GUI ,也要使用 TUI 。为什么要用图形界面呢?因为纯文字的表达力是有限的。当数据足够多时,人就很难去细细理解数据的细节,因此图形化是必须的。而且,在操作中,当输入的命令足够机械时,图形化就可以很好的化约底层繁琐的内容,并简洁的表现出来,毕竟你用鼠标进行去点一个切换按钮,肯定比手动输入执行数行代码要强,执行上的简单安全都有得保障。

那么,我们为什么要桌面呢?因为桌面在日常使用中有更好的表达,网页、视频、音乐等等,日常生活你说你不需要?我觉得你根本不是在日常使用 Linux ,或者根本没有吧 Linux 当作自己生活的工具。桌面是一系列图形界面的集合,通过桌面,图形界面可以更方便的开发。很多人就是用个服务器就觉得是在日常使用 Linux 了,似乎完全不用桌面,事实上,他们只是把 Linux 当作生产的工具,而不是日常生活的工具,在这种观点下去批判日常的桌面用户,完全是不可理解的。难道你不觉得 DOS 能有个图形界面是很好的吗?难道你会觉得没有图形界面的 Mac 或者 Windows 是日常生活的更好选择吗?

另外一点,服务器真的不需要桌面,对吗?似乎是的,因为服务器普遍放弃了图形化,但实际上,它们的图形化却在另一方面实现。你可以通过服务商的控制台去查看系统情况,可以点击按钮对系统进行操作,某种程度上来说,它确实舍弃了桌面,但它不可能放弃图形化的,图形化的效率是任何一点有脑子的人都知道,不应该随意舍弃的东西,只有半吊子的家伙会在那里晃荡。

我们为什么要使用桌面,因为桌面对于日常工作拥有更好的表达力,且为图形化提供统一的开发平台,降低了图形化的门槛,更有利于用户将自己的工作流进行统一操作,同时操作。终端下用户始终是过程的,但在桌面下,用户才真正将自己至于并行的内容之下。

良好的终端体验

提到 Linux 还是要提到终端。

Linux 的终端比 Windows 要好很多,跟 Mac 比嘛, Linux 也是很强的,虽然二者都是类 Unix 。 至于 Shell ,Mac 和 Linux 都比 Windows 好, cmd 是真的难用,至于 powershell ,虽然 bash 恶心,但是至少也注意到了一点,在我们在使用终端的时候,实际上就是像在编写过程式代码的过程,OO 过多就有点反使用逻辑了。

讲讲在 Linux 下的终端生活吧!

本质上使用 Shell 命令也是一种编程。Shell 在图形界面之前,是唯一的选择,在图形界面之后也仍然没有死亡。 Shell 在工作中仍具有无可替代性。

首先,是对系统的掌控力。在 Shell 上你可以对系统为所欲为,只要你可以。但是图形界面上,除非你在图形界面上开个终端,否则想要拥有这个掌控里是很麻烦的。图形界面是要化约,但 Shell 则是要提供全部的掌控力。

第二,批处理能力。这点真不必多说了。但这不代表着图形界面完全不可能,实际上还是有可能的,但会受限于图形界面的不完全能力。

第三,交互体验。人不是万能的,记不住很多东西, Shell 的补全功能其实很好用,当然我更喜欢 zsh ,有人也应该会喜欢 fish ?交互体验你使用一次就知道了,相比之下,即使不用插件的 bash ,也比 cmd 好用。

第四,包管理。MacOS 的 Homebrew 就是逊啦!(不是

有人会觉得 Shell 存在是因为图形界面不存在于服务端,我觉得这是错误的想法,因为,Shell 本身存在着这样的能力。事实上, Shell 与图形界面并不冲突,甚至我认为那些觉得图形界面和终端冲突的人就是蠢,二者在生产上最终会互相汲取各自的优点, Shell 会吸收图形界面的操作流,会有 TUI ;图形界面也会加入编码模式,增加自己的表达力,二者是相辅相成。