预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共80页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

shell脚本能提高用户操作和管理员进行系统管理的效率,一般步骤 编辑器编写脚本程序 shell做解释程序,非交互地执行脚本,两种执行方式: 用sh命令执行脚本文件 给脚本文件添加执行权限,用./命令执行HELLOWORLD!一、VI编辑器为什么选择VI1、VI的三种工作模式2、VI的启动3、VI的退出4、怎么编辑5、命令模式下的操作:删除与修改命令模式下的操作:文本复制、粘贴6、行命令模式下的操作:字符串的查找、替换7、设置vi案例练习二、SHELL变量与语法1、shell的基本元素 (1)#!/bin/bash必须的,指出shell的类型 (2)#注释 (3)变量 (4)控制2、一般步骤: (1)编辑文件 (2)保存文件 (3)将文件赋予可执行的权限 (4)运行及排错注意: 一般以.sh为文件后缀。没有也能执行。 常见的两种执行方式 ./文件名 在当前目录下写明路径执行,要求文件必须有执行权限,如 chmod755run.sh ./run.sh sh文件名 shrun.sh 文件开头指定一个或多个解释脚本程序的shell,如 #!/bin/bash 如果指定,注意/bin不要漏了“/”,否则用./方式执行会找不到路径。 不指定的话一般默认以/bin/sh执行shell脚本1、注释符# 除了#!/bin/bash里的#特殊 2、美元符$ 变量符。与反斜杠转义符相反,使其后的普通字符作为变量名,如$a表示变量a的值。变量字符长度超过1个时,用{}括起来 3、单引号 被引起的字符全部做普通字符,即全部原样 echo‘my$SHELL’ 练习一下:区别下面几句三、变量本地变量和环境变量的对比HOME:代表使用者的家目录。cd~去到使用者的家目录或者利用cd就可以直接回到使用者家目录了。 PS1:shell的主提示符 SHELL:目前这个环境使用的SHELL是哪个程序?如果是bash的话,预设是/bin/bash PWD:用户当前工作目录的路径。它指出用户目前在Linux文件系统中处在什么位置。它是由Linux自动设置的 HISTSIZE:这个与“历史命令”有关,曾经下达过的指令可以被系统记录下来,而记录的“数目”则是由这个值来设定的。 ENV:这个使用者所使用的个性化环境设置文件的读取文件。 MAIL:当我们使用mail这个指令在收信时,系统会去读取的邮件信箱文件(mailbox)。 PATH:就是执行文件搜寻的路径,目录与目录中间以冒号(:)分隔,由于文件的搜寻是依序由PATH的变量内的目录来查询,所以,目录的顺序也是重要的喔。 LANG:语系文件,很多数据都会用到他,当出现编码错误的时候往往需要设置它,中文编码是zh_CN.UTF8PATH示例设置用户自己的环境变量使用shell预定义变量的脚本举例 3、控制流程1)分支结构2)循环结构五命令结果重定向屏蔽命令任何输出的:>/dev/null2>&1*有趣的IORedirection六脚本实例 #!/bin/sh- fname=/bin/date if(test–f“$fname”)then echo“exist” fi 说明: 在shell程序中经常需要判断所处理的文件是否存在。本程序采用if语句的简单格式测试date文件,如果存在,则显示相关信息,否则退出if语句。 #!/bin/sh- hour=`date|cut–c10-11` iftest“$hour”–ge0–a“$hour”–le11;then echo“Goodmorning!” eliftest“$hour”–ge12–a“$hour”–le17;then echo“Goodafternoon!” else echo“Goodevening!” fi 说明:第一个有效语句是将命令执行的结果赋给hour变量,所以用反向单引号。用cut命令从date命令的输出中切割出“小时”信息;这里-c10-11选项表示只切割10到11列。这个程序使用了if连用格式,也可以使用if完整格式的嵌套形式。#!/bin/sh-iftest$#-ne1thenecho"Incorrectnumberofarguments" echo"Usage:ifuserusername"else user=$1 ifwho|grep–q$user;then echo$1"userisloggedon." exit0 else echo$1"userisnotloggedon." exit1 fifi④简单的菜单功能#!/bin/sh-forfilein*.txtdo leftname=`basename$file.txt` mv$file$leftname.docdone 说明: (1)在Linux系统中不