出版时间:2010-8 出版社:人民邮电出版社 作者:彼得 页数:222
Tag标签:无
前言
我在读书期间学到了编程的基本知识,学会了如何根据例子写shell脚本。我曾经认识许多系统管理员或其他NIX系统相关人员并和他们合作过,说到管理系统、与环境交互或是编写脚本几方面,他们每个人都有自己的一些技巧。和这些人交谈、互动是很有益的,因为你总是能学到一些东西,可以充实自己的技巧储备。我决定把这些年来学到的所有有用的shell脚本编程和交互技术集中起来,汇编成一本好的参考手册。实际上,我在写这本书时也加入了自己对这些技术的一些观点。因为我不可能记住本书中包含的所有内容,我在写到各方面技术时会不时地查些资料。我希望这本书会成为一系列高级参考手册的第一本,这个系列可以不断增长壮大。读者可能看到过大量的shell脚本编程图书和网络资源,它们可以帮助掌握shell脚本编程技术。许多shell编程书都写得很好,涵盖的内容很广。本书的主要目的是把一部分最基本的工具、代码片段和高于基本水平的脚本组织起来。我的设想是编一本菜谱,里面是一些并不广为人知的菜肴(技术),以及对我而言很有用的、较高级的算法。本书包含读者可以直接使用的脚本,以及用于演示某个特定算法的脚本示例。本书也演示了几个在命令行环境下可能很有用的复杂命令,并试图对脚本进行裁剪,使它们可以应用于多个层次。但在大多数情况下都几乎或完全没有错误检查,因为这不一定是这个特定脚本的重点。读者必须准备好进行某些修改,以适应所在的本地环境。本书的成因我的朋友Brian Culp和我作为UNIX系统管理员,曾共事多年。我们每过一段时间就会在写某个脚本的时候遇到问题。这时,我们当中的一个就会停下工作,走到另一个身边说:“你那有完成某某工作的代码吗?”回答可能是否定的,这时我们就开始讨论怎样解决这个问题,或者提出几种不同的解决方案。但更多时候可能是说:“晤,是,我记得在一个脚本里做过这样的事,在某某系统上做了某某工作。我找找看。”然后细心操作几次grep命令,答案就到手了。
内容概要
本书旨在为Linux、Unix以及OS X系统管理员提供短小精悍且功能强大的shell实现解决方案,教会读者如何使用现有调试器调试shell脚本。 全书分为3个部分:脚本技术基础、系统交互和高级技术、有用的脚本实例。主要内容包括如何使小到中型的系统管理任务自动化,分析系统数据并编辑配置文件,使用bash和ksh等编写Linux、Unix和OS X应用程序的脚本文件等。 本书面向中高级的shell程序员,以及需要解决日常问题的系统管理员,但假定读者能够读懂一般的shell代码。
作者简介
Ron Peters在过去的15年中大部分时间都在做系统管理员的工作。他曾是Intel公司的高级管理员,在那些日子里,他总是每周7天、每天24小时不停地工作,他也曾是一个专用于设计工作的大型计算机集群的首席管理员。他现在是Columbia运动服装公司的Linux/UNIX系统管理员。他喜欢和家人在一起,喜欢修理他的道奇Challenger汽车,还喜欢玩美式壁球。
书籍目录
第1部分 基本脚本编程技术 第1章 shell脚本的错误检测 1.1 shell跟踪选项 1.2 简单输出语句 1.3 根据调试层次控制输出 1.4 用函数简化错误检查 1.5 手动单步执行 第2章 标准函数库 第3章 日期和时间操作 第4章 比较和测试 第5章 接受命令行选项、开关和参数 第6章 测试变量和设置默认值 第7章 非直接引用变量 第8章 shell进程树 第9章 数据重定向 第10章 管道输入读第2部分 系统交互与高级技术 第11章 shell中的数学 第12章 cron 第13章 自链接脚本 第14章 对并行进程的数量控制 第15章 命令行编辑和历史命令 第16章 从命令行编写脚本 第17章 用expect实现用户输出自动化 第18章 用户输入超时 第19章 即时键盘响应 第20章 目录的复制 第21章 X显示环境概述 第22章 X导航窗口 第23章 命令行电子邮件附件 第24章 单行文本处理 第25章 在适当的位置编辑文件 第26章 平面文件中的变量赋值 第27章 读取管道输入 第28章 使用cat的自由格式输出 第29章 自动交互处理第3部分 有用的脚本实例 第30章 使用procmail自动处理邮件 第31章 进程管理监视器 第32章 管理文件的计数 第33章 从inittab执行进程 第34章 自动RCS 第35章 带颜色的/proc报告 第36章 口令老化通知 第37章 伪shadow文件 第38章 搭建Linux金系统 第39章 系统快照 第40章 删除大文件和日志滚动 第41章 核心探测器 第42章 网络适配器故障转移附录A 测试开关附录B 特殊参数附录C shell脚本编程的其他资源
章节摘录
有时可能需要输入一些数据或者执行一个行为而不使用回车键。不久前,当我需要查看弹道方程的数字输出时,就遇到了这个问题。当时希望仅仅按一个键就能递增或者递减一个输入值,并重新计算结果。我用一个脚本完成了这个任务,显示已经改变的输入值和从它计算而来的新结果。这个有趣的脚本是如何处理立即响应。该脚本能相当好地完成任务。下面的脚本为发射体轨道计算和显示值的简化版本。用户能按照描述的方式设置发射角度和开火速度。脚本将显示发射体的距离、最大高度和飞行时间。为了处理按键操作,必须首先使用stty建立终端。然后像本章随后将要描述的那样,用head(或者dd)命令获得所按键值。这里使用.icanon开关设置stty,使终端操作的标准模式失效,读输入数据的模式改变为基于字节输入的细粒度模式。-icanon开关的前两个特性(erase和kill)的特殊字符分别擦除最后输入的字符和擦除当前行。最后两个特性(werase和rpmt)的应用不是非常普遍。werase特性的特殊字符擦除最后输入字,rpmt的特殊字符在屏幕上重画当前行。更多详细信息参阅stty联机资料。
编辑推荐
《Shell脚本专家指南》是我多年从事系统管理员一职所积累的非常有用的脚本和技术集合。尽管这些脚本是从一名系统管理员的角度进行编写的。但你几乎可以为任何你能想得到的目的而重用它们。《Shell脚本专家指南》中的所有代码或者是非常有用,或者是非常地独特(甚至可能会有一点与众不同)。不过其中有些解决方案所用到的技术可能是你自己很难想出来的。当我还在学习shell脚本编程的时候,我会经常参考一些由别人编写出来的实例,以进一步地扩展自己的视野。而结果往往是我发现一些正在困扰着自己的问题,我的同事和朋友们却早已发明了又酷又聪明的解决方案。因此,我便萌生了写这《Shell脚本专家指南》的念头,以易于理解的形式,介绍所有这些关键技术。我写此书的目的。不是为了创作出一本shelI脚本编程的入门书。而是希望能够提供一些更具深度的内容。它的作用不仅仅是解释sheIl代码的内容,更在于讲述在大多数情况下如何以及为何使用某种特定的编程逻辑。这些脚本将帮助你大大提高编程技能。并提高你解决问题和选择解决方案的能力。《Shell脚本专家指南》中的大部分脚本已经在以可靠性为关键因素的生产环境下,经历了多年的不断锤炼和改进。因此,《Shell脚本专家指南》对于那些希望在案头放一本案例精选的读者来说,将会是最佳的参考资料。这里囊括了所有你迫切希望解决、却又无处发问的Shell脚本问题。
图书封面
图书标签Tags
无
评论、评分、阅读与下载