shell脚本教程详细讲解.ppt

上传人:b****1 文档编号:1390316 上传时间:2022-10-21 格式:PPT 页数:80 大小:644.50KB
下载 相关 举报
shell脚本教程详细讲解.ppt_第1页
第1页 / 共80页
shell脚本教程详细讲解.ppt_第2页
第2页 / 共80页
shell脚本教程详细讲解.ppt_第3页
第3页 / 共80页
shell脚本教程详细讲解.ppt_第4页
第4页 / 共80页
shell脚本教程详细讲解.ppt_第5页
第5页 / 共80页
点击查看更多>>
下载资源
资源描述

shell脚本教程详细讲解.ppt

《shell脚本教程详细讲解.ppt》由会员分享,可在线阅读,更多相关《shell脚本教程详细讲解.ppt(80页珍藏版)》请在冰豆网上搜索。

shell脚本教程详细讲解.ppt

,CollegeofInformationScienceandEngineering,ShandongAgriculturalUniversity,SHELL脚本编程,2,shell脚本能提高用户操作和管理员进行系统管理的效率,一般步骤编辑器编写脚本程序shell做解释程序,非交互地执行脚本,两种执行方式:

用sh命令执行脚本文件给脚本文件添加执行权限,用./命令执行,3,HELLOWORLD!

vihello.sh按i进入插入模式输入echo“helloworld!

”:

输入wq保存退出shhello.sh或者chmod755hello.sh./hello.sh,4,一、VI编辑器,VI的三种工作模式VI的启动VI的退出VI的文本编辑VI命令模式下的操作VI行命令模式下的操作,5,系统配置文件、shell脚本文件等都是文本文件,编辑它们都要使用文本编辑器。

在Linux系统中有多种文本编辑器,其中既有字符界面如的VI、EMACAS等,也有图形界面的如“附件”菜单下的“文本编辑器(gedit)”等,用户可以根据自己的喜好选择使用。

学习vi的方法:

vi的命令太多且难以记忆,而实际上真正经常使用的命令并不是太多,只要掌握几个关键的并加以适当练习很快就上手使用vi。

6,为什么选择VI,就使用的方便性而言,有比vi更好的编辑器,还要图形化的edit,为什么还要用vi?

历史久远,功能强大,在有些情况下系统中能够找到的编辑器只有vi;用户一旦熟悉后,使用非常方便;系统管理员使用正则表达式可以极大地提高工作效率,而学习vi也是掌握正则表达式的有效途径。

由于vi的版本不同,其命令格式、功能和用法会有一些差别。

Shell中执行vi命令,RedHat系统实际上是执行vim,它是传统vi的增强版本,7,1、VI的三种工作模式,命令模式启动VI默认进入命令模式。

此时界面不能编辑,只能接受命令(键入的命令看不到)文件的保存,退出,文本的删除、复制、搜索等操作输入模式编辑模式命令模式下用i(sert),a(ppend),o,s等均可进入该模式。

按esc返回命令模式行编辑模式实际上也是命令模式的一种,在命令模式下输入冒号进入一个命令行,可显示地输入命令(所以也有些书认为是两种工作模式)。

三种模式可自由切换,一般切换命令就是操作的英文单词的首字母,8,2、VI的启动,启动命令:

vimy.txt如果文件存在,则vi显示文件内容并等待用户的命令。

如果指定的文件不存在,则vi将告知用户这是未命名的文件,并进入一个空白的界面。

启动vi时都是默认处于命令模式。

用户必须使用命令切换到文本输入模式才能进行输入编辑,或者可执行删除、复制等编辑命令。

viRfile_name,以只读方式打开文件,9,3、VI的退出,冒号进命令行模式下:

:

q!

不存档强制退出。

:

w保存但不退出,w(rite)后可加所要存档的文档名。

:

wq存档后退出。

命令模式下按zz,功能与:

wq相同。

:

x与:

wq相同命令模式:

ZZ、ZQ保存/不保存退出,10,4、怎么编辑,必须从命令模式转入插入模式才能进行输入编辑,可用命令有:

