读完《Linux就是这个范儿》第一二四章后(一二两章在图灵社区有开放出来),心里久久不能平静,很多地方都有深有感悟,感觉这本书就是为我写的,顿时就像拿下这本书了,刚好写书评有机会获得图书,为了得到这本书,我的渣语文也只能硬着头皮上了。
从大三学习操作系统开始接触Linux,当时还装了Ubuntu 10.04,玩了一下Gnome的3D特效,感觉特别炫,简单了解了下Shell,然后就没有然后了。到现在研二,期间安装过N多版本的Ubuntu,从10.04到12.10几乎每个LTS版本都安装过,想过N次要好好学习Linux,也从图书馆借过不少书,网上看了不少资料依旧不得其门而入,仍然是个Linux渣。
翻看了《Linux就是这个范儿》的第一章,首先提到一个小故事,我感觉我就是那个故事里杯具的男猪脚,一次又一次的想跟Linux女神来一次亲密接触却一次又一次不欢而散。第一章中在介绍命令行时,列举了几个特别有意思的事例。
利用Cat文件合并 将约会信息隐藏到图片中
cat pic.png love.txt > pic1.png
利用递归调用和后台进程运行产生大量进程导致系统挂掉
:(){ :|:& };:
第二章主要讲Linux以生动的事例简单讲解Linux的基本知识点:用户管理、文件权限控制、程序执行、软件安装、硬盘管理、Shell和文本处理。作者在讲解这些干货的时候都采用我们身边的有意思的应用场景使用或者相关事例去介绍他们,也就显得特别有意思。引人入胜啊
很明显前两章只是简单的介绍下Linux的魅力和基本的知识点,而第四章则讲解了Linux笨的文化和哲学,笨也就是KISS(Keep It Simple and Stupid),作者围绕KISS介绍了Linux的四大笨。
四大笨之一就是万般皆文本。文本最重要的一个特点简单,随着科技的发展,CUP、内存、网络带宽也都不成问题,而对程序和数据的可读性、可扩展性、易维护性要求比较高。对于文本我首先想到的就是XML和JSON,这两个文本格式最重要的特点也是简单,格式简单,解析转换也简单,很容易找到工具将其序列化反序列化。Linux更厉害的是竟然连设备都是文本。
四大笨之二就是四处用脚本。脚本语言很大的一个特点也还是简单。你可以使用几行脚本代码实现其它语言可能需要上百行才能完成的工作。文中提到脚本语言是强力胶水,作为胶水层存在,来粘合上层和下层。
四大笨之三就是规律无处寻。虽无规律,但是有技巧。作者列举了五点技巧:Linux内核采用机制和策略分离的设计;小处来说使用接口和引擎分离,也就是界面和实现分离,这也就是我们常说的MVC模式了;不用重新造轮子,这句话很常见,当新手菜鸟想写什么工具后,老鸟都会提醒他不要重复造轮子,在Linux里已经提供了工具方法,直接用就可以,不用自己再去重新实现;Linux提供便捷的IPC机制。最后一个就是沉默是金,吝啬是银,再一次印证了KISS。
四大笨之四是配置乱生根。由于采用“策略和机制相分离”的设计。Unix几乎所有的东西都可以配置。但是这也就带来了配置项太多的复杂性。但是Linux则只在需要的时候才能可配置。在保证用户易用性的前提上增加可配置的灵活性。配置起作用的三个元素是:配置文件,环境变量和命令选项。作者还对命令选项进行总结,让我终于知道了哪些选项的基本含义,再也不用烦Linux命令的选项太多太难记了。
Linux太NB了,它的灵活性,强大和完备的功能工具。更宝贵的是它包含的那些设计哲学,是无数大师多年经验和智慧的结晶。如果我也学习了这些宝贵的设计哲学,那我不也……想想就有些小激动
好吧,看了这几章,感受到了Linux那种范儿,那种“策略和机制相分离”的范儿和那种KISS的范儿。好好体会Linux的范儿,并努力将其运用到我们的代码中,加油!