《Shell脚本编程》PPT课件-(2).ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《《Shell脚本编程》PPT课件-(2).ppt》由会员分享,可在线阅读,更多相关《《Shell脚本编程》PPT课件-(2).ppt(130页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、本章参考教材nUnix技术大全系统管理员卷机械工业出版社nLinux与Unix Shell编程指南机械工业出版社nAdvanced Bash Scripting Guide, by Mendel Cooper, 电子书籍n其他网上资源基本概念nUnix/Linux系统中供用户使用的界面,为用户提供了输入命令和参数并可得到命令执行结果的环境。Unix/Linux中的ShellnBourne Shell或Posix ShellnKorn ShellnBourne Again ShellnZ ShellnC ShellnTCShellWindows中的Shelln传统:DOS批处理文件(*.bat)
2、nWSH(Windows Script Host)nVBScript(*.vbs)nJscript(*.js)nC:windowssampleswshnASP(Active Server Pages)n*.aspnVBScript或Jscript脚本语言n在浏览器中运行脚本基本概念nShell的特点n命令行解释n使用保留字n使用Shell元字符(通配符)n可处理程序命令n使用输入输出重定向和管道n维护变量n进行Shell环境控制n支持Shell编程常见Shell命令n文件安全与权限n后台执行命令nShell输入与输出n文本过滤grep家族正则表达式n登陆环境文件安全与权限n-rw-r-r- 1
3、 wlzhang unknown 14 Jan 16 2003 pg.txtn-rw-r-r- 1 wlzhang unknown 20 Jan 10 2002 test.txtn文件权限位n文件硬链接数目n文件属主n属主所在的默认组n文件长度n文件更新时间n文件名文件安全与权限n文件权限位n-rw-r-rn文件属主权限n同组用户权限n其他用户权限n文件类型:nd, l, s, b, c, p, -文件安全与权限n改变权限位符号模式nchmod u+x file1nu, g, o, an+, -, =nx, r, w, s, t, ln例子nchmod u+x o-w myfile文件安全与权
4、限n改变权限位绝对模式nchmod R 664 /usr/local/home/*文件安全与权限n目录的权限nr: 可以列出该目录中的文件nw: 可在该目录中创建或删除文件nx: 可搜索或进入该目录n例如:同组用户对某一目录的权限位为-x, 可否执行该目录下设置执行位的脚本?文件安全与权限n目录的权限n目录的权限覆盖该目录中文件的权限drwx r- r- dir1该目录下文件f1权限为-rwxrwxrwx f1则同组用户无法编辑该文件或访问该目录(Bourne Shell)文件安全与权限nsuid/guidn设置suid/guidnchmod 4755 f2n第一个为4:设置suid 2: 设
5、置guid 6: 同时设置suid和guid文件安全与权限nchown和chgrp:改变文件的属主和属组nchown一般形式nchown -R -h owner filen例子:nchown pauline projectnchgrp admin projectn注:改变文件的所有权时,相应的suid、guid被清除文件安全与权限n查看umask值:umask命令umask值目录文件022755644027750640002775664006771660007770660文件安全与权限n软链接和硬链接nln -s sourcefile destfilen可以用ln命令为文件建立其他的名字fin
6、d和xargsnfind pathname options -print -exec -oknfind . maxdepth 1 name “t*” printnfind -name “A-Z*” printn-namen-permn-type: b, d, c, p, l, fn-usern-groupn-mtime n +nn-follown-newer file1 ! newer file2n-size +nc nc ncfind和xargsnfind . -name leap -prune -o -name t* printnfind . name “a-za-z0-90-9.txt”
7、 printnfind . perm 755 printnfind /etc user uucp printnfind / -mtime 5 printnfind /var/adm mtime +3 printnfind . -newer chp7_10.sh ! -newer hello.sh -printntouch t 09170000 idlefind . newer idle -printfind和xargsnfind /etc type d printnfind . size +10 printnfind / -name “CON.FILE” depth printnfind .
8、type f exec ls l ;nfind . type f name “cw*” ok ls l ;nfind . name “*.log” mtime +5 ok rm ;find和xargsnfind命令中-exec选项,容易导致:n参数列太长n进程过多,性能下降nfind命令与xargs命令结合n分批处理find命令传出的参数nxargs命令只有一个进程find和xargsnfind / name “core” print | xargs /tmp/core.lognfind /apps/audit perm 0777 | xargs chmod go-wnfind / -type
9、 f print | xargs grep “device”nfind . name * -type f print | xargs grep “DBO”后台执行命令n设置crontab文件,用它来提交作业(cron)n用at命令提交作业(at)n在后台提交作业(&)n用nohup命令提交作业(nohup)后台执行命令cron和crontabncron:系统调度进程,自动调度用户的作业ncrontab:允许用户提交、编辑或删除相应的作业n用户能否拥有crontab文件,通过ncron.denyncron.allow 来管理后台执行命令cron和crontabncrontab文件六个域n分:15
10、9n时:023n日:131n月:112n星期:06n要运行的命令n域之间用空格分割,每个域可有-、,、*后台执行命令cron和crontabncrontab文件例子:30 21 * * * /apps/bin/cleanup.sh45 4 1,10,22 * * /apps/bin/backup.sh10 1 * * 6,0 /bin/find name “core” exec rm ;0,30 18-23 * * * /aaps/bin/dbcheck.shn注:运行的命令或脚本绝对路径的形式,并在脚本中设置相应的环境变量crontab命令ncrontab -u user e l rn用编辑
11、器创建文件cwcron,每1小时提醒时间(如何写?)ncrontab cwcron将此作业提交给cron进程ncrontab l / crontab e / crontab rn进行备份at命令n向cron守护进程提交作业,稍后运行n为提交的作业保留当前环境变量,包括路径,作业的输出发送电子邮件(或重定向)nat -f script -m l r time daten命令行方式或者at命令提示符at命令n$ at 21:30nat find / -name “passwd” printnat n系统返回Job ID:job 1n从邮件中获得结果信息at命令n接受的日期/时间格式:nH、HH.M
12、M、HH:MM、H:M、am、pmnat 6.45am May 12nat 11.10pmnat now + 1 hournat 9am tomorrownat 15:00 May 24nat now + 10 minutesat命令natq命令或at l命令n$ at l n22003-09-02 23:00 an32003-09-22 13:20 an42003-09-03 09:00 an12003-09-03 12:00 anatq c, atq nat命令n清除作业n先执行at l命令,获得作业标识n再使用at r清除该作业&命令n将费时的作业放至后台运行,系统返回进程号n完成时,按
13、任一键出现完成提示n将输出重定向n查看进程ps nohup命令n使后台进程在用户退出登录时继续运行n作业的输入输出重定向到nohup.out中nnohup command &n可通过提交脚本一次提交多个命令Shell输入与输出n标准输入n标准输出n标准错误输出n输入输出的重定向Shell输入与输出necho命令n显示文本或变量necho hello worldnecho “hello world”necho hello worldnvar=“hello world”echo $varecho “$var”echo $varnecho “007”necho e “007”necho $007n转
14、义n, r, t, v, b, a0 xx(八进制)echo5_2.shecho $variable01 echo echo Hello, he said. Shell输入与输出n转义nvariable= echo $variable nvariable=23skidoo echo $variable nvariable=echo $variable nvariable=echo $variable n的转义作用Shell输入与输出necho命令necho “something ” myfilenecho “something ” myfilenecho “ now is date”Shell
15、输入与输出nread命令n从键盘或文件的某一行文本中读入,并赋予一个变量nread nameHello how are younread name surnameJohn Doenread name surnameJohn Lemon Doen参看例子脚本ntest.shShell输入与输出ncat命令n显示文件内容、创建文件、显示控制字符ncat myfilencat v myfile (-v显示控制字符,M)n用cat命令创建新文件ncat myfilen管道命令(|):把一个命令的输出传递给另一个命令作为输入 ls | grep myfilewho | awk print $1 “t”
16、$2df k | awk print $1 | grep v “Filesystem”df k | awk print $1 | grep v “Filesystem” | sed s/C:cygwin/gShell输入与输出ntee命令n将输出的副本送到标准输出,另一个副本拷贝到相应文件中ntee a files(-a:追加到文件中)nls l | tee ls.outnecho “something” | tee /dev/consoleShell输入与输出n标准输入、输出和错误n标准输入:文件描述符0,默认键盘n标准输出:文件描述符1,默认屏幕n标准错误:文件描述符2,默认屏幕n输入输出
17、的重定向Shell输入与输出command filenamecommand filenamecommand 1filename command 1filename command 2filename command 2filename command &filename =command filename 2&1( != 2&1 filename)n2&1 ni &jn&jn0 filename filenamenjfilename (见file1.sh)n&:文件描述符的复制,j复制到iShell输入与输出ncat myfile /dev/nullngrep “sky” absentfile
18、 2grep.errncat existfile absentfile 1rec.out 2rec.errncleanup cleanup.out 2&1(将标准输出和标准错误重定向到文件中)文本过滤正则表达式n元字符:正则表达式中描述模式匹配操作的特殊字符n只匹配行首字符n$只匹配行尾字符n*任意多个字符n匹配其中单个或字符的范围n对特殊元字符进行转义n.单个字符文本过滤正则表达式npatternn匹配模式出现n次npatternn, 含义同上,但次数最少为nnpatternn,m含义同上,但出现次数在n与m之间n?模式出现0次或1次n*模式出现任意多次n+模式出现1次或更多次文本过滤正则表
19、达式n.x.x.xndnsh$n.$n$n.n.2n*.pasnt.*.sh$nt*.sh$n0123456789n0-9na-zA-Z0-9-n0-9nabcn1n中都是单个字符匹配文本过滤正则表达式n重复表示符号前面的模式重复出现的次数n*、+、?n23*4n对于1548 Kerry 534 正则表达式1.*4 匹配整行,而不是154 文本过滤正则表达式n(a-z)(a-z)21 :匹配anna,qwwq等nA2B:匹配AABnA4,B:nA2,4B:n:匹配单词结束B:不在单词开始或结束文本过滤正则表达式n正则表达式的连接n正则表达式的“或”操作(|)n执行优先次序n重复*,+,?n连接
20、n或:|n可用括号改变顺序文本过滤常用正则表达式nlnthengr(a|e)y n(To:|From:) (Seaman|Ramsay )n0-92-0-92-0-94na-za-z*n.0-90-9文本过滤grep命令ngrep option regexp filesngrep “hello” *ngrep c “hello” hello.sh (显示出现次数)ngrep l “hello” *(显示匹配文件名)ngrep n “hello” hello.sh (显示匹配的行及行号)ngrep v “hello” hello.sh (显示不匹配的行)ngrep i “hello” hello
21、.sh(大小写不敏感)ngrep s “hello” hello.sh (屏蔽出错信息)文本过滤grep命令ngrep、正则表达式,与系统命令ngrep testngrep l2, testnls l | grep dnls l | grep d.x.x.xnps ax | grep “named”nps ax | grep “named” | grep v “grep”文本过滤egrep命令negrep:expression or extended grepn-f 选项使用文件作为匹配参数ncat hello.parahelloworldnegrep f hello.para hello.s
22、h文本过滤egrep命令nwho | egrep (user1|user2|user3)nwho | egrep v (user1|user2)negrep (yellow|red) flower(s)? *文本过滤awk命令nawk -F field-separator commands input-file(s)n在文本文件或字符串中按一定规则浏览和抽取信息n命令、程序、语言n用awk语言编写脚本nawk f awk-script-file input-file(s)文本过滤awk命令nawk BEGIN BEGIN语句 处理数据 END 完成处理 filename文本过滤awk命令n例子
23、:grade.txtM.Tansley 05/99 48311Green 8 40 44J.Lulu 06/99 48317green 9 24 26P.Bunny 02/99 48 Yellow 12 35 28J.Troll 07/99 4842 Brown-3 12 26 26L.Tansley 05/99 4712 Brown-2 12 30 28 文本过滤awk命令nawk print $0 grade.txtnawk print $1,$4 grade.txtnawk BEGIN print “Namen-”print $1 END print “end-of-report” gr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Shell脚本编程 Shell 脚本 编程 PPT 课件
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内