新增(append)a:

从光标所在位置后面开始新增资料A:

从光标所在行最后面的地方开始新增资料。

插入(insert)i:

从光标所在位置前面开始插入资料I:

从光标所在行的第一个非空白字元前面开始插入资料。

开始(open)o:

在光标所在行下新增一列并进入输入模式。

O:

在光标所在行上方新增一列并进入输入模式。

冒号进入行命令模式,输入setnu可设置vi显示行号,11,5、命令模式下的操作:

删除与修改,x:

删除光标所在字符dw删除一个单词dd:

删除光标所在的行s:

删除光标所在字节,并进入输入模式,#表示数字#x删除几个字符,如3x#dw删除几个单词,如3dw表示删除三个单词#dd删除多个行,如3dd表示删除光标行及光标的下两行d$删除光标到行尾的内容,d光标键:

左:

删除光标前面的字符;右:

删除光标所在的字符;上:

将当前行与上一行删除;下:

当前行与下一行删除,nd上下光标键:

删除当前行之上、下的几行文本(包括当前行),u:

恢复刚才被修改的文本U:

恢复光标所在行的所有修改.:

重复上一次命令的操作,12,命令模式下的操作:

文本复制、粘贴,复制命令:

yyy:

复制整行yw:

复制光标所在的单词nyw:

复制包括光标所在的n个单词nyy:

复制包括当前行在内的n行粘贴命令P光标移动h、j、k、lnG:

移动到底n行行首,13,6、行命令模式下的操作:

字符串的查找、替换,:

/string搜索指定的字符串。

按键n:

继续进行搜索如果写的是斜杠(/):

按n会从当前位置向后查找;如果写的是问号(?

),按n键则从当前位置向前查找查找且替换:

%s/SEARCH/REPLACE把文档中所有SEARCH替换成REPLACE;:

#,#s/SEARCH/REPLACE/g号表示数字,表示从多少行到多少行,把SEARCH替换成REPLACE;:

s/SEARCH/REPLACE/g把当前光标所在行中的SEARCH单词,替换成REPLACE,并把所有SEARCH高亮显示,14,7、设置vi,全局的配置文件位于/etc/vim/vimrc(或者/etc/vimrc)也可以拥有自己独立的配置文件,配置文件位“/.vimrc”,如果没有该文件,也可以直接用如下命令创建并编辑比如:

setnu显示行号setruler显示光标位置setundolevel显示光标位置setsmartindent智能缩进syntaxon(或synon)语法高亮,15,三种模式间的转换关系,16,案例练习,1.请在/tmp这个目录下建立一个名为vitest的目录;2.进入vitest这个目录当中;3.将/etc/man.config拷贝到本目录底下4.使用vi开启本目录下的man.config这个档案;5.在vi中设定一下行号;6.移动到第58行,向右移动40个字符,请问您看到的双引号内是什么目录?

7.移动到第一行,并且向下搜寻一下“bzip2”这个字符串,请问他在第几行?

8.接着下来,我要将50到100行之间的man改为MAN,并且一个一个挑选是否需要修改,如何下达指令?

9.修改完之后,突然反悔了,要全部复原,有哪些方法?

10.我要复制51到60行这十行的内容,并且贴到最后一行之后;11.删除11到30行之间的20行;12.将这个文件另存成一个man.test.config的文件;13.到第29行,并且删除15个字符;14.储存后离开,17,1.mkdir/tmp/vitest2.cd/tmp/vitest3.cp/etc/man.config.4.viman.config5.:

setnu6.先按下58G再按下40会看到/dir/bin/foo这个字样在双引号内;7.先执行1G或gg后,直接输入/bzip28.直接执行:

50,100s/man/MAN/gc即可9.

(1)简单的方法可以一直按u恢复到原始状态,

(2)使用不储存离开:

q!

之后,再重新读取一次该文件;10.51G然后再10yy之后按下G到最后一行,再p粘贴10行11.11G之后,再给他20dd即可删除20行了;12.:

