图书前言

前言

随着互联网技术的发展,Linux已经成为主流的服务器操作系统。在Linux系统中,Shell是用户与系统内核之间进行交互的接口,是整个Linux系统非常重要的组成部分。Shell脚本程序具有简洁、高效的特点,受到了广大系统管理员和开发者的推崇。就连微软公司都为Windows系统开发了类似的Shell产品——PowerShell,而且让其兼容Linux系统。

在Linux领域,不断有新的Shell产品出现,如Fish Shell、Nushell、Dune和Xonsh等,但Bash Shell依然是绝大多数Linux系统默认的Shell程序,因此它成为系统管理员和Linux系统开发人员解决实际问题的得力工具,而Shell脚本编程也成为优秀的系统管理员和Linux系统开发者必须掌握的技能之一。

本书是获得大量读者好评的“Linux典藏大系”中的《Shell从入门到精通》的第2版。截至第2版完稿,本书第1版累计14次印刷,印数2万余册。本书在第1版的基础上进行了全新改版,不但更新了Linux系统的版本,而且更新了Bash的版本,还对第1版中的一些疏漏进行了修订,并对书中的一些实例和代码重新修订,使其更加易读。

本书基于Bash Shell详细介绍Shell编程方方面面的知识和技巧。本书以实用为主旨,从Shell入门知识和编程环境的搭建讲起,逐步深入Shell编程的核心技术,并通过两个综合案例向读者展示如何使用Shell脚本解决实际问题。相信在本书的引领下,读者可以在较短的时间内掌握Shell脚本编程的相关知识。

关于“Linux典藏大系”

“Linux典藏大系”是专门为Linux技术爱好者推出的系列图书,涵盖Linux技术的方方面面,可以满足不同层次和各个领域的读者学习Linux的需求。该系列图书自2010年1月开始陆续出版,上市后深受广大读者的好评。2014年1月,作者对该系列图书进行了全面改版并增加了新品种。新版图书一上市就大受欢迎,各分册长期位居Linux图书销售排行榜前列。截至2023年10月底,该系列图书累计印数超过30万册。可以说,“Linux典藏大系”是图书市场上的明星品牌,该系列中的一些图书多次被评为清华大学出版社“年度畅销书”,还曾获得“51CTO读书频道”颁发的“最受读者喜爱的原创IT技术图书奖”,另有部分图书的中文繁体字版在中国台湾出版发行。该系列图书的出版得到了国内Linux知名技术社区ChinaUnix(简称CU)的大力支持和帮助,读者与CU社区中的Linux技术爱好者进行了广泛的交流,取得了良好的学习效果。另外,该系列图书还被国内上百所高校和培训机构选为教材,得到了广大师生的一致好评。

关于第2版

随着技术的发展,本书第1版与当前流行的Linux系统环境和Shell版本有所脱节,这给读者的学习带来了不便。应广大读者的要求,笔者结合当前的主流Linux系统和Bash Shell版本对第1版图书进行了全面的升级改版,推出第2版。相比第1版图书,第2版在内容上的变化主要体现在以下几个方面:

? 将Linux系统升级为Ubuntu 22.04和RHEL 9.1版;

? 将Bash Shell升级为5.2.0版;

? 增加对Z Shell相关内容的介绍;

? 更新Shell脚本的Shebang行,以兼容新版Ubuntu系统;

? 修订第1版中的一些疏漏,并对一些不够准确的内容重新表述;

? 新增大量的助记提示,帮助读者快速记忆相关命令和选项;

? 新增思维导图和课后习题,以方便读者梳理和巩固所学知识。

本书特色

1.视频教学,高效、直观

本书特意提供442分钟多媒体教学视频讲解重要的知识点,帮助读者高效、直观地学习,从而取得更好的学习效果。

2.内容全面,系统性强

本书全面介绍Shell编程方方面面的知识,包括Shell编程入门基础、Shell编程核心技术与Shell编程实战,基本涵盖Shell编程的所有重要知识点。

3.由浅入深,循序渐进

对于大多数初学者而言,掌握Shell编程技术并不容易。为了帮助读者顺利学习,本书从Shell编程的基础知识讲起,然后循序渐进地介绍Shell编程的核心技术,最后进行编程实战,提高读者的实际开发水平。

