精品第二章 Shell 足本编程.ppt
《精品第二章 Shell 足本编程.ppt》由会员分享,可在线阅读,更多相关《精品第二章 Shell 足本编程.ppt(129页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、精品第二章 Shell 足本编程 Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望本章参考教材nUnix技术大全系统管理员卷机械工业出版社nLinux与UnixShell编程指南机械工业出版社nAdvancedBashScriptingGuide,byMendelCooper,电子书籍n其他网上资源咙涪研掇虫佬去非灶翘询械标艳孕毋郸踢电坚抗乍悬棒坑碑泽椿丁证恃钨第二章,Shell,脚本编程第二章,Shell,脚本编程基本概念nUnix/Linux系统中供用户使用的界
2、面,为用户提供了输入命令和参数并可得到命令执行结果的环境。帚菊接函聂池哥咖晰好论细杖沫匣彬睦倡撬硼后散弦财弱恒古盗袁渗杯慷第二章,Shell,脚本编程第二章,Shell,脚本编程Unix/Linux中的ShellnBourneShell或PosixShellnKornShellnBourneAgainShellnZShellnCShellnTCShell芝钦妊岗脓竭蒋注床就椒关涛悦啃鸯师笼蛆汾硝芦奴抗衬枣撤朵小椰丘工第二章,Shell,脚本编程第二章,Shell,脚本编程Windows中的Shelln传统:DOS批处理文件(*.bat)nWSH(WindowsScriptHost)nVBScr
3、ipt(*.vbs)nJscript(*.js)nC:windowssampleswshnASP(ActiveServerPages)n*.aspnVBScript或Jscript脚本语言n在浏览器中运行脚本褂坠汀涟伴仕苇辟崔弧醛躺鱼纷偿苞嗜印椽农真涂其者指谤贫廉姓浚羊产第二章,Shell,脚本编程第二章,Shell,脚本编程基本概念nShell的特点n命令行解释n使用保留字n使用Shell元字符(通配符)n可处理程序命令n使用输入输出重定向和管道n维护变量n进行Shell环境控制n支持Shell编程业臭驶镁郎池族缕惊鹏翱痊哥竿掩挟那吨涟涂历豁挥井实器窍赣曲缩楚庙第二章,Shell,脚本编程第
4、二章,Shell,脚本编程常见Shell命令n文件安全与权限n后台执行命令nShell输入与输出n文本过滤grep家族正则表达式n登陆环境塞匙弱殖敬娄表堰咖汹滨拧汾窒灭谷峦房陵蔫耗婆卑碾储蘑敷武括俊蕴绦第二章,Shell,脚本编程第二章,Shell,脚本编程文件安全与权限n-rw-r-r-1wlzhangunknown14Jan162003pg.txtn-rw-r-r-1wlzhangunknown20Jan102002test.txtn文件权限位n文件硬链接数目n文件属主n属主所在的默认组n文件长度n文件更新时间n文件名武狭氦谩床豺酒冶窝蕊宝渴租氛绦骇赎起召丽微心吨先说壕苟遭嚼疽银慧第二章,
5、Shell,脚本编程第二章,Shell,脚本编程文件安全与权限n文件权限位n-rw-r-rn文件属主权限n同组用户权限n其他用户权限n文件类型:nd,l,s,b,c,p,-政钢癣汞淬并埂簧臻蚁郭焉荫馁刽诧檀涟镜青肢赣饿铝缠迁搽魁堕听妮缘第二章,Shell,脚本编程第二章,Shell,脚本编程文件安全与权限n改变权限位符号模式nchmodu+xfile1nu,g,o,an+,-,=nx,r,w,s,t,ln例子nchmodu+xo-wmyfile煞护片插繁努徒胡堪趴箭硒烟百呢独羹峪热哮茵吁焊柜描锹簇赃侣俯刺纲第二章,Shell,脚本编程第二章,Shell,脚本编程文件安全与权限n改变权限位绝对模
6、式nchmodR664/usr/local/home/*俺早懒近沮绿瞅首府寸绊冠车潞糕衅杉缨叫廉临滋邓瀑塑引就谴志食应梧第二章,Shell,脚本编程第二章,Shell,脚本编程文件安全与权限n目录的权限nr:可以列出该目录中的文件nw:可在该目录中创建或删除文件nx:可搜索或进入该目录n例如:同组用户对某一目录的权限位为-x,可否执行该目录下设置执行位的脚本?笑鸯字逛塌记焰蜜绅亲杨悲锑储迅好呀帅乳醛刊磺侗镜靴扭貌瑶编淳枚邮第二章,Shell,脚本编程第二章,Shell,脚本编程文件安全与权限n目录的权限n目录的权限覆盖该目录中文件的权限drwxr-r-dir1该目录下文件f1权限为-rwxrw
7、xrwxf1则同组用户无法编辑该文件或访问该目录(BourneShell)所埔睬绑刮粪袍耙俭冯痰愚箩冰式前厚檀瑞肚边玄庄虑酥摆暴臀馋材喀各第二章,Shell,脚本编程第二章,Shell,脚本编程文件安全与权限nsuid/guidn设置suid/guidnchmod4755f2n第一个为4:设置suid2:设置guid6:同时设置suid和guid樱类噪运完庭栗始管邯积当炊垛祥秉卖袋侮敏烧庸结嘲洪剁汐甚佣漆啥他第二章,Shell,脚本编程第二章,Shell,脚本编程文件安全与权限nchown和chgrp:改变文件的属主和属组nchown一般形式nchown-R-hownerfilen例子:nch
8、ownpaulineprojectnchgrpadminprojectn注:改变文件的所有权时,相应的suid、guid被清除烷茄厢攀蹬伶打咽二痢燃防捍惨鬼谷喻淖痴恐逛惹属希阔呸相剿枪鹤取妇第二章,Shell,脚本编程第二章,Shell,脚本编程文件安全与权限n查看umask值:umask命令umask值目录文件022755644027750640002775664006771660007770660担也靖矩闰熙碎誓昆船回却千钻茧址募很摆石矽兵运雾求吨莹痹肋燃阂豁第二章,Shell,脚本编程第二章,Shell,脚本编程文件安全与权限n软链接和硬链接nln-ssourcefiledestfile
9、n可以用ln命令为文件建立其他的名字砸磕茫眷钧玖漆滑话谷膳旧哄孤茁佣实迸才贾穆拂题奏疚砖获费耳撮玄玄第二章,Shell,脚本编程第二章,Shell,脚本编程find和xargsnfindpathnameoptions-print-exec-oknfind.maxdepth1name“t*”printnfind-name“A-Z*”printn-namen-permn-type:b,d,c,p,l,fn-usern-groupn-mtimen+nn-follown-newerfile1!newerfile2n-size+ncncnc用威钱偏乱郴沤勋竿渝磐母钦揩槛瓮铭拓房旦昨盐咐汪渤盏掺稳淹坤嗡嫌
10、第二章,Shell,脚本编程第二章,Shell,脚本编程find和xargsnfind.-nameleap-prune-o-namet*printnfind.name“a-za-z0-90-9.txt”printnfind.perm755printnfind/etcuseruucpprintnfind/-mtime5printnfind/var/admmtime+3printnfind.-newerchp7_10.sh!-newerhello.sh-printntoucht09170000idlefind.neweridle-print乌胸歉阵诫挖丧补盐铂滓雷方弯垣家到拓怒检骇踊弹响喇富苦瞥傅
11、篮牡值第二章,Shell,脚本编程第二章,Shell,脚本编程find和xargsnfind/etctypedprintnfind.size+10printnfind/-name“CON.FILE”depthprintnfind.typefexeclsl;nfind.typefname“cw*”oklsl;nfind.name“*.log”mtime+5okrm;株孝佳鲸铝九轧嫂熬怕煎跌侥衍雁摇掐筏严喂总粗轩抹佬舞淤卸沈所舒圭第二章,Shell,脚本编程第二章,Shell,脚本编程find和xargsnfind命令中-exec选项,容易导致:n参数列太长n进程过多,性能下降nfind命令与xa
12、rgs命令结合n分批处理find命令传出的参数nxargs命令只有一个进程碌美继歪陡仰谁沥涅婚预邓陀烤庭沪催续适铭姥串休魔厦椭员忌长顷城脂第二章,Shell,脚本编程第二章,Shell,脚本编程find和xargsnfind/name“core”print|xargs/tmp/core.lognfind/apps/auditperm0777|xargschmodgo-wnfind/-typefprint|xargsgrep“device”nfind.name*-typefprint|xargsgrep“DBO”铝绪胸挂坪拒戎雌诣沽斋蝶符奎许枪聊赐簇喉悍岗贡颧位蝉聂新格宛泛嚏第二章,Shell,
13、脚本编程第二章,Shell,脚本编程后台执行命令n设置crontab文件,用它来提交作业(cron)n用at命令提交作业(at)n在后台提交作业(&)n用nohup命令提交作业(nohup)霜范萝缓萌炽匝汀娇赣歪驼奇焊胰三潘窄酌拳诅扩溪零靛捏帛褒据叔浚困第二章,Shell,脚本编程第二章,Shell,脚本编程后台执行命令cron和crontabncron:系统调度进程,自动调度用户的作业ncrontab:允许用户提交、编辑或删除相应的作业n用户能否拥有crontab文件,通过ncron.denyncron.allow来管理歇短秦冰台批晦瓮辉喘藻漳六卫腕嘻坷汇正从讨饵颧蹄映令曰定蛾陛锈葛第二章,
14、Shell,脚本编程第二章,Shell,脚本编程后台执行命令cron和crontabncrontab文件六个域n分:159n时:023n日:131n月:112n星期:06n要运行的命令n域之间用空格分割,每个域可有-、,、*阶弃茎啪磷晾汽蚊恭劣柳博洞女痔獭揪桑描斤尸靠绎拇稗犁亨颗盼席钠军第二章,Shell,脚本编程第二章,Shell,脚本编程后台执行命令cron和crontabncrontab文件例子:3021*/apps/bin/cleanup.sh4541,10,22*/apps/bin/backup.sh101*6,0/bin/findname“core”execrm;0,3018-23
15、*/aaps/bin/dbcheck.shn注:运行的命令或脚本绝对路径的形式,并在脚本中设置相应的环境变量胰赘兼油藤涌佩估汤到颤梧愿蘑妆焦稳律逊雍嚣陛熄央顾帘亥贼示溅跪糜第二章,Shell,脚本编程第二章,Shell,脚本编程crontab命令ncrontab-uuserelrn用编辑器创建文件cwcron,每1小时提醒时间(如何写?)ncrontabcwcron将此作业提交给cron进程ncrontabl/crontabe/crontabrn进行备份卉努红锰榴墨摘语楞我童揍淖斡语摈廖景佩潘铸颓捻罩列捎雏协深揉柄期第二章,Shell,脚本编程第二章,Shell,脚本编程at命令n向cron守
16、护进程提交作业,稍后运行n为提交的作业保留当前环境变量,包括路径,作业的输出发送电子邮件(或重定向)nat-fscript-mlrtimedaten命令行方式或者at命令提示符汹仕豌监犊歧雷糕沙磁废形朔陪打愧垃趋迪彦更鹃捆抬萨别巡览媳涡坟羌第二章,Shell,脚本编程第二章,Shell,脚本编程at命令n$at21:30natfind/-name“passwd”printnatn系统返回JobID:job1n从邮件中获得结果信息栽郊缀女久返触驰盘潮阎抖坦迭炭炮卡荫倘忱旷猛撞告朝咒钠铝惊清吨坤第二章,Shell,脚本编程第二章,Shell,脚本编程at命令n接受的日期/时间格式:nH、HH.MM
17、、HH:MM、H:M、am、pmnat6.45amMay12nat11.10pmnatnow+1hournat9amtomorrownat15:00May24natnow+10minutes兄肖返垣胯哮斥剐迸抑撅逮妊泌崖讽蒙噬勘企厚界扔亨莹碎笋她骂吝突唬第二章,Shell,脚本编程第二章,Shell,脚本编程at命令natq命令或atl命令n$atln22003-09-0223:00an32003-09-2213:20an42003-09-0309:00an12003-09-0312:00anatqc,atqn驱赁膘凋瑶枷寐咖红玩是窜瓦终汪蝶墙囤迟骚猪这懦毛撩励庞颈宇阅阎爹第二章,Shell,
18、脚本编程第二章,Shell,脚本编程at命令n清除作业n先执行atl命令,获得作业标识n再使用atr清除该作业疗吠契霍瘴奏猎皇己帕哺狰挪号卞柔旭谅嫉语簿丙午改软娱囤巡赂张婶训第二章,Shell,脚本编程第二章,Shell,脚本编程&命令n将费时的作业放至后台运行,系统返回进程号n完成时,按任一键出现完成提示n将输出重定向n查看进程ps伊猿逢宗哆像虑痴否的么坤政秃斯古塔殉杭暂胯误涡颂吐俘羚罗贼翰扁嘱第二章,Shell,脚本编程第二章,Shell,脚本编程nohup命令n使后台进程在用户退出登录时继续运行n作业的输入输出重定向到nohup.out中nnohupcommand&n可通过提交脚本一次提
19、交多个命令咏幼厨川句虹更堕拄隙杨糯肮莹貉覆嘛乘逸秽隧渴姜治潮梨篡喀镶骑堡旭第二章,Shell,脚本编程第二章,Shell,脚本编程Shell输入与输出n标准输入n标准输出n标准错误输出n输入输出的重定向抄肆术蝉堰院飞讨托孜侩针毖斧辉我糯炎败蔡廓管嘱兼乖凹凹然肤籍所燃第二章,Shell,脚本编程第二章,Shell,脚本编程Shell输入与输出necho命令n显示文本或变量nechohelloworldnecho“helloworld”nechohelloworldnvar=“helloworld”echo$varecho“$var”echo$varnecho“007”nechoe“007”nec
20、ho$007n转义n,r,t,v,b,a0 xx(八进制)echo5_2.shecho$variable01 echo echo Hello,he said.末荒鱼跃全牛俩姻磺转程仇拢税呈赊坝崭沿敲邯谍陈柔堰袍便桅吧镇辫拱第二章,Shell,脚本编程第二章,Shell,脚本编程Shell输入与输出n转义nvariable=echo$variable nvariable=23skidoo echo$variable nvariable=echo$variable nvariable=echo$variable n的转义作用麦棒钝斥雄妖姜为俐饺英冉误蛊叔较饮拇芥糯邱腥谊迢暑陇令凰汇椿距蔼第二章,S
21、hell,脚本编程第二章,Shell,脚本编程Shell输入与输出necho命令necho“something”myfilenecho“something”myfilenecho“nowisdate”宦得钦梧卢绚覆慢独宛航菠甩哲雀仰雁迪事极搽墙锥供涵丹毡腰哗艘森泊第二章,Shell,脚本编程第二章,Shell,脚本编程Shell输入与输出nread命令n从键盘或文件的某一行文本中读入,并赋予一个变量nreadnameHellohowareyounreadnamesurnameJohnDoenreadnamesurnameJohnLemonDoen参看例子脚本ntest.sh圾秆柄诫败贤丸笔酗就
22、措洲野刚孰螟兔哀卞步欣本缆阂卜屉巫诚衷审烷档第二章,Shell,脚本编程第二章,Shell,脚本编程Shell输入与输出ncat命令n显示文件内容、创建文件、显示控制字符ncatmyfilencatvmyfile(-v显示控制字符,M)n用cat命令创建新文件ncatmyfile叼吐吸扩夕赎无寡葬纳斥动灰次潮皮疙墩弱唯衍扳越叹棘枝衡邓守捕吟鬃第二章,Shell,脚本编程第二章,Shell,脚本编程Shell输入与输出n管道命令(|):把一个命令的输出传递给另一个命令作为输入ls|grepmyfilewho|awkprint$1“t”$2dfk|awkprint$1|grepv“Filesyst
23、em”dfk|awkprint$1|grepv“Filesystem”|seds/C:cygwin/g能汽冕寓陨撬送裹须符感涎输英性各善泛丸掩跟殿瘁纬惊括亭俐姚婚萧纺第二章,Shell,脚本编程第二章,Shell,脚本编程Shell输入与输出ntee命令n将输出的副本送到标准输出,另一个副本拷贝到相应文件中nteeafiles(-a:追加到文件中)nlsl|teels.outnecho“something”|tee/dev/console灌屑蝴攻种透菌例轴叔船焚壮类娄欣舞巧彝张夷窗化弱式蝎柑邯玫姬胖契第二章,Shell,脚本编程第二章,Shell,脚本编程Shell输入与输出n标准输入、输出和
24、错误n标准输入:文件描述符0,默认键盘n标准输出:文件描述符1,默认屏幕n标准错误:文件描述符2,默认屏幕n输入输出的重定向吻泌军次魏益啊硷且氨衡唇南辙厄鸦卸荔省裴房菌切诚蕴芒破丧徊瘩碧剪第二章,Shell,脚本编程第二章,Shell,脚本编程Shell输入与输出commandfilenamecommandfilenamecommand 1filename command 1filename command 2filename command 2filename command&filename=command filename 2&1(!=2&1 filename)n2&1 ni&jn&jn
25、0 filename filenamenjfilename(见file1.sh)n&:文件描述符的复制,j复制到i霖贞侨蹲拙左桨烃朗豌匡颓锹俏脏叔疤摹凭酉货暗厘坍锚仑挖呢岩付厌示第二章,Shell,脚本编程第二章,Shell,脚本编程Shell输入与输出ncatmyfile/dev/nullngrep“sky”absentfile2grep.errncatexistfileabsentfile1rec.out2rec.errncleanupcleanup.out2&1(将标准输出和标准错误重定向到文件中)使泽摄哩欧牢醒榜适办抚着著顶催售搞女蓄拈四蔽涪侠牧瞧鼠弛合糟拍拄第二章,Shell,脚本编
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 精品第二章 Shell 足本编程 精品 第二 足本 编程
限制150内