wman.test.config13.29G之后,再给他15x即可删除15个字符;14.:

wq!

18,二、SHELL变量与语法,Shell概述shell变量和符号shell控制流程语法shell中的输出重定向脚本实例,19,1、shell的基本元素

(1)#!

/bin/bash必须的,指出shell的类型

(2)#注释(3)变量(4)控制,一、Shell概述,一个shell脚本viclearup.sh#!

/bin/bash#thisisclearcd/var/logcat/dev/null/var/log/messages/dev/nullLinux中的无限大的垃圾回收站echoLogscleanedup.,20,2、一般步骤:

(1)编辑文件

(2)保存文件(3)将文件赋予可执行的权限(4)运行及排错,21,注意:

一般以.sh为文件后缀。

没有也能执行。

常见的两种执行方式./文件名在当前目录下写明路径执行,要求文件必须有执行权限,如chmod755run.sh./run.shsh文件名shrun.sh文件开头指定一个或多个解释脚本程序的shell,如#!

/bin/bash如果指定,注意/bin不要漏了“/”,否则用./方式执行会找不到路径。

不指定的话一般默认以/bin/sh执行shell脚本,22,3、Shell的一般结构shell类型函数主过程一般模板abc.sh#!

/bin/bashshell类型#asimpleshellscriptexample#afunctionfuncitonsayhello()函数echoEnterYourname:

readname读取来自键盘输入的变量echoHello$nameechoprogrammestartshere.主过程sayhelloechoprogrammeends.,23,1、注释符#除了#!

/bin/bash里的#特殊2、美元符$变量符。

与反斜杠转义符相反,使其后的普通字符作为变量名,如$a表示变量a的值。

变量字符长度超过1个时,用括起来3、单引号被引起的字符全部做普通字符,即全部原样echomy$SHELL,二、Shell中的特殊符号,24,4、双引号引号内的内容,除$、转义符、倒引号这三个保留特殊功能,其他字符均做普通字符。

5、倒引号(数字1键旁边的那个键)引号内的字符串当做shell命令行解释执行,得到的结果取代整个倒引号括起来的部分。

pwd即pwd命令的执行结果$LOGNAME系统变量,25,练习一下:

区别下面几句,echomyhomeis$HOMEecho“myhomeis$HOME”echomyhomeis$HOMEecho“myhomeispwd”echomyhomeispwd,用于括起来shell命令用于原样显示,26,6.反斜线反斜线是转义字符,它能把特殊字符变成普通字符。

在某个字符前面利用反斜杠()能够阻止shell把后面的字符解释为特殊字符。

例4:

yuqunyuqun$echo“FilenameisN0$*”FilenameisN0$*注意:

在单引号括起来的字符串中,反斜线也成为普通字符,而失去转义字符功能。

27,三、变量,shell变量可以保存如路径名、文件名或者一个数字本地变量局部变量只在创建它们的Shell中使用,可以在shell程序内任意使用和修改它们。

环境变量可以在创建它们的Shell及其派生出来的任意子程序中使用。

有些变量是用户创建的,其他的则是专用的(比如PATH、HOME)。

是系统环境的一部分,不必去定义它们,可以在shell程序中使用它们。

还能在shell中加以修改。

内部变量由系统提供的。

与环境变量不同,但用户不能修改它们。

28,本地变量和环境变量的对比,29,1、本地变量(局部变量、用户变量),本地变量在用户现在的shell生命期的脚本中使用变量名=值注意:

(1)等号两边不可以有空格

(2)取值包含空格,必须用双引号括起来(3)Shell变量可以用大小写字母,区分大小写,30,变量的声明和使用

(1)变量是弱类型的(不用声明类型)

(2)变量声明及赋值格式变量=值(等号两边不能有空格)(3)变量的引用$变量名$变量名变量名为1个字符时建议使用方式一,多余一个字符时建议使用方式二举例:

$a$abc,31,显示变量echo命令可以显示单个变量取值,变量名前加$,echo$Nameecho$nameecho$nameareecho$nameare

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 考试认证 > IT认证

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1