前言
为什么要写这本书
早在我还在大学校园时就对Linux产生了极大的兴趣,期间我热衷于下载、安装、体验各种不同的Linux发行版,并尝试使用Linux作为我的桌面系统。但实际情况是,由于大学中使用群体极小,学校又没有开设直接的Linux系统课程,虽然我花了不少的课余时间去研究它,但始终感觉不得其法,难以入门。至今我依然记得当时使用鼠标双击好不容易才复制桌面上的rpm包,并抱怨为什么没有出现类似于Windows的“安装向导”。所以实际上有很长一段时间,面对Linux系统我能做的少之又少。
2006年大学毕业后,我有幸进入了一直梦寐以求的IT行业,并从此正式走上了技术之路。工作中能实际接触到Linux系统运维是我在该领域发展的很重要的外部因素,工作的驱使和个人的兴趣成为我每天坚持学习Linux的源动力。但当时很尴尬的一个现实是:一方面互联网行业的高速发展促进了Linux如火如荼的发展,另一方面又很难找到真正适合“新手”的入门级教材,得到一本简单明了的入门书籍是我当时迫切的愿望。于是在走了不少弯路并感觉自己已经“迷路”之后,我报名参加了Linux系统工程师社会培训班,利用工作之余系统并完整地学习了Linux。事实证明,当时的选择是正确的,这直接影响了我至今的职业发展乃至今后的职业规划。
经历了多年的工作后,我也非常希望能有机会与大家分享自己在IT领域的体会,所以也经常在一些技术网站发表技术文章,或是与志同道合的朋友一起举办免费的网络培训班。但是总体来说,所涉及的内容大多零碎、不成体系。筹划本书的初期,我想把重点放在Linux系统管理、高性能计算、高可用集群甚至云计算这些“够时髦”的主题上,但是反复思考后觉得,“时髦”的技术永远在变,而且限制了读者范围。但是对我、对很多梦想学习Linux的读者来说这更是一个机会:用最简单、最朴素、最基础的语言讲解和描述Linux系统以及如何使用它,给更多初学者以“可以学会”的希望和“努力前行”的力量。
出于这样的考虑,我在组织本书的内容时尽量安排书的各个章节以及每章节中的每个小节,甚至是每小节中的知识点的出现顺序符合新手的认知规律,做到从易到难,从基础到提高,以循序渐进的方式将各类知识点以人物出场、层次推进的方式呈现在读者面前,尽量避免将生僻的术语突然摆在读者面前,造成读者思维上的困扰,并且尽量使用简单明了的文字和浅显易懂的比喻帮助读者理解、消化。尽管如此,我还是希望读者能在此基础上展开阅读,并根据实际需要做必要的深入理解。
总之,这是一本讲解Linux系统和Shell编程的入门级书籍,内容主要涉及Linux的基础命令、编辑器的使用和Shell脚本的开发。
读者对象
本书适合以下读者阅读:
- Linux爱好者
- Linux初学者
- 希望学习Shell编程的读者
- 希望了解系统的网络工程师
- 网站前后台开发人员
如何阅读本书
本书从知识结构上分为三大部分,第一部分(第1~8章)为基础内容,详细地介绍了Linux的历史发展、安装使用、用户管理、文件管理、文件系统、字符处理、网络管理、进程管理和软件安装。第二部分(第9~10章)为编辑器部分,内容为Linux下常用编辑器vi和vim的用法和基于流处理的sed和awk工具,这是管理Linux系统的基本技能。第三部分(第11~18章)为Shell编程,内容包括Shell的安装、使用、语法,其中最后一章是本部分的重点,该章所有脚本在实际应用中有很高的使用率。
如果你是Linux的初学者,我建议从第1章开始阅读。第二部分的内容涉及vi和vim编辑器的操作细节,建议读者通读。如果读者已经有一定的基础,希望学习Shell脚本开发,可以直接跳至第三部分学习。
勘误和支持
由于作者的水平有限,编写的时间也很仓促,书中难免会出现一些错误或者不准确的地方,恳请读者批评指正。如果你有更多的宝贵意见,欢迎你发送邮件至我的邮箱johnwang.wangjun@gmail.com,或是关注我的新浪微博weibo.com/u/1186347743,我很期待能够听到你们的真挚反馈。
致谢
首先,感谢伟大的Linux之父Linus Torvalds,他最初开发的这套Linux系统已经改变了整个世界的面貌,也影响了我个人的职业乃至人生发展。
感谢那些无数个为了解决问题而彻夜无眠的夜晚,感谢那些在寒冬凌晨的三四点接到报警电话后集体上阵的兄弟姐妹们,感谢那些年一起扛起24×7运维任务的战友们,这一切无疑是我人生中最宝贵的财富。
感谢机械工业出版社华章公司的编辑杨绣国(Lisa),感谢她在这一年多的时间里始终支持我的写作,她的鼓励和帮助引导我顺利完成全部书稿。
谨以此书,献给我最亲爱的家人,以及众多热爱Linux的朋友们。
王军
2013年10月于上海