成功加入购物车
图书条目标准图
如链接显示套装,全册,标题与图不符的,请联系客服确认再下单!!!
[美] 米歇尔 著; 李德龙 译 / 清华大学出版社 / 2010-03 / 平装
售价 ¥ 17.60 1.5折
定价 ¥118.00
品相 八五品品相描述
优惠 满包邮
延迟发货说明
上书时间2022-07-22
卖家超过10天未登录
精通Unix Shell脚本编程(第2版)
本书意欲作为学习工具和研究向导,旨在告诉读者怎样一开始就目标清晰地编写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章脚本编程快速入门和概述31.1区分大小写31.2UNIX特殊字符31.3shell41.4shell脚本41.5函数41.6运行shell脚本51.7shell脚本中的注释和风格61.8控制结构71.9使用break、continue、exit和return语句101.10here文档101.11shell脚本命令111.12符号命令131.13变量131.14命令行参数141.15shift命令141.16特殊参数$*和$@151.17双引号"、符号和`161.18在Solaris中使用awk161.19正确使用echo命令171.20shell脚本中的数学171.21内置的数学函数181.22文件权限、suid和sgid程序191.23在远程主机上运行命令201.24设置陷阱211.25用户信息命令221.25.1who命令221.25.2w命令221.25.3last命令231.26ps命令231.27与用户通信241.28统一大写或小写文本以方便测试241.29检测返回代码251.30基于时间的脚本执行261.30.1cron表261.30.2at命令271.31输出控制281.31.1静默运行281.31.2使用getopts解析命令行参数291.31.3使用后台函数创建一个协作进程301.32捕获延迟命令输出311.33逐行处理文件的最快方式321.34循环中使用命令输出351.35邮件通知技术361.35.1使用mail和mailx命令361.35.2使用sendmail命令来发送外发邮件361.36创建一个进度指示器371.36.1一系列圆点371.36.2一条旋转线381.36.3运行时间391.37使用记录文件391.38创建伪随机数411.39检查AlX中的失效磁盘分区421.40自动主机ping421.41高亮显示文件中的特定文本431.42使打印机一直打印441.42.1AIX的“传统”打印机子系统441.42.2SystemV和CUPS打印441.43自动进行FTP文件传输441.44使用rsync复制数据441.45捕获大于$MEG的文件列表461.46捕获用户的按键操作461.47使用bc实用工具来进行浮点数学运算471.48数基转换481.48.1使用typeset命令481.48.2使用printf命令481.49使用select命令创建菜单491.50删除文件中的重复行511.51删除文件中的空白行511.52测试NULL变量511.53直接访问上一个位置参数$#的值521.54删除命令输出中的列标题521.55数组531.56测试字符串531.57小结57第2章逐行处理文件的24种方法592.1命令语句592.1.1使用文件描述符602.1.2创建一个在时间测试中使用的大文件602.2逐行处理文件的24种方法652.2.1方法1:cat_while_read_Line652.2.2方法2:while_read_LINE_bottom662.2.3方法3:cat_while_LINE_line672.2.4方法4:while_LINE_line_bottom682.2.5方法5:cat_while_LINE_line_cmdsub2692.2.6方法6:while_LINE_line_bottom_cmdsub2692.2.7方法7:for_LINE_cat_FILE702.2.8方法8:for_LINE_cat_FILE_cmdsub2702.2.9方法9:while_line_outfile712.2.10方法10:while_read_LINE_FD_IN722.2.11方法11:cat_while_read_LINE_FD_OUT732.2.12方法12:while_read_LINE_bottom_FD_OUT742.2.13方法13:while_LINE_line_bottom_FD_OUT752.2.14方法14:while_LINE_line_bottom_cmdsub2_FD_OUT762.2.15方法15:for_LINE_cat_FILE_FD_OUT772.2.16方法16:for_LINE_cat_FILE_cmdsub2_FD_OUT782.2.17方法17:while_line_outfile_FD_IN782.2.18方法18:while_line_outfile_FD_OUT792.2.19方法19:while_line_outfile_FD_IN_AND_OUT802.2.20方法20:while_LINE_line_FD_IN812.2.21方法21:while_LINE_line_cmdsub2_FD_IN822.2.22方法22:while_read_LINE_FD_IN_AND_OUT832.2.23方法23:while_LINE_line_FD_IN_AND_OUT842.2.24方法24:while_LINE_line_cmdsub2_FD_IN_AND_OUT862.3计时测试各种方法872.3.1计时脚本872.3.2每个方法的计时数据1052.3.3计时命令替代方法1132.4使用命令输入和使用文件输入的区别1152.5小结1152.6作业116第3章自动事件通知1173.1自动事件通知的基础1173.1.1使用mail和mailx命令1173.1.2设置邮件别名1193.2外发邮件的问题1203.2.1使用.forward文件创建一个“Bounce”账户1223.2.2使用sendmail命令发送外发邮件1233.3拨号调制解调器软件1243.4SNMP陷阱1243.5小结1253.6作业125第4章进度指示器1274.1使用一系列圆点来指示进度1274.2使用一条旋转线来指示进度1294.3使用运行时间来指示进度1314.4联合反馈方法1334.5其他要考虑的选项1364.6小结1364.7作业136第Ⅱ部分程序员、测试员和分析员脚本第5章使用记录文件1395.1记录的概念1395.1.1定长记录文件1395.1.2变长记录文件1405.2处理记录文件1415.3记录的任务和记录文件1455.3.1定长记录文件的任务1465.3.2变长记录文件的任务1475.4合并进程1495.5合并记录生成shell脚本1525.6其他需要考虑的问题1625.7小结1625.8作业163第6章自动FTP处理1656.1语法1656.2自动文件传输和远程目录列表1686.2.1使用FTP获得远程计算机上的目录列表1686.2.2从远程计算机上获得一个或多个文件1696.2.3将一个或多个文件传输到远程计算机1736.2.4用变量代替硬编码的密码1766.2.5将FTP脚本修改为使用密码1796.3加密怎么样1856.3.1创建加密密钥1856.3.2创建不需要密码的安全shell访问1866.3.3安全FTP和安全复制语法1866.3.4用autoexpect和expect脚本实现自动FTP1886.4其他要考虑的问题1916.4.1使用命令行开关项控制执行1916.4.2对活动进行记录1926.4.3对脚本增加调试模式1926.4.4把密码读入shell脚本1926.5小结1926.6作业193第7章使用rsync有效复制数据1957.1语法1957.2普通rsyncshell脚本1967.3用rsync命令复制多目录文件1977.4用rsync复制多文件系统2127.5用rsync复制Oracle数据库2247.6用rsync复制shell脚本2267.7小结2597.8作业260第8章用Expect和autoexpect实现自动交互2618.1下载和安装Expect2618.2交互脚本或程序会话的基础2638.3用autoexpect自动创建Expect脚本2668.4使用变量2728.5条件测试2748.5.1Expect中的case语句2748.5.2Expect中的if…then…else循环2808.5.3Expect中的while循环2818.5.4Expect中的for循环2828.5.5Expect中的函数2848.6在SunBladeChassis和JumpStart中使用Expect脚本2858.7小结2908.8作业290第9章查找大文件和特定类型的文件2919.1语法2919.2记住文件和目录的许可权限2929.3别因文件的大小而吃惊2929.4创建脚本2939.5其他要考虑的问题2989.6小结2989.7作业298第10章进程监视与进程启动前、启动时和进程停止后事件30110.1语法30110.2监视进程的启动30210.3监视进程的结束30310.4当进程启动或停止时进行监视和记录30810.5进程监视的定时执行、显示每个进程的PID、为事件打上时间戳和定时功能31210.6其他要考虑的问题33010.6.1一般性用途33010.6.2要考虑的修改事项33010.7小结33010.8作业331第11章伪随机数和数据的生成33311.1随机数的产生33311.2方法33411.2.1方法1:利用PID和RANDOMshell变量产生一个伪随机数33411.2.2方法2:产生一个在0到32767之间的随机数33511.2.3方法3:产生1到用户定义的最大值之间的数字33511.2.4方法4:产生位于1和用户定义的最大数之间的固定长度的数33611.2.5方法5:使用/dev/random和/dev/urandom字符专用文件33811.3创建伪随机数的shell脚本34111.4创建唯一的文件名34611.5创建一个由随机字符组成的文件35311.6其他要考虑的问题35911.7小结36011.8作业360第12章创建伪随机密码36112.1随机性36112.2创建伪随机密码36212.3语法36212.4建立密码创建脚本36312.4.1出现顺序36412.4.2脚本主体的开始37512.5其他需要考虑的问题38712.5.1密码报表38712.5.2选用哪个密码38712.5.3其他用途38712.6小结38812.7作业388第13章浮点数学运算和bc工具程序38913.1语法38913.2使用bc创建shell脚本39013.2.1创建float_add.kshshell脚本39013.2.2整数和浮点数的测试39513.2.3用bc命令创建一个数学运算语句39713.2.4使用here文档39813.2.5创建float_subtract.kshshell脚本39813.2.6使用getopts解析命令行40313.2.7为bc工具创建数学运算语句40513.2.8here文档和提交结果40613.2.9创建float_multiply.kshshell脚本40713.2.10解析命令行以获取有效数字41213.2.11创建float_divide.kshshell脚本41313.2.12创建float_average.kshshell脚本42013.3其他需要考虑的问题42413.4小结42513.5作业425第14章数制转换42714.1语法42714.1.1例1:将十进制转换为十六进制42814.1.2例2:将八进制转换为十六进制42814.1.3例3:十进制数转换为八进制42914.1.4例4:将十进制转换为十六进制42914.2利用脚本解决问题42914.2.1二进制转换为十六进制的shell脚本42914.2.2十进制转换为十六进制的脚本43214.2.3基于十六进制IP地址产生软件授权码的脚本43614.2.4在任何数制之间进行转换的脚本44014.2.5利用getopts分析命令行44514.2.6继续完善脚本44614.2.7主程序的开始44814.3转换数制的简单、可交互的脚本44914.4利用bc工具进行数制转换45414.5其他需要考虑的问题46014.6小结46014.7作业460第15章hgrep:高亮显示的grep脚本46115.1反白显示控制46115.2创建hgrep.Bashshell脚本46315.3其他需要考虑的问题46915.4小结47015.5作业470第16章监视进程和应用程序47116.1监视本地进程47116.2利用安全shell和远程shell进行远程监控47316.2.1检查活动的Oracle数据库47916.2.2使用autoexpect产生一个expect脚本48216.2.3检查HTTP服务器/应用程序是否运行48716.3等待进程执行完毕48816.4其他需要考虑的问题48916.4.1echo的正确用法48916.4.2应用程序API和SNMP陷阱49016.5小结49016.6作业491第Ⅲ部分系统管理员脚本第17章文件系统的监视49517.1语法49517.2为监视添加异常功能50017.3剩余空间方法50617.4使用带异常功能的MB剩余空间方法50917.5已用百分比——MB剩余空间和大型文件系统51317.6在AIX、Linux、HP-UX、OpenBSD和Solaris上运行文件系统脚本52217.6.1不同操作系统命令语法和输出之间的差异52317.6.2编写中性shell(shell-neutral)脚本52817.7其他应考虑的问题53717.7.1事件通知53717.7.2自动执行53817.7.3修改egrep语句53817.8小结53817.9作业539第18章监视页面调度和交换空间54118.1语法54218.1.1AIX的lsps命令54218.1.2HP-UX下的swapinfo命令54318.1.3Linux下的free命令54318.1.4OpenBSD下的swapctl命令54418.1.5Solaris下的swap命令54418.2编写shell脚本54418.2.1AIX分页监视器54418.2.2HP-UX交换空间监视器54918.2.3Linux交换空间监视器55418.2.4OpenBSD交换空间监视器55718.2.5Solaris交换空间监视器56018.2.65合1分页和交换空间监视器56418.3其他需要考虑的问题57218.3.1事件通知57218.3.2日志文件57218.3.3预约监视57218.4小结57218.5作业573第19章系统负荷监视57519.1在Linux上安装系统统计程序57619.2语法57719.2.1uptime命令的语法57819.2.2iostat语法57919.2.3sar的命令语法58219.2.4vmstat命令的语法58419.3利用脚本解决问题58719.3.1使用uptime命令测量系统负荷58719.3.2使用sar命令测量系统负荷59119.3.3使用iostat命令测量系统负荷59619.3.4使用vmstat测量系统负荷60119.4其他需要考虑的问题60419.4.1尝试为用户检测任何可能的问题60519.4.2向用户显示CPU占用程序列表60519.4.3收集用于描绘曲线的大量数据60519.5小结60519.6作业606第20章对陈旧磁盘分区的监视(AIX特有)60720.1AIX逻辑卷标管理器60720.2命令和方法60820.2.1磁盘子系统命令60820.2.2方法1:在LV级监视陈旧PP60820.2.3方法2:在PV级监视陈旧分区61320.2.4方法3:带重新同步功能的VG、LV和PV监视61620.3其他需要考虑的问题62220.3.1SSA磁盘62220.3.2日志文件62320.3.3自动执行62320.3.4事件通知62320.4小结62320.5作业624第21章打开/关闭SSA磁盘识别指示灯62521.1语法62521.1.1hdisk转换为pdisk62621.1.2标识一个SSA磁盘62621.2脚本编写过程62621.2.1用法函数和用户反馈函数62721.2.2控制函数63021.2.3完整的shell脚本63521.3其他需要考虑的问题64621.3.1错误日志64621.3.2交叉引用64621.3.3Root访问和sudo64621.4小结64721.5作业647第22章带失败通知的自动主机ping测试649第23章制作系统配置镜像665第24章sudo的编译、安装、配置和使用697第25章脱离打印队列地狱:保持打印机持续工作727第26章那些讨厌的SOX审计765第27章使用Dirvish和rsync创建快照类型的备份779第28章对用户按键进行监视和审计841附录AWeb站点上的内容859
展开全部
配送说明
...
相似商品
为你推荐
开播时间:09月02日 10:30