我为什么拥抱 Linux

良好的权限管理#

你也许会问，我为啥选择选择 Linux，Linux 相较于 Windows 到底有啥不同。我刚开始看 Linux 纯粹是馋 Linux 良好的用户权限管理。Windows 的用户权限让我感觉非常混乱，即便是 NT 6.0 内核以后大幅缓解了这个问题，但是这个问题依旧存在，用户创建的文件，本来好好的，莫名其妙这个文件的所有者就不是用户了，用户还无权访问这个文件，删也删不掉，恶心的一批。然后软件的安装和删除，在 Linux 下都有对应的包管理器来管理，软件也是从官方源 / 镜像源拉取，并且还校验这个包的签名（你可以理解为校验包的完整性）。软件包的安装和移除都需要 root 权限，只要你平时以普通用户权限运行，如果需要 root 权限，临时提升权限即可。管理好依赖，稳定的一批。实在不行，你还可以使用 timeshift 进行快照，出事了就回滚回去，相比之下 Windows 的备份功能纯粹就是废物。

软件的获取很优雅#

使用包管理器 search 某个包，然后 install ，整个过程一气呵成，甚至在绝大部分情况下，不需要你去配置环境变量（因为 bin 目录默认已经全局加载到所有用户的环境变量里面了）。Windows 呢？使用搜索引擎 / 敲网址 到达软件官网 ，分辨是不是官网，找到下载页，下载安装包，安装，然后配置环境变量（如果需要的话）。虽然 Windows 有 Scoop 能缓解这个问题，但是软件源比较分散，让我回想起了管理 PPA 的噩梦。

配置文件集中#

我太讨厌 Windows 的注册表了，对于普通用户来说，这个注册表的表值完全不知道在干什么，只能看到对应哪个软件，但是不知道这个表项是啥意思。。动都不敢动，生怕注册表炸了不好重建。而且即便是有了注册表，各个程序还是在自己的目录 OR 用户目录下生成配置文件，不够集中；Linux 下 /etc 下就是软件的全局配置文件目录，集中管理相当方便，对于用户来说，~/.config 就是用户软件配置文件目录，而且各个软件的配置文件的配置项一般都能做到语义化，用户能轻松读懂意思，即便是不懂，也能找到对应的文档解释这些配置项（大部分情况）；Windows 下，我也没见哪个软件专门写文档去解释注册表里面的表项是啥意思吧？

可玩性高#

Linux 是有很多桌面环境的，例如 Gnome 、 KDE 、xfce、MATE、Cinnamon 等等，你调教的不开心了，随时换到另一个桌面环境，每个桌面环境的可玩性都很不错，而不是像 Windows 就一个桌面环境，玩来玩去就一个样子。Linux 的桌面环境是能玩出花的。不要说 Linux 太难用了，Linux 都是需要自己调教成适合自己的口味的；你都没上手开始调教，是没有发言权的。

配置开启启动 OR 计划任务方便#

Linux 下本身就有一个很好的计划任务管理器，你想配置的计划任务交给它就行，不论是执行某个具体的命令，还是文件，还是说一个 Shell 脚本，它都可以。Windows 下计划任务的设置就稍显麻烦些，而且还存在不会执行的这种情况…… 我属实是麻了。针对单个文件设置开机启动项，对于 Windows 来说略微麻烦；但是对于 Linux 来说就是一件很简单的事情，要么软连接到 ~/.config/autostart/ 要么就在用户目录下写一个启动脚本，之后你想开机执行的文件添加进去，脚本路径写入环境变量配置文件即可。

软链接#

软链接这个东西是用了就回不去的东西，实在是方便多了。虽然 Windows 下也有符号链接、目录链接，但是因为 Windows 的权限管理的模糊，导致这玩意容易出 BUG。

丰富的文件系统选择#

Linux 下可以选择文件系统有很多，比如 EXT 系列，或者 Btrfs ，其中我最喜欢的是 Btrfs ，写时复制 (CoW) 功能实在是太棒了，对于同一个文件，你复制两份后的修改，对于 Windows 来说占用的就是两份文件的空间，对于 Btrfs 文件系统来说，就是一份源文件的 + 变更内容的占用；比直接占用两份文件的空间，肯定是小得多。这样说你如果不明白的话，简单举个例子你就明白了。对于一个 100 MiB 的文件，你复制了一份，然后对其修改了，修改后的大小是 140 MiB。那么这两份文件的占用在 NTFS 文件系统中就是 240 MiB，但是在 Btrfs 文件系统里面，两份文件就是占用了 140 MiB 。即源文件 + 变更内容占用的空间。而且数据安全也有保障。

生态问题#

Linux 的生态是比较差的，尤其是国内软件。谁让国内的大厂向钱看齐，只看重短期利益，没有利益的事情就不干。相比之下，国外大厂对于 Linux 的态度就好多了，也在尝试兼容。就国内而言，大厂做的甚至不如中小厂：迅雷、搜狗输入法、百度网盘、WPS、360 等等，这些做的就相当不错，值得表扬。WPS 的体验非常不错，就是一个去掉所有付费功能的纯净版。哦对，甚至 360 安全浏览器都有 Linux 版本，功能做的还比较全。QQ 浏览器就纯粹套了个壳，功能严重残缺。真不知道国内所谓的大厂在搞什么。QQ / Wechat 甚至到现在都还没有发布一个相对可用的 Linux 版本（特供版不算在内），QQ 那个就别说了... 还不如不发布。

但是对于 Coding OR 运维来说，这些都不是问题，日常用到的软件不多，主要还是集中在开发或者运维上，开发或者运维软件都是对 Linux 友好的，或者有替代的。

人生苦短，我爱 Linux。