4.注重实践,实用性强

本书以当前流行的Bash Shell为基础,结合90多个实例详解Shell编程的核心技术,并对Shell编程的常见问题展开论述,无论初学者,还是有一定基础的Linux开发和运维人员,都可以学到有用的知识。

5.提供大量的助记提示

在学习Shell编程的过程中会碰到大量的命令和选项,这些内容非常繁杂,难于记忆。本书专门提供大量的助记提示来解决这个问题。例如,在讲解diff命令的“-c选项”时,选项说明为“输出包含上下文环境(context)的格式”,其中的context是“上下文环境”的英文,“-c选项”中的字母c来自该单词,这样就可以做到不用死记硬背即可掌握相关命令和选项,从而提高学习效率。

6.案例典型,实战性强,有较高的应用价值

本书最后一篇介绍两个综合案例,这两个案例来源于作者开发的实际项目,有较高的应用价值和参考性。这两个案例分别使用不同的框架组合实现,便于读者融会贯通地理解相关技术,读者对这两个案例稍加修改,便可将其用于自己的项目开发中。

7.提供习题、程序源代码、思维导图和教学PPT

本书特意在每章后提供多道习题,以帮助读者巩固和自测该章的重要知识点,还赠送教学视频、程序源代码、高清思维导图和教学PPT等超值配套资源,以方便读者学习和教师教学。

本书内容

第1篇  认识Shell编程

本篇涵盖第1、2章,主要介绍Shell的入门知识和编程环境的搭建,包括学习Shell编程的必要性以及Shell的起源、功能和分类,并包括Shell的特性、向Shell脚本传递参数、第一个Shell脚本程序以及如何在Windows、Linux和FreeBSD上搭建Shell编程环境,还包括编辑器的选择和系统环境的搭建等。

第2篇  Shell编程核心技术

本篇涵盖第3~13章,主要介绍Shell编程涉及的所有重要知识点,包括变量和引用、条件测试和判断语句、循环结构、函数、数组、正则表达式、文本处理、流编辑器、文本处理器awk命令、文件操作,以及子Shell与进程处理等。

第3篇  Shell编程实战

本篇涵盖第14、15章,主要介绍Shell脚本调试技术,以及如何利用Shell脚本解决实际问题,包括Shell编程中的常见问题、常用的4种Shell脚本调试技术,以及两个综合实例——编写系统服务脚本和通过脚本管理Apache服务器日志。

读者对象

? Shell编程入门与进阶人员;

? 基于Linux系统的开发人员;

? Linux系统管理与运维人员;

? 想提高Linux系统管理和开发水平的人员;

? 高等院校相关专业的学生;

? 专业培训机构的学员。

阅读建议

? 没有Linux编程基础的读者,建议从第1章顺次阅读并演练每一个实例;

? 有一定Linux编程基础的读者,可以根据实际情况有重点地选择阅读相关章节;

? 对于书中的每个实例,先思考一下实现思路再阅读,学习效果会更好;

? Shell编程需要进行大量的操作,其相关功能有多种实现方法,读者在阅读本书的基础上可以对书中的实例进行改编,用其他方式实现实例的功能,这样对相关知识点的理解会更加深刻。

配套资源获取方式

本书涉及的配套资源如下:

? 高清教学视频;

? 程序源代码;

? 高清思维导图;

? 教学PPT;

? 习题参考答案。

上述配套资源有3种获取方式:关注微信公众号“方大卓越”,然后回复数字“34”自动获取下载链接;在清华大学出版社网站(www.tup.com.cn)上搜索到本书,然后在本书页面上找到“资源下载”栏目,单击“网络资源”按钮进行下载;在本书技术论坛(www.wanjuanchina.net)上的Linux模块进行下载。

技术支持

虽然笔者对书中所述内容都尽量予以核实,并多次进行文字校对,但因时间所限,可能还存在疏漏和不足之处,恳请读者批评与指正。

读者在阅读本书时若有疑问,可以通过以下方式获得帮助:

? 加入本书QQ交流群(群号为302742131)进行提问;

? 在本书技术论坛(见上文)上留言,会有专人负责答疑;

? 发送电子邮件到book@ wanjuanchina.net或bookservice2008@163.com获得帮助。

张春晓

2024年8月