欢迎阅读《Linux命令行和Shell脚本开发圣经》(Linux Command Line and Shell Scripting Bible)。和“圣经”系列的所有书籍一样,你能够在本书中找到实践指南和现实世界实际应用信息,以及为你的学习提供上下文联系的参考和背景知识。本书是一份Linux命令行和脚本命令方面相当全面的资源。当你完整阅读完《Linux命令行和Shell脚本开发圣经》,你将具备编写自己的shell脚本,使Linux系统上几乎所有任务自动化执行的能力。
谁应该阅读本书
如果你是Linux环境中的一名系统管理员,你将从知悉如何编写shell脚本中获益良多。本书并不涉及安装一部Linux系统,但一旦你已经使它运行起来,你将希望能够使一些日常的管理任务自动化。这就是shell脚本一展身手的时候,同时也正式本书为你所提供的帮助。本书将演示如何使用shell脚本自动化任何管理任务——从监测系统数据和数据文件,到为你的老板生成报告。
如果你是一名家庭Linux发烧友,你也将从《Linux命令行和Shell脚本开发圣经》中受益。如今,很容易在预置的窗口小程序的图形化世界中迷失。大多数桌面Linux发行版努力地对普通用户隐藏Linux系统。然而,有时候你不得不去了解背后到底正在运行着什么。本书向你展示了如何访问Linux命令行提示符,以及随后该做些什么。通常,简单的任务——比如文件管理,在命令行中执行可能会比从迷人的图形化界面执行,要能够更加快速地完成。在命令行中,你可以使用大量命令,而本书正是向你展示如何去使用它们。
本书内容是如何组织的
本书以这样一种方式进行组织——从Linux命令行的基础知识开始,一路由浅入深,直至创建你自己的shell脚本。本书被分为五大部分,其中每个部分都与前一部分紧密关联。
第一部分假设你已经拥有,或正欲获得一部Linux系统。第一节,“从Linux Shell开始”描述了一个完整Linux系统的各个部分,以及shell是如何与之配合(?)(fit in)。在学习了Linux系统的基础知识之后,接下来我们将看到:
■ 使用一个终端模拟器包访问shell(第二节) ■ 介绍基本的shell命令(第三节) ■ 使用更加高级的shell命令来查看系统信息(第四节) ■ 使用shell变量来操作数据(第五节) ■ 了解Linux文件系统和安全(第六节) ■ 懂得如何使用Linux编辑器开始编写shell脚本(第七节)
在第二部分,你将开始编写shell脚本:
■ 学习如何创建和运行shell脚本(第八节) ■ 在shell脚本中修改程序流(第九节) ■ 遍历代码段(第十节) ■ 在你的脚本中处理来自用户的数据(第十一节) ■ 了解从脚本存储和显示数据的不同方法(第十二节) ■ 在你的系统上控制脚本如何以及何时运行(第十三节)
第三部分深入shell脚本编程更高级的领域:
■ 创建可以在你所有脚本中使用,你自己的函数(第十四节) ■ 了解各种与你的脚本用户交互的不同方法(第十五节) ■ 使用高级Linux命令过滤和解析数据文件(第十六节) ■ 使用正则表达式来定义数据(第十七节) ■ 学习在脚本中操作数据的高级方法(第十八节) ■ 观摩如何从原始数据生成报告(第十九节)
第四部分,你将看到如何使用Linux环境中其它可用的shell编写脚本:
■ 为ash或dash shell编写脚本(第二十节) ■ 了解在tcsh shell中编写脚本有何不同(第二十一节) ■ 在ksh93 shell中使用浮点数(第二十二节) ■ 在zsh shell中使用高级的网络和数学功能(第二十三节)
本书的最后一部分,第五部分,演示了如何在实践环境中使用shell脚本:
■ 了解如何在你的shell脚本中使用广受欢迎的开源数据库(第二十四节) ■ 学习如何从网站提取数据,以及在系统间发送数据(第二十五节) ■ 使用电子邮件发送通知以及向外部用户报告(第二十六节) ■ 编写shell脚本自动化你的日常系统管理职责(第二十七节)
最低要求
《Linux命令行和Shell脚本开发圣经》从一个通用的角度来看Linux,因此你将能够使用手头所有的任何Linux系统来配合本书的学习。本书中很大一部分内容涉及bash shell——当然这也是大多数Linux系统的默认shell。
去往何方
一旦你完整阅读完《Linux命令行和Shell脚本开发圣经》,你将能够很好地在日常Linux工作中结合Linux命令。在千变万化的Linux世界中,紧跟发展的潮流是一个很明智的选择。通常Linux发行版将更改、添加新功能和删除旧的东西。为了使你的Linux知识保持新鲜,一定要做到见多识广。找到一个很好的Liunx社区,并监视Linux世界所发生的一切。目前互联网上有许多备受欢迎的Linux新闻站点,比如Slashdot和Distrowatch等,它们为用户提供关于Linux新进展的最新消息。