译者序

计算机技术类的书大致可以分为两类:入门类和实战类。入门类的书,多是从最基础、最简单的内容开始,循序渐进、由浅入深地展开,旨在引导读者完成一个从“无”到“有”的过程;而实战类的书,则是假定读者已经具备相关的背景知识,将重点放在特定情境下的实践以及技巧上,帮助读者实现从“有”到“精”的转变。得益于开源社区以及爱好者们的无私贡献,任何一位初学者都可以在Internet上轻松获取各种Linux/Unix shell相关的基础教程。而就如何运用shell来解决现实世界中的问题,相关的知识与技巧多是散落在论坛、博客之中,要么不够全面系统,要么不易查找。如果你也有此烦恼,那么不妨看看本书。从英文书名中采用的cookbook一词便可知道这本书的风格如同居家菜谱(cookbook)一样直截了当:列出菜名(待解决的问题),然后给出做法(具体的命令或脚本)。市面上类似风格的书不单此一本,O'Reilly公司出版的Unix PowertoolsBash Cookbook也都采用了这种写法。从内容上看,本书并非是简单的重复,而更像是对两位“前辈”的补充,它加入了系统管理自动化、Web页面的抓取与解析、编写Gmail与twitter客户端、利用Git进行备份、结构化文本处理等较新的技巧。即便是已经看过Unix PowertoolsBash Cookbook的读者,我相信他们也能够在这本书中发现一些新东西。

本书作者是一位21岁的在校大学生,除了编写此书之外,他还是SLYNUX GNU/Linux发行版的研发人员。联想21岁时的自己,实在有些惭愧。

在翻译的过程中,除了修正代码或文字中出现的逻辑或印刷错误之外,对于原文的某些部分,译者并没有严格地依照字面含义翻译,而是根据原书内容,在不更改作者原意同时保证技术正确的前提下,进行了适当的调整,使其便于理解。

在豆瓣上看书评的时候,经常会看到对于某些中文版书翻译质量的抱怨,有时我也忍不住要牢骚几句。正因为如此,在翻译的过程中,我会竭力确保译文的正确性与流畅性,希望自己不会成为日后被抱怨的对象。不过和不存在没有bug的代码一样,本书中也难免有错,对此,我愿负全责。

从2011年4月接手这份翻译工作,到7月交出译稿,前后3个月的时间里少了很多陪伴家人的时间。在此要感谢我的父母和我的未婚妻姗姗,感谢你们对我的理解与支持。