SHELL脚本简单应用培训.ppt
《SHELL脚本简单应用培训.ppt》由会员分享,可在线阅读,更多相关《SHELL脚本简单应用培训.ppt(63页珍藏版)》请在三一办公上搜索。
1、SHELL脚本简单应用培训 西藏BI项目组 尤建,内容提纲,一、SHELL简介,二、SHELL基础知识,三、基础SHELL编程,概念简介,什么是shell程序呢?简单的说shell程序就是一个包含若干行shell或者linux、unix等命令的文件.目前流行的Shell有ash、bash、ksh、csh、zsh等。你可以用命令来查看你自己的Shell类型:#echo$SHELL,Shell应用,在Linux、Unix系统中,虽然有各种各样的图形化接口工具,但是shell仍然是一个非常灵活的工具。Shell不仅仅是命令的收集,而且是一门非常棒的编程语言。您可以通过使用shell使大量的任务自动化
2、,shell特别擅长系统管理任务,尤其适合那些易用性、可维护性和便携性比效率更重要的任务。Linux、Unix中有好多中不同的shell,但是通常我们使用bash(bourne again shell)进行shell编程,因为bash是免费的并且很容易使用。所以在本文中笔者所提供的脚本都是使用bash(但是在大多数情况下,这些脚本同样可以在 bash的大姐,bourne shell 中运行)。我们今天主要和大家一起讨论B-Shell。,Shell基础知识,如同其他语言一样,通过我们使用任意一种文字编辑器比如nedit、kedit、emacs、vi、UE等来编写我们的shell程序。程序以下面的
3、行开始(必须方在文件的第一行):#!/bin/sh(很多Unix、Lunix默认shell类型都是B-Shell)符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。当编辑好脚本时,如果要执行该脚本,还必须使其可执行。要使脚本可执行:chmod+x filename您可以通过输入:./filename 来执行您的脚本。在进行shell编程时,以#开头的句子表示注释,直到这一行的结束。,内容提纲,一、SHELL简介,二、SHELL基础知识,三、基础SHELL编程,Shell基础知识-文件安全与权限,1、文件属性:当你创建一个文件的时候,系统保存了
4、有关该文件的全部信息,包括:文件的位置。文件类型。文件长度。哪位用户拥有该文件,哪些用户可以访问该文件。i节点。文件的修改时间。文件的权限位。,Shell基础知识-文件安全与权限,2、文件类型:文件类型有七种,它可以从ls-l命令所列出的结果的第一位看出,这七种类型是:d 目录。l 符号链接(指向另一个文件)。s 套接字文件。b 块设备文件。c 字符设备文件。p 命名管道文件。-普通文件,或者更准确地说,不属于以上几种类型的文件。,Shell基础知识-文件安全与权限,3、文件权限:文件看到的文件大部分是是普通文件或符号链接文件。文件属主权限组(g)用户权限(u)其他用户权限(o)改变权限命令:
5、chmod mode file EG:(1)chmod chmod u+x(r/w)myfile(2)chmod 777 myfile,Shell基础知识-文件安全与权限,4、文件权限:文件看到的文件大部分是是普通文件或符号链接文件。文件属主权限组(g)用户权限(u)其他用户权限(o)改变权限命令:chmod mode file EG:(1)chmod chmod u+x(r/w)myfile(2)chmod 777 myfile,Shell基础知识-文件安全与权限,5、符号链接:一般命令格式:ln-s source_path target_path EG:(1)ln/tmp/var/tmp(
6、2)ln/home/user/public/.profile/public/.profile,Shell基础知识-文件安全与权限,6、改变文件宿主:chown命令的一般形式为:chown-R-h owner file chmod-cfhvR-help-version user:group fileEG:(1)chown public test.sh(2)chown dbauser:dba test.sh(3)chown R dbauser:dba/tmp/test,Shell基础知识-使用find和xargs,1、FIND命令:FIND命令的一般形式为:find pathname-option
7、s-print-exec-ok参数说明:pathname find命令所查找的目录路径。例如用.来表示当前目录,用/来表示系统根目录。-print find命令将匹配的文件输出到标准输出。-exec find命令对匹配的文件执行该参数所给出的s h e l l命令。相应命令的形式为 command;,注意 和;之间的空格。-ok 和-exec的作用相同,只不过以一种更为安全的模式来执行该参数所给出的shel l命令,在执行每一个命令之前,都会给出提示,让用户来确定是否执行。,Shell基础知识-使用find和xargs,find命令选项:f i n d命令有很多选项或表达式,每一个选项前面跟随
8、一个横杠-。参数说明:-name 按照文件名查找文件。-perm 按照文件权限来查找文件。-prune 使用这一选项可以使f i n d命令不在当前指定的目录中查找,如果同时使用了-depth选项,那么-p r u n e选项将被f i n d命令忽略。-user 按照文件属主来查找文件。-group 按照文件所属的组来查找文件。-mtime-n+n 按照文件的更改时间来查找文件,-n表示文件更改时间距现在n天以内,+n表示文件更改时间距现在n天以前。F i n d命令还有-a t i m e和-c t i m e选项,但它们都和-m t i m e选项相似。-nogroup 查找无有效所属组
9、的文件,即该文件所属的组在/e t c/g r o u p s中不存在。,Shell基础知识-使用find和xargs,-nouser 查找无有效属主的文件,即该文件的属主在/e t c/p a s s w d中不存在。-newer file1!file2 查找更改时间比文件f i l e 1新但比文件f i l e 2旧的文件。-type 查找某一类型的文件,诸如:b-块设备文件。d-目录。c-字符设备文件。p-管道文件。l-符号链接文件。f-普通文件。-size nc 查找文件长度为n块的文件,带有c时表示文件长度以字节计。-depth 在查找文件时,首先查找当前目录中的文件,然后再在其子
10、目录中查找。-fstype 查找位于某一类型文件系统中的文件,这些文件系统类型通常可以在配置文件/e t c/f s t a b中找到,该配置文件中包含了本系统中有关文件系统的信息。-mount 在查找文件时不跨越文件系统m o u n t点。-follow 如果f i n d命令遇到符号链接文件,就跟踪至链接所指向的文件。-cpio 对匹配的文件使用c p i o命令,将这些文件备份到磁带设备中。,Shell基础知识-使用find和xargs,2、xargs:在使用f i n d命令的-e x e c选项处理匹配到的文件时,f i n d命令将所有匹配到的文件一起传递给e x e c执行。不
11、幸的是,有些系统对能够传递给e x e c的命令长度有限制,这样在f i n d命令运行几分钟之后,就会出现溢出错误。错误信息通常是“参数列太长”或“参数列溢出”。这就是x a rg s命令的用处所在,特别是与f i n d命令一起使用。EG:下面的例子在/a p p s/a u d i t目录下查找所有用户具有读、写和执行权限的文件,并收回相应的写权限:$find/apps/audit-perm-7-print|xargs chmod o-w在下面的例子中,我们用g r e p命令在所有的普通文件中搜索d e v i c e这个词:$find/-type f-print|xargs grep
12、-i device在下面的例子中,我们用g r e p命令在当前目录下的所有普通文件中搜索D B O这个词:$find.-name-type f-print|xargs grep DBO 注意,在上面的例子中,用来取消f i n d命令中的*在s h e l l中的特殊含义。,Shell基础知识-后台执行命令,名词解释:cron 系统调度进程。可以使用它在每天的非高峰负荷时间段运行作业,或在一周或一月中的不同时段运行。At at命令。使用它在一个特定的时间运行一些特殊的作业,或在晚一些的非负荷高峰时间段或高峰负荷时间段运行。&使用它在后台运行一个占用时间不长的进程。Nohup 使用它在后台运行
13、一个命令,即使在用户退出时也不受影响。,Shell基础知识-后台执行命令,1、cron和crontab:cron是系统主要的调度进程,可以在无需人工干预的情况下运行作业。有一个叫做的命令允许用户提交、编辑或删除相应的作业。每一个用户都可以有一个crontab文件来保存调度信息。创建(恢复)crontab文件:crontab crontab的域:第1列分钟15 9第2列小时12 3(0表示子夜)第3列日13 1第4列月11 2第5列星期06(0表示星期天)第6列要运行的命令,Shell基础知识-后台执行命令,(2)下面是crontab的格式:分时日月星期要运行的命令 其中表示空格。EG:45 4
14、 1,10,22*/apps/bin/backup.sh 上面的例子表示每月1、1 0、2 2日的4:4 5运行/a p p s/b i n目录下的b a c k u p.s h。10 1*6,0/bin/find-name core-exec rm;上面的例子表示每周六、周日的1:1 0运行一个f i n d命令。(3)crontab命令的一般形式为:Crontab-u user-e-l r其中:-u 用户名。-e 编辑c r o n t a b文件。-l 列出c r o n t a b文件中的内容。-r 删除c r o n t a b文件。,Shell基础知识-后台执行命令,(2)下面是c
15、rontab的格式:分时日月星期要运行的命令 其中表示空格。EG:45 4 1,10,22*/apps/bin/backup.sh 上面的例子表示每月1、1 0、2 2日的4:4 5运行/a p p s/b i n目录下的b a c k u p.s h。10 1*6,0/bin/find-name core-exec rm;上面的例子表示每周六、周日的1:1 0运行一个f i n d命令。(3)crontab命令的一般形式为:Crontab-u user-e-l r其中:-u 用户名。-e 编辑c r o n t a b文件。-l 列出c r o n t a b文件中的内容。-r 删除c r
16、o n t a b文件。,Shell基础知识-后台执行命令,2、at命令:a t命令的基本形式为:at-f script-m-l-r time date其中,-f script 是所要提交的脚本或命令。-l 列出当前所有等待运行的作业。a t q命令具有相同的作用。-r 清除作业。为了清除某个作业,还要提供相应的作业标识(I D);有些U N I X变体只接受a t r m作为清除命令。-m 作业完成后给用户发邮件。time at命令的时间格式非常灵活;可以是H、H H.H H M M、H H:M M或H:M,其中H和M分别是小时和分钟。还可以使用a.m.或p.m.。date 日期格式可以是月
17、份数或日期数,而且a t命令还能够识别诸如 today、tomorrow这样的词。,Shell基础知识-后台执行命令,清除作业的命令格式为:atrm job no或 at-r job no 要清除某个作业,首先要执行at-l命令,以获取相应的作业标识,然后对该作业标识使用at-r 命令,清除该作业$at l 1 2009-11-01 23:00 a 2 2009-11-02 10:00 b 3 2009-11-03 00:00 c$atrm job 3$at l 1 2009-11-01 23:00 a 2 2009-11-02 10:00 b 有些系统使用at-r job no命令清除作业。
18、,Shell基础知识-后台执行命令,3、&命令:当在前台运行某个作业时,终端被该作业占据;而在后台运行作业时,它不会占据终端。可以使用&命令把作业放到后台执行。该命令的一般形式为:命令&EG:command out.file 2&1&在上面的例子中,所有的标准输出和错误输出都将被重定向到一个叫做out.file 的文件中。当你成功地提交进程以后,就会显示出一个进程号,可以用它来监控该进程,或杀死它。,Shell基础知识-后台执行命令,4、nohup命令:如果你正在运行一个进程,而且你觉得在退出帐户时该进程还不会结束,那么可以使用nohup命令。该命令可以在你退出帐户之后继续运行相应的进程。No
19、hup就是不挂起的意思(nohang up)。该命令的一般形式为:nohup command&EG:nohup command myout.file 2&1 在上面的例子中,输出被重定向到myout.file文件中。注意:如果没有指定日志文件的话,系统会默认为写在nohup.out文件中。,Shell基础知识-文件名置换,当你在使用命令行时,有很多时间都用来查找你所需要的文件。S h e l l提供了一套完整的字符串模式匹配规则,或者称之为元字符,这样你就可以按照所要求的模式来匹配文件。还可以使用字符类型来匹配文件名。下面就是这些特殊字符:*匹配文件名中的任何字符串,包括空字符串。?匹配文件名
20、中的任何单个字符。.匹配 中所包含的任何字符。!.匹配 中非感叹号!之后的字符。,Shell基础知识-文件名置换,(1)使用*:使用星号*可以匹配文件名中的任何字符串。EG:ls*.doc(2)使用?:使用可以匹配文件名中的任何单个字符。EG:ls?conf.*.log(3)使用.和!.:使用.可以用来匹配方括号 中的任何字符。在这一方法中,还可以使用一个横杠-来连接两个字母或数字,以此来表示一个范围。EG:A.列出了以i或o开头的文件名:ls io B.使用!0-9*来表示非数字开头的字符串,其中!是非的意思:ls log.!0-9*C.为了列出所有以大写字母开头的文件名,可以用:ls A-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- SHELL 脚本 简单 应用 培训
链接地址:https://www.31ppt.com/p-6519114.html