shel编程.ppt_第1页
shel编程.ppt_第2页
shel编程.ppt_第3页
shel编程.ppt_第4页
shel编程.ppt_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、山东农业大学信息科学与工程学院,shell脚本编程,2、shell脚本可以提高用户操作和管理员系统管理的效率,通用的step editor编写脚本程序shell作为解释器,交互执行脚本有两种方式:用sh命令执行脚本文件,给脚本文件增加执行权限,用。/command,3,HELLO WORLD!vi hello.sh按I进入插入模式,然后输入echo“hello world!”:输入wq保存并退出sh hello.sh或chmod 755 hello.sh。/hello.sh,4,VI编辑器,VI开始VI退出VI文本编辑VI操作在命令模式VI命令行命令模式,5,系统配置文件,shell脚本文件等

2、。都是文本文件,它们都需要使用文本编辑器进行编辑。Linux系统中的文本编辑器有很多种,包括虚拟仪器、电子地图等字符界面。以及图形界面,如“附件”菜单下的“gedit”等。用户可以根据自己的喜好选择使用它们。学习vi的方法:vi命令太多,很难记住,但事实上,经常使用的命令并不多。只要你掌握了几个关键点,并适当地练习,你就能很快地使用虚拟仪器。6.为什么选择虚拟仪器?就易用性而言,有一个比vi更好的编辑器,但也有一个图形编辑。为什么使用虚拟仪器?它历史悠久,功能强大。在某些情况下,系统中只能找到虚拟仪器;一旦用户熟悉了它,使用起来就非常方便;系统管理员可以通过使用正则表达式大大提高工作效率,学习

3、vi也是掌握正则表达式的有效方法。由于vi的不同版本,在命令格式、功能和用法上存在一些差异。vi命令在Shell中执行,而RedHat系统实际上执行vim,这是传统vi的增强版本,有7、1和VI三种工作模式。命令模式启动虚拟仪器,并默认进入命令模式。此时,界面不能编辑,只能接受命令(键入的命令看不到),如保存、退出、删除、复制、搜索等。该模式可通过使用i(sert)、a(ppend)、o、s等进入。在命令模式下。按esc键返回命令模式。行编辑模式实际上是一种命令模式。在命令模式下,输入冒号以进入命令行并显示命令(因此有些书认为这是两种工作模式)。这三种模式可以自由切换。通常,切换命令是操作的英

4、文单词的第一个字母,8,2,vi start,start命令:vi my.txt如果文件存在,vi显示文件内容并等待用户的命令。如果指定的文件不存在,vi将通知用户这是一个未命名的文件,并进入一个空白界面。当vi启动时,默认情况下它总是处于命令模式。用户必须使用命令切换到文本输入模式来编辑输入,或者他们可以执行编辑命令,如删除和复制。文件名,以只读方式打开文件,9,3,退出,冒号进入命令行模式:q!强制退出,不存档。保存:w而不退出,并在w(rite)后添加要存档的文档的名称。存档:wq后退出。在命令模式下按zz与:wq具有相同的功能。x和:wq具有相同的命令模式:ZZ,ZQ保存/不保存退出,

5、10,4,如何编辑,您必须从命令模式更改为插入模式,然后才能编辑输入。可用的命令有:追加)a:从光标后面的位置添加数据a:从光标后面的行添加数据。插入)I:从光标位置的前面插入数据I:从光标所在行的第一个非空白字符的前面插入数据。打开)o:在光标所在行下增加一列,进入输入模式。O:在光标所在行的上方添加一个新行,并进入输入模式。,冒号进入行命令模式,输入set nu设置vi显示行号,11,5,在命令模式下操作:删除和修改,x:删除光标所在的字符dw,删除一个字dd:删除光标所在的行s,删除光标所在的字节,进入输入模式,#表示数字#x删除几个字符,如3x #dw删除几个字,例如, 3dw意味着删

6、除三个字#dd并删除多行,例如,3dd意味着删除光标行和光标的下两行d$删除从光标到行尾的内容,d光标键:左:删除光标前面的字符; 右:删除光标所在的字符;向上:删除当前行和前一行;向下:删除当前行和下一行;上下光标键:删除当前行(包括当前行)上下的几行文字;u:恢复刚刚修改的文本;u:恢复光标所在行的所有修改;重复最后一个命令的操作;12.命令模式下的操作:复制和粘贴文本。复制命令:y yy:复制整行yy:复制光标所在位置的单词N:复制包含光标的N个单词nyy:复制包含当前行的N行粘贴命令P光标移动H,J,K,l nG:移动到N行的顶部,13,6。在线命令模式下操作:字符串搜索和替换,/字符

7、串搜索和指定按“否”继续搜索。如果写了斜杠(/),请按“否”从当前位置向后搜索。如果你写一个问号(?),按n从当前位置向前搜索并替换:%s /SEARCH /REPLACE替换文档中的所有搜索; # # s/SEARCH/REPLACE/g代表数字,从多少行到多少行,用REPLACE替换SEARCH;s /SEARCH /REPLACE /g用REPLACE替换当前光标行中的搜索词,并突出显示所有搜索。14,7。第六集。全局配置文件位于/etc/vim/vimrc(或/etc/vimrc),您也可以有自己独立的配置文件。配置文件位/。vimrc 也可以使用以下命令直接创建和编辑,例如:set

8、nu display line number set标尺display cursor position set undo level display cursor position set smart indent语法on(或syn on) highlight,15,三种模式之间的转换关系,16,case practice,1。请在/tmp目录下创建一个名为vitest的目录。2.输入虚拟目录;3.将/etc/man.config复制到目录中。4.使用vi打开此目录中的man.config文件。5.在vi中设置行号;6.移到第58行,向右移动40个字符。你在双引号里看到什么目录?7.移动到第一

