Learn Modern Linux
书籍信息 Link to heading
- 书籍链接: Learn Modern Linux
- 来源: It’s FOSS 的推荐, 具体是哪一期周报忘记了, 也懒得找, 链接于是就不贴了, 就这样吧.
- 阅读方式: 略读, 跳读.
- 阅读时间: 开始时间忘记了, 每天大概也就看半小时到两小时, 大概看了3天把内容浏览完毕.
新, 真的很新 Link to heading
全书内容其实不多, 但是和绝大多数我之前读到的概述介绍linux操作系统入门的英文书籍有一个显著的不同点: 那就是题目中的 Modern, 现代.
我不清楚是否有比这本的出版时间更加现代的Linux通用知识相关的书, 在亚马逊上显示的出版日期是2022年5月份. 为什么我要着重谈这本书的出版时间? 因为绝大多数的Linux通用知识书籍都有一个很大的问题: 出版时间太早, 内容太过老旧. 尽管通用的东西并不会改变, 但是在Linux上进行日常开发的开发者使用的工具链早就不再是十几年前的那一套了.
你肯定知道我在说什么, 如果你读过一两本翻译的, 又或是原版的这个主题的书的话, 你会发现作者会不胜其烦地向你介绍那老3样:
- shell, 但是绝对不是zsh, 往往是bash, 更不用提fish 以及其它更新的shell了.
- grep
- vim
- sed, cut… 等等 coreutils 中的其他软件
本书则与别的书不同, fish shell, oil shell, 甚至有一些没见过的shell, 他都会拿出来讲一嘴, 并且把相关的链接和引用贴在当前主题的末尾, 供读者自己深入了解. 你说, 这也不难啊, 但实际上, 大把书根本做不到这一点. 因为它们并没有考虑 读者需要什么, 所以它们的做法通常是, 把一个非常 通用 的工具, 比如grep的常用模板代码贴出来, 就已经水掉了好几页的内容. 对于希望使用Linux作为日常主力或者是生产机器的开发者来说, 重要的并不是了解A命令的用法, 而是知道 在什么情况下使用什么好用的工具去解决问题. 提供给开发者解决问题的思路, 也就是相关的不同解决方案, 才是一本 通用介绍书籍 应该做的事情.
广度与深度 Link to heading
作为一本通用介绍的书籍, 如何平衡每一个子题占用的篇幅是非常重要的. 我读过不知道多少本这一类的通用书, 几乎没有能够在这点上做得非常好的. 这时就要说说我所说的 好的标准 是什么了:
- 广度优先于深度, 一本页数在300-400页, 甚至在300页以下的书, 不可能在深度上有太大的建树.
- 注重科技发展史的讲解, 而不是科技本身的讲解. 对于一个在Linux议题上并不深入的读者, 花大量篇幅解释技术A是优于技术B这件事是无意义的, 偏离主题的. 让读者了解科技变迁背后的历史, 把深度思考的材料而并非是过程和结果提供给读者, 才应该是 通用教育 的第一原则.
在这样的标准下, Modern一书在我看来是相当成功的:
- 它有基本梳理Linux的历史
- Linux的各个子系统, 它都有涉及, 而且都只提供基础的知识, 并且在基础的知识之外, 广泛地向读者介绍各种不同的解决方案.
- Fuck Recipes. 它没有在正文中穿插巨量的code recipes, 而是放在附录里.
总结 Link to heading
总而言之, 我看这本书的第一感受, 就是 如果当时我刚开始接触Linux的时候有看到这本书, 那该多好啊.
实际上, 在以Linux为代表的科技界里, 炒作概念 是开发者们最常做的事情. 过多的术语本身并没有起到为技术正名的作用, 反而把水越搅越浑.
我当然支持深度探索某个领域, 但是, 最重要的还是首先构建对科技架构整体的理解, 我想, 如果你缺少的是这样的东西, 或者你希望能够尝试使用Linux作为daily driver, 这本书会给你提供不错的阅读和实践体验.