作者:empty 页数:238 出版社:empty |
本书旨在为Linux、Unix以及OSX系统管理员提供短小精悍且功能强大的shell实现解全书分为3个部分:脚本技术基础、系统交互和高级技术、有用的脚本实例。主要内容包括如何使小到中型的系统管理任务自动化, 分析系统数据并编辑配置文件, 使用bash和决方案, 教会读者如何使用现有调试器调试shell脚本。ksh等编写Linux、Unix和OSX应用程序的脚本文件等。读懂一般的shell代码。本书面向中高级的shell程序员, 以及需要解决日常问题的系统管理员, 但假定读者能够Ron Peters在过去的15年中大部分时间都在做系统管理员的工作.他曾是Intel公司的高级管理员,在那些日子里,他总是每周7天、每天24小时不停地工作,他也曾是一个专用于设计工作的大型计算机集群的首席管理员。他现在是Columbia运动服装公司的Linux/UNIX系统管理员。他喜欢和家人在一起, 喜欢修理他的道奇Challenger汽车, 还喜欢玩美式壁球。
对于世界上的大多数事情,我们都要依赖他人的帮助来完成。本书也不例外。这个项目首先也是最重要的,我要感谢上帝赐予我生命,以及我拥有的技能,让我可以写这本书。我也要感谢我的妻子Kathleen、我的两个儿子Austin和Grant, 他们忍受了我在计算机前耗我想对两位Brian表达我的感激之情:感谢Brian Grell给我提供了思路, 我们讨论过的很多内容都包含在本书之中:感谢Brian Culp通读了整本书, 保证我集中表达了想要表达的最后, 我想感谢所有帮忙删掉本书中那些“English文字”(http:/www.homestamunner.的规模超出了我参加过的大多数项目,我不可能独立完成。费的无数个日日夜夜,东西,他也提出了一些适当的问题,保证了本书内容的清晰。
Brian Culp已经在信息服务行业工作了20年。这期间他曾在初创阶段的小公司工作过,也曾在一家顶级IT公司工作十几年, 分别做过UNIX系统管理员、项目经理、电子商务网站管理员和方案开发人员的工作.他对UNIX shell脚本程序的开发和使用总是为了特定的目的,用来解决某个技术问题。他希望读者能利用本书中描述的脚本和方法来创建自己需要的解决问题工具包。
前言到写一本这方面的书,这只需要前进一小步。即使可以从网络资源中快速搜索特定的代码,有很多时候我还是想只要从书架上抽出一本书来查,当需要解决特定的某个问题时,并不一定明确知道要找什么,因此也无法确定要在网上搜索什么。这在一定程度上说明了我这种时候的窘境。我的家人和朋友都认为我是一个计算机大牛, 但我心里很明白, 有很多程序员比我更擅长shell编码。我主要想把在我作为一位系统管理员的职业生涯中觉得非常有用的shell脚本代码进行收集、整理, 添加说明, 并把这些与他人分享,本书的目标读者这本书的目标读者是从中级到高级的shell程序员, 因此我没有讲解基本的程序结构。如果读者想了解这方面的内容,应该去搜索附录C内列举的资源。这并不是说这本书对初学者没有用处, 它同样可以作为对传统的shell脚本编码指南的一个补充参考。但是,作为第二语言来学习英语和学习如何用英语来表达讽刺,两者有很大的不同。本书就如同学习表达讽刺, 它假定读者已经具有一定的shell编码基础。些问题,在我的学习过程中发现,在很多学习资源里总是对问题进行模糊处理,而不强调清晰表达,而本书的写作力求清楚明了,宁可啰唆也不会语焉不详。读者可以把本书的很多章节看作是带有超详细注释的shell脚本。本书中各章大多是独立的,但可能在一些细节之处引用其他章的内容。本书非常详细地讲解了脚本是如何并且为什么编写为当前的形式,也说明了如何避免某本书分为3个部分:“基本脚本编程技术”、“系统交互与高级技术”及“有用的脚本”。问题和想法我已经竭尽全力测试本书所含的代码,以保证它们能正确执行。但是,对于如此大规模的工作量,即便有一些人已经通读过这本书,还是可能会有错误。我想知道书中出现了哪些错误,同时更重要的是,我想知道任何可以用于本书修订版中的想法和脚本示例。请发到我
第1部分基本脚本编程技术
第1章shell脚本的错误检测.-2
6.2变量替换.
6.2.1句法.
6.2.2=句法.
6.2.3:-句法.
6.2.4-句法.
6.2.5:?句法.
6.2.6?句法.
第7章非直接引用变量.
1.1 shell跟踪选项-
1.2比较的基本原理.
简单输出语句.-5
1.3根据调试层次控制输出.6
1.4用函数简化错误检查.7
1.5手动单步执行.9
第2章标准函数库.10
2.1库文件.10
2.2一些有用的函数.11
2.3使用库.
第3章日期和时间操作.
6.2.7:+句法.31
6.2.8+句法.31
7.1用非直接变量监控日志文件.32
7.2主监控循环.33
第8章shell进程树.37
用数组实现进程树.38
8.2用非直接变量实现进程树.42
8.3用Bu meshell实现进程树.43
第9章数据重定向45
9.1避免错误.45
9.2普通重定向.46
9.3访问用户指定的文件句柄.48
9.4从shell中访问描述符.49
第10章管道输入读.50
10.1逐行选项1.51
10.2逐行选项2.52
10.3逐行选项3.52
3.1用天数来计算日期.14
3.1.2以秒计算日期的其他
3.2评估当前日期和时间.-17
第4章比较和测试.19
第5章接受命令行选项、开关和参数-23
第6章测试变量和设置默认值.27
17.2让telnet的expect脚本自动
第18章用户输入超时.
18.1手动实现超时.
10.6逐字处理输入.
第2部分
系统交互与高级技术
crntab条目.62
环境问题.-63
用ksh实现并行进程.-69
15.1.1bash.76
15.1.2ksh.76
15.2命令和文件补全.77
17.1为expe et脚本定制参数的一个
24.2指定域分隔符.
24.3简单的模式匹配.
24.4几个值的匹配域.
24.5确定域的数目.
24.6确定最后一个域.
24.7确定倒数第二个域.
24.8给awk传送变量.
24.9在一定条件下使用给awk传送
24.10显示域的范围
24.11显示域的范围
24.12使用awk确定串的长度.125
24.13使用expr确定串的长度.125
24.14使用awk显示一个子串.125
24.15使用expr显示一个子串.125
24.16使用sed进行简单的查找和
24.17忽略文件中的空行和
24.18使用sed进行双查找和
24.19使用sed过滤行.127
24.20使用egrep查找多个串.127
24.21查找进程表的一个清理
24.22使用awk进行列求和计算.128
24.23使用awk产生随机数字.129
24.24从shell中产生随机数字.129
24.25使用sed显示基于字符
24.26特殊字符转义.130
24.27使用grep从一个模式匹配中
使用stty实现超时.90
18.3一般的超时功能.91
第19章即时键盘响应.92
第20章目录的复制.95
20.1使用cp.95
20.2使用tar.96
20.3使用find.96
20.4使用rsync.97
第21章X显示环境概述.99
21.1 display变量.99
21.2使用ssh处理X流量.100
21.3通过第三方系统的X应用.101
21.4用户-Prfile项.103
21.5根-Prfile项.105
21.6弹出一个临时的根窗.106
第22章X导航窗.-.108
22.1导航窗的作用.108
22.2建立导航.109
22.3浏览窗.111
第23章命令行电子邮件附件.-116
81.117
第11章shell中的数学.58
11.1expr.58
第12章crn.62
12.3输出重定向.64
第13章自链接脚本.66
第14章对并行进程的数量控制.-68
14.2用bash实现并行进程.73
第15章命令行编辑和历史命令.75
15.1建立vi编辑环境.-.-76
第16章从命令行编写脚本.-.-78
例子.78
第17章用expect实现用户输出
显示特殊域.120
24.28使用grep返回模式匹配之前
第25章在适当的位置编辑文件.134
25.1使用ed进行简单的查找和
25.2使用ed查找和替换、分割.135
25.3ed命令的例子.136
25.4对一个文件中的特殊字符
第26章平面文件中的变量赋值.141
第27章读取管道输入.143
第28章使用cat的自由格式输出.145
第29章自动交互处理.147
第3部分有用的脚本实例
第30章