9、行,向下搜索字符串“bzip2”。它在哪一行?8.接下来,我想将50到100行之间的man改为MAN,并选择是否需要逐个修改,以及如何给出指令?9.修改后,我突然食言了。有什么方法可以恢复这一切?10.我想从51到60复制10行的内容,并粘贴到最后一行之后;11.删除第11行和第30行之间的20行;12.将此文件保存为man.test.config文件;13.转到第29行,删除15个字符;14.储存后离开,17,1。mkdir/tmp/vites t 2 . CD/tmp/vites t 3 . CP/etc/man . config . 4 . viman . config 5. set n

10、u 6。先按58G,然后按40,查看单词/dir/bin/foo是否有双引号;7.首先执行1G或gg,然后直接输入/bzip2。8.直接执行:50,100s/man/MAN/gc。9.(1)一直按U键恢复到原始状态,(2)离开:q不保存!之后,再次读取文件;10.51G,然后按g到10yy后的最后一行,p在11后粘贴10行。11G,然后给他20dd删除20行;12.w man.test.config 13。29G,然后给他15x删除15个字符;14.wq!18,2,SHELL变量和语法,Shell概述shell变量和符号shell控制流shell中输出重定向脚本的语法示例,19,1,shell

11、的基本元素(1) #!/bin/bash必选,指示外壳类型(2)#注意(3)变量(4)控制,1。shell概述,一个shell脚本vi clearup.sh #!/bin/bash #这是clearcd/var/logcat/dev/null/var/log/messages/dev/null清理了Linux中的无限垃圾收集站echo Logs。20,2,一般步骤:(1)编辑文件(2)保存文件(3)给予文件可执行权限(4)运行它可以执行没有它。有两种常见的执行模式。/文件名是用在当前目录中执行的路径写的,文件必须有执行权限,例如chmod 755 run.sh。/run.sh sh文件名sh

12、run.sh在文件开头指定一个或多个解释脚本程序的shell,如#!如果指定了/bin/bash,请注意/bin,不要漏掉“/”,否则,使用时就找不到路径。/。如果未指定,shell脚本将默认在/bin/sh,22,3,shell通用结构Shell类型函数主进程通用模板abc.sh #中执行!/bin/bash shell类型#一个简单的shell脚本示例#一个函数函数说hello()函数回显输入您的名称:读取名称读取变量回显hello $ name回显程序从这里开始.说你好回声程序的主要过程结束。23,1,注释#除了#!#特殊2英寸/桶/桶,美元符号$可变符号。与反斜杠转义字符相反,将下列普

13、通字符作为变量名,例如,$a代表变量a的值。当变量字符的长度超过1时,用单引号括起来的所有字符都是普通字符,也就是说,所有字符都是我的$SHELL的回声;2.壳牌的特殊符号;24,4,内容用双引号括起来,除了$,转义符和反引号,其他字符都是普通字符。5.反向引号(1号键旁边的键)。引号中的字符串被解释并作为shell命令行执行,获得的结果将替换反引号中的整个部分。pwd是pwd命令$LOGNAME系统变量的执行结果,25,练习:区分以下句子,Echo my home是$ home echo“我的家是$ home”Echo my home是$ home echo“我的家是pwd”Echo my

14、home是pwd,这是用来封装外壳命令的原始显示,26,6。反斜杠是一个转义字符,可以将特殊字符转换成普通字符。在字符前使用反斜杠()可以防止外壳将以下字符解释为特殊字符。示例4:yuqunyukun $ echo“filename是n0 $ *”filename是n0 $ *注意:在用单引号括起来的字符串中,反斜杠也变成了普通字符,但失去了转义字符功能。27,3。变量,外壳变量可以存储本地变量,如路径名,文件名或一个数字。局部变量只在创建它们的shell中使用,并且可以在shell程序中随意使用和修改。环境变量可以在创建它们的外壳和从它们派生的任何子程序中使用。一些变量是由用户创建的,而另一

15、些是专用的(如路径和主页)。它们是系统环境的一部分,所以你不必定义它们,你可以在shell程序中使用它们。它也可以在外壳中修改。内部变量由系统提供。与环境变量不同,它们不能被用户修改。28,局部变量和环境变量之间的比较,29,1,局部变量(局部变量,用户变量),局部变量使用变量名=用户当前shell生命周期脚本中的值。注意:(1)等号两边不能有空格(2)值包含空格,必须用双引号括起来(3)Shell变量可以使用大写和小写字母,区分大小写,30,变量的声明和使用(1)变量是弱类型的(不声明类型)(2)变量声明和赋值格式变量=值(等号两边不能有空格)(3)变量引用$变量名$变量名当变量名为1个字符

16、时,建议使用第一种方法,当有多个字符时,建议使用第二种方法。例如,美元一美元的abc,31。添加$,echo $名称echo $名称echo $名称在变量名之前,这在输出引用变量时更好。32,清除变量未设置变量名示例:回显$name未设置名称(注意:名称前没有$显示所有局部变量集,33,设置只读变量。设置变量时,您不想更改其值。您可以将其设置为只读变量。变量名=值只读变量名,34,2,环境变量。环境变量用于所有用户进程(通常称为子进程)。登录过程称为父过程,环境变量可以通过pstree用于所有子程序,包括编辑器、脚本和应用程序示例。/bin/bash #检测环境变量echo的主目录是$HOME。环境变量可以在命令行中设置,但是当用户注销时,这些值将会丢失。环境变量都是大写的,必须通过导出命令导出,35,设置环境变量-名称=值导出变量-名称(环境变量名称是大写的)显示环

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论