精通Unix Shell脚本编程(第2版)
¥
12
1.0折
¥
118
八品
仅1件
作者[美]米歇尔 著;李德龙 译
出版社清华大学出版社
出版时间2010-03
版次1
装帧平装
货号N12
上书时间2024-12-03
商品详情
- 品相描述:八品
图书标准信息
-
作者
[美]米歇尔 著;李德龙 译
-
出版社
清华大学出版社
-
出版时间
2010-03
-
版次
1
-
ISBN
9787302218951
-
定价
118.00元
-
装帧
平装
-
开本
16开
-
纸张
胶版纸
-
页数
876页
-
字数
1505千字
-
正文语种
简体中文
- 【内容简介】
-
本书意欲作为学习工具和研究向导,旨在告诉读者怎样一开始就目标清晰地编写shell脚本来解决各种问题。本书大部分shell脚本技术都将7次涉及。每次都从不同角度触及主题,解决不同的问题。我发现这个技巧对于掌握材料是非常有好处的。
每一章的结尾都有练习,让读者编写一个新的脚本,或修改该章中出现的shell脚本。本书不是一本描述解决方案而是描述解决方案怎样实现的书籍。我力劝读者完整地学习完本书,你会受益匪浅。本书涵盖的shell脚本包括Bash、Bourne,但不包括Korn.Cshell脚本。更高级的主题包括使用rsync复制数据,利用Dirvish生成快速备份,用记录文件解析数据等。
本书从一些细小的任务解决方案到一些相当高级的概念都有涉及,这使得从高中生和大学生到系统管理员都能从中获益。本书每一部分包含若干章。本书中的shell脚本是完整的shen脚本,这一点有别于市场上其他的shell脚本书。本书对各种解决方案,甚至shell脚本每一部分的微小细节都进行了完整的解释,这都是作者的哲理和心态的真正表达。
- 【作者简介】
-
米歇尔(RandalK.MiChael)是UNIX系统管理工作组的高级顾问。他讲授UNI义shell脚本,在企业设置方面编写了大量的shell脚本以解决从系统监控到复制大型数据库等问题和任务。另外,他在该行业有30余年的工作经验,其中15年的时间一直担任UNIX系统管理员,主要解决与AlX、HP-UX、Linux、OpenBSD和Solaris相关的实际问题。
- 【目录】
-
第Ⅰ部分shell脚本基础
第1章脚本编程快速入门和概述3
1.1区分大小写3
1.2UNIX特殊字符3
1.3shell4
1.4shell脚本4
1.5函数4
1.6运行shell脚本5
1.7shell脚本中的注释和风格6
1.8控制结构7
1.9使用break、continue、exit和return语句10
1.10here文档10
1.11shell脚本命令11
1.12符号命令13
1.13变量13
1.14命令行参数14
1.15shift命令14
1.16特殊参数$*和$@15
1.17双引号"、符号和`16
1.18在Solaris中使用awk16
1.19正确使用echo命令17
1.20shell脚本中的数学17
1.21内置的数学函数18
1.22文件权限、suid和sgid程序19
1.23在远程主机上运行命令20
1.24设置陷阱21
1.25用户信息命令22
1.25.1who命令22
1.25.2w命令22
1.25.3last命令23
1.26ps命令23
1.27与用户通信24
1.28统一大写或小写文本以方便测试24
1.29检测返回代码25
1.30基于时间的脚本执行26
1.30.1cron表26
1.30.2at命令27
1.31输出控制28
1.31.1静默运行28
1.31.2使用getopts解析命令行参数29
1.31.3使用后台函数创建一个协作进程30
1.32捕获延迟命令输出31
1.33逐行处理文件的最快方式32
1.34循环中使用命令输出35
1.35邮件通知技术36
1.35.1使用mail和mailx命令36
1.35.2使用sendmail命令来发送外发邮件36
1.36创建一个进度指示器37
1.36.1一系列圆点37
1.36.2一条旋转线38
1.36.3运行时间39
1.37使用记录文件39
1.38创建伪随机数41
1.39检查AlX中的失效磁盘分区42
1.40自动主机ping42
1.41高亮显示文件中的特定文本43
1.42使打印机一直打印44
1.42.1AIX的“传统”打印机子系统44
1.42.2SystemV和CUPS打印44
1.43自动进行FTP文件传输44
1.44使用rsync复制数据44
1.45捕获大于$MEG的文件列表46
1.46捕获用户的按键操作46
1.47使用bc实用工具来进行浮点数学运算47
1.48数基转换48
1.48.1使用typeset命令48
1.48.2使用printf命令48
1.49使用select命令创建菜单49
1.50删除文件中的重复行51
1.51删除文件中的空白行51
1.52测试NULL变量51
1.53直接访问上一个位置参数$#的值52
1.54删除命令输出中的列标题52
1.55数组53
1.56测试字符串53
1.57小结57
第2章逐行处理文件的24种方法59
2.1命令语句59
2.1.1使用文件描述符60
2.1.2创建一个在时间测试中使用的大文件60
2.2逐行处理文件的24种方法65
2.2.1方法1:cat_while_read_Line65
2.2.2方法2:while_read_LINE_bottom66
2.2.3方法3:cat_while_LINE_line67
2.2.4方法4:while_LINE_line_bottom68
2.2.5方法5:cat_while_LINE_line_cmdsub269
2.2.6方法6:while_LINE_line_bottom_cmdsub269
2.2.7方法7:for_LINE_cat_FILE70
2.2.8方法8:for_LINE_cat_FILE_cmdsub270
2.2.9方法9:while_line_outfile71
2.2.10方法10:while_read_LINE_FD_IN72
2.2.11方法11:cat_while_read_LINE_FD_OUT73
2.2.12方法12:while_read_LINE_bottom_FD_OUT74
2.2.13方法13:while_LINE_line_bottom_FD_OUT75
2.2.14方法14:while_LINE_line_bottom_cmdsub2_FD_OUT76
2.2.15方法15:for_LINE_cat_FILE_FD_OUT77
2.2.16方法16:for_LINE_cat_FILE_cmdsub2_FD_OUT78
2.2.17方法17:while_line_outfile_FD_IN78
2.2.18方法18:while_line_outfile_FD_OUT79
2.2.19方法19:while_line_outfile_FD_IN_AND_OUT80
2.2.20方法20:while_LINE_line_FD_IN81
2.2.21方法21:while_LINE_line_cmdsub2_FD_IN82
2.2.22方法22:while_read_LINE_FD_IN_AND_OUT83
2.2.23方法23:while_LINE_line_FD_IN_AND_OUT84
2.2.24方法24:while_LINE_line_cmdsub2_FD_IN_AND_OUT86
2.3计时测试各种方法87
2.3.1计时脚本87
2.3.2每个方法的计时数据105
2.3.3计时命令替代方法113
2.4使用命令输入和使用文件输入的区别115
2.5小结115
2.6作业116
第3章自动事件通知117
3.1自动事件通知的基础117
3.1.1使用mail和mailx命令117
3.1.2设置邮件别名119
3.2外发邮件的问题120
3.2.1使用.forward文件创建一个“Bounce”账户122
3.2.2使用sendmail命令发送外发邮件123
3.3拨号调制解调器软件124
3.4SNMP陷阱124
3.5小结125
3.6作业125
第4章进度指示器127
4.1使用一系列圆点来指示进度127
4.2使用一条旋转线来指示进度129
4.3使用运行时间来指示进度131
4.4联合反馈方法133
4.5其他要考虑的选项136
4.6小结136
4.7作业136
第Ⅱ部分程序员、测试员和分析员脚本
第5章使用记录文件139
5.1记录的概念139
5.1.1定长记录文件139
5.1.2变长记录文件140
5.2处理记录文件141
5.3记录的任务和记录文件145
5.3.1定长记录文件的任务146
5.3.2变长记录文件的任务147
5.4合并进程149
5.5合并记录生成shell脚本152
5.6其他需要考虑的问题162
5.7小结162
5.8作业163
第6章自动FTP处理165
6.1语法165
6.2自动文件传输和远程目录列表168
6.2.1使用FTP获得远程计算机上的目录列表168
6.2.2从远程计算机上获得一个或多个文件169
6.2.3将一个或多个文件传输到远程计算机173
6.2.4用变量代替硬编码的密码176
6.2.5将FTP脚本修改为使用密码179
6.3加密怎么样185
6.3.1创建加密密钥185
6.3.2创建不需要密码的安全shell访问186
6.3.3安全FTP和安全复制语法186
6.3.4用autoexpect和expect脚本实现自动FTP188
6.4其他要考虑的问题191
6.4.1使用命令行开关项控制执行191
6.4.2对活动进行记录192
6.4.3对脚本增加调试模式192
6.4.4把密码读入shell脚本192
6.5小结192
6.6作业193
第7章使用rsync有效复制数据195
7.1语法195
7.2普通rsyncshell脚本196
7.3用rsync命令复制多目录文件197
7.4用rsync复制多文件系统212
7.5用rsync复制Oracle数据库224
7.6用rsync复制shell脚本226
7.7小结259
7.8作业260
第8章用Expect和autoexpect实现自动交互261
8.1下载和安装Expect261
8.2交互脚本或程序会话的基础263
8.3用autoexpect自动创建Expect脚本266
8.4使用变量272
8.5条件测试274
8.5.1Expect中的case语句274
8.5.2Expect中的if…then…else循环280
8.5.3Expect中的while循环281
8.5.4Expect中的for循环282
8.5.5Expect中的函数284
8.6在SunBladeChassis和JumpStart中使用Expect脚本285
8.7小结290
8.8作业290
第9章查找大文件和特定类型的文件291
9.1语法291
9.2记住文件和目录的许可权限292
9.3别因文件的大小而吃惊292
9.4创建脚本293
9.5其他要考虑的问题298
9.6小结298
9.7作业298
第10章进程监视与进程启动前、启动时和进程停止后事件301
10.1语法301
10.2监视进程的启动302
10.3监视进程的结束303
10.4当进程启动或停止时进行监视和记录308
10.5进程监视的定时执行、显示每个进程的PID、为事件打上时间戳和定时功能312
10.6其他要考虑的问题330
10.6.1一般性用途330
10.6.2要考虑的修改事项330
10.7小结330
10.8作业331
第11章伪随机数和数据的生成333
11.1随机数的产生333
11.2方法334
11.2.1方法1:利用PID和RANDOMshell变量产生一个伪随机数334
11.2.2方法2:产生一个在0到32767之间的随机数335
11.2.3方法3:产生1到用户定义的最大值之间的数字335
11.2.4方法4:产生位于1和用户定义的最大数之间的固定长度的数336
11.2.5方法5:使用/dev/random和/dev/urandom字符专用文件338
11.3创建伪随机数的shell脚本341
11.4创建唯一的文件名346
11.5创建一个由随机字符组成的文件353
11.6其他要考虑的问题359
11.7小结360
11.8作业360
第12章创建伪随机密码361
12.1随机性361
12.2创建伪随机密码362
12.3语法362
12.4建立密码创建脚本363
12.4.1出现顺序364
12.4.2脚本主体的开始375
12.5其他需要考虑的问题387
12.5.1密码报表387
12.5.2选用哪个密码387
12.5.3其他用途387
12.6小结388
12.7作业388
第13章浮点数学运算和bc工具程序389
13.1语法389
13.2使用bc创建shell脚本390
13.2.1创建float_add.kshshell脚本390
13.2.2整数和浮点数的测试395
13.2.3用bc命令创建一个数学运算语句397
13.2.4使用here文档398
13.2.5创建float_subtract.kshshell脚本398
13.2.6使用getopts解析命令行403
13.2.7为bc工具创建数学运算语句405
13.2.8here文档和提交结果406
13.2.9创建float_multiply.kshshell脚本407
13.2.10解析命令行以获取有效数字412
13.2.11创建float_divide.kshshell脚本413
13.2.12创建float_average.kshshell脚本420
13.3其他需要考虑的问题424
13.4小结425
13.5作业425
第14章数制转换427
14.1语法427
14.1.1例1:将十进制转换为十六进制428
14.1.2例2:将八进制转换为十六进制428
14.1.3例3:十进制数转换为八进制429
14.1.4例4:将十进制转换为十六进制429
14.2利用脚本解决问题429
14.2.1二进制转换为十六进制的shell脚本429
14.2.2十进制转换为十六进制的脚本432
14.2.3基于十六进制IP地址产生软件授权码的脚本436
14.2.4在任何数制之间进行转换的脚本440
14.2.5利用getopts分析命令行445
14.2.6继续完善脚本446
14.2.7主程序的开始448
14.3转换数制的简单、可交互的脚本449
14.4利用bc工具进行数制转换454
14.5其他需要考虑的问题460
14.6小结460
14.7作业460
第15章hgrep:高亮显示的grep脚本461
15.1反白显示控制461
15.2创建hgrep.Bashshell脚本463
15.3其他需要考虑的问题469
15.4小结470
15.5作业470
第16章监视进程和应用程序471
16.1监视本地进程471
16.2利用安全shell和远程shell进行远程监控473
16.2.1检查活动的Oracle数据库479
16.2.2使用autoexpect产生一个expect脚本482
16.2.3检查HTTP服务器/应用程序是否运行487
16.3等待进程执行完毕488
16.4其他需要考虑的问题489
16.4.1echo的正确用法489
16.4.2应用程序API和SNMP陷阱490
16.5小结490
16.6作业491
第Ⅲ部分系统管理员脚本
第17章文件系统的监视495
17.1语法495
17.2为监视添加异常功能500
17.3剩余空间方法506
17.4使用带异常功能的MB剩余空间方法509
17.5已用百分比——MB剩余空间和大型文件系统513
17.6在AIX、Linux、HP-UX、OpenBSD和Solaris上运行文件系统脚本522
17.6.1不同操作系统命令语法和输出之间的差异523
17.6.2编写中性shell(shell-neutral)脚本528
17.7其他应考虑的问题537
17.7.1事件通知537
17.7.2自动执行538
17.7.3修改egrep语句538
17.8小结538
17.9作业539
第18章监视页面调度和交换空间541
18.1语法542
18.1.1AIX的lsps命令542
18.1.2HP-UX下的swapinfo命令543
18.1.3Linux下的free命令543
18.1.4OpenBSD下的swapctl命令544
18.1.5Solaris下的swap命令544
18.2编写shell脚本544
18.2.1AIX分页监视器544
18.2.2HP-UX交换空间监视器549
18.2.3Linux交换空间监视器554
18.2.4OpenBSD交换空间监视器557
18.2.5Solaris交换空间监视器560
18.2.65合1分页和交换空间监视器564
18.3其他需要考虑的问题572
18.3.1事件通知572
18.3.2日志文件572
18.3.3预约监视572
18.4小结572
18.5作业573
第19章系统负荷监视575
19.1在Linux上安装系统统计程序576
19.2语法577
19.2.1uptime命令的语法578
19.2.2iostat语法579
19.2.3sar的命令语法582
19.2.4vmstat命令的语法584
19.3利用脚本解决问题587
19.3.1使用uptime命令测量系统负荷587
19.3.2使用sar命令测量系统负荷591
19.3.3使用iostat命令测量系统负荷596
19.3.4使用vmstat测量系统负荷601
19.4其他需要考虑的问题604
19.4.1尝试为用户检测任何可能的问题605
19.4.2向用户显示CPU占用程序列表605
19.4.3收集用于描绘曲线的大量数据605
19.5小结605
19.6作业606
第20章对陈旧磁盘分区的监视(AIX特有)607
20.1AIX逻辑卷标管理器607
20.2命令和方法608
20.2.1磁盘子系统命令608
20.2.2方法1:在LV级监视陈旧PP608
20.2.3方法2:在PV级监视陈旧分区613
20.2.4方法3:带重新同步功能的VG、LV和PV监视616
20.3其他需要考虑的问题622
20.3.1SSA磁盘622
20.3.2日志文件623
20.3.3自动执行623
20.3.4事件通知623
20.4小结623
20.5作业624
第21章打开/关闭SSA磁盘识别指示灯625
21.1语法625
21.1.1hdisk转换为pdisk626
21.1.2标识一个SSA磁盘626
21.2脚本编写过程626
21.2.1用法函数和用户反馈函数627
21.2.2控制函数630
21.2.3完整的shell脚本635
21.3其他需要考虑的问题646
21.3.1错误日志646
21.3.2交叉引用646
21.3.3Root访问和sudo646
21.4小结647
21.5作业647
第22章带失败通知的自动主机ping测试649
第23章制作系统配置镜像665
第24章sudo的编译、安装、配置和使用697
第25章脱离打印队列地狱:保持打印机持续工作727
第26章那些讨厌的SOX审计765
第27章使用Dirvish和rsync创建快照类型的备份779
第28章对用户按键进行监视和审计841
附录AWeb站点上的内容859
点击展开
点击收起
— 没有更多了 —
以下为对购买帮助不大的评价