【4】shell脚本编程.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)
《【4】shell脚本编程.ppt》由会员分享,可在线阅读,更多相关《【4】shell脚本编程.ppt(61页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、College of Information Science and Engineering Shandong Agricultural University SHELL脚本编程shellshell脚本能提高用户操作和管理员进脚本能提高用户操作和管理员进行系统管理的效率,一般步骤行系统管理的效率,一般步骤1.1.编辑器编写脚本程序编辑器编写脚本程序2.2.shellshell做解释程序,非交互地执行脚本,做解释程序,非交互地执行脚本,两种执行方式:两种执行方式:1.1.用用shsh命令执行脚本文件命令执行脚本文件2.2.给脚本文件添加执行权限,用给脚本文件添加执行权限,用././命令执行命令执
2、行2 2HELLO WORLD!HELLO WORLD!1.1.vi vi hello.shello.sn按按i i进入插入模式进入插入模式n输入输入echo“hello world!”echo“hello world!”n:输入输入wqwq保存退出保存退出2.2.shsh hello.shello.s或者或者chmodchmod 755 755 hello.shello.s././hello.shello.s3 3一、一、VIVI编辑器编辑器1.1.VIVI的三种工作模式的三种工作模式2.2.VIVI的启动的启动3.3.VIVI的退出的退出4.4.VIVI的文本的文本编辑编辑5.5.VIVI
3、命令模式下的操作命令模式下的操作6.6.VIVI行命令模式下的操作行命令模式下的操作 VI 编辑器的使用编辑器的使用4 4系统配置文件、系统配置文件、shellshell脚本文件等都是文本文件,编辑脚本文件等都是文本文件,编辑它们都要使用文本编辑器。它们都要使用文本编辑器。在在LinuxLinux系统中有多种文本编辑器,其中既有字符界面系统中有多种文本编辑器,其中既有字符界面如的如的VIVI、EMACASEMACAS等,也有图形界面的如等,也有图形界面的如“附件附件”菜菜单下的单下的“文本编辑器(文本编辑器(geditgedit)”等,用户可以根据自等,用户可以根据自己的喜好选择使用。己的喜好
4、选择使用。学习学习vi vi的方法:的方法:vi vi的命令太多且难以记忆,而实际上真正经常使用的命令太多且难以记忆,而实际上真正经常使用的命令并不是太多,只要掌握几个关键的并加以适当的命令并不是太多,只要掌握几个关键的并加以适当练习很快就上手使用练习很快就上手使用vi vi。5 5为什么选择为什么选择VIVI就使用的方便性而言,有比就使用的方便性而言,有比vi vi更好的编辑器,还要图更好的编辑器,还要图形化的形化的editedit,为什么还要用,为什么还要用vi vi?历史久远,功能强大,在有些情况下系统中能够找到的编辑历史久远,功能强大,在有些情况下系统中能够找到的编辑器只有器只有vi
5、vi;用户一旦熟悉后,使用非常方便;系统管理员使用正则表达用户一旦熟悉后,使用非常方便;系统管理员使用正则表达式可以极大地提高工作效率,而学习式可以极大地提高工作效率,而学习vi vi也是掌握正则表达式的也是掌握正则表达式的有效途径。有效途径。由于由于vivi的版本不同,其命令格式、功能和用法会有一的版本不同,其命令格式、功能和用法会有一些差别。些差别。ShellShell中执行中执行vivi命令,命令,RedHatRedHat系统实际上是执系统实际上是执行行vimvim,它是传统,它是传统vivi的增强版本的增强版本6 61 1、VIVI的三种工作模式的三种工作模式命令模式命令模式启动启动V
6、IVI默认进入命令模式。此时界面不能编辑,只能接受默认进入命令模式。此时界面不能编辑,只能接受命令命令(键入的命令看不到键入的命令看不到)文件的保存,退出,文本的删除、复制、搜索等操作文件的保存,退出,文本的删除、复制、搜索等操作输入模式输入模式编辑模式编辑模式命令模式下用命令模式下用i(sert),a(ppendi(sert),a(ppend),o,so,s等均可进入该模式。等均可进入该模式。按按escesc返回命令模式返回命令模式行编辑模式行编辑模式实际上也是命令模式的一种,在实际上也是命令模式的一种,在命令模式下输入冒号命令模式下输入冒号进入进入一个命令行,一个命令行,可显示地输入命令可
7、显示地输入命令(所以也有些书认为是两(所以也有些书认为是两种工作模式)。种工作模式)。三种模式可自由切换,一般切换命令就是操作的英文单词三种模式可自由切换,一般切换命令就是操作的英文单词的首字母的首字母7 72 2、VIVI的启动的启动启动命令:启动命令:vi vi my.txtmy.txt如果文件存在,则如果文件存在,则vi vi显示文件内容并等待用户的命令。显示文件内容并等待用户的命令。如果指定的文件不存在,则如果指定的文件不存在,则vi vi将告知用户这是未命名将告知用户这是未命名的文件,并进入一个空白的界面。的文件,并进入一个空白的界面。启动启动vi vi时都是默认处于命令模式。用户必
8、须使用命令时都是默认处于命令模式。用户必须使用命令切换到文本输入模式才能进行输入编辑,或者可执行切换到文本输入模式才能进行输入编辑,或者可执行删除、复制等编辑命令。删除、复制等编辑命令。vi vi R file_nameR file_name,以只,以只读方式打方式打开开文件文件8 83 3、VIVI的退出的退出冒号进命令行模式下:冒号进命令行模式下::q!不存档强制退出。不存档强制退出。:w 保存但不退出保存但不退出,ww(rite)后后可加所要存档的文档名。可加所要存档的文档名。:wq 存档后退出。存档后退出。命令模式下按命令模式下按zz,功能与功能与:wq 相同。相同。:x 与与:wq相
9、同相同命令模式:命令模式:ZZZZ、ZQZQ保存保存/不保存退出不保存退出9 94 4、怎么编辑、怎么编辑必须从命令模式转入插入模式才能进行输入必须从命令模式转入插入模式才能进行输入编辑,可用命令有编辑,可用命令有:新增新增(append)a:从光标所在位置从光标所在位置后面后面开始新增资料开始新增资料A:从光标所在从光标所在行最后面的行最后面的地方开始新增资料。地方开始新增资料。插入插入(insert)i:从光标所在位置从光标所在位置前面前面开始插入资料开始插入资料I:从光标所在从光标所在行行的第一个非空白字元的第一个非空白字元前面前面开始插入资料。开始插入资料。开始开始(open)o:在光
10、标所在光标所在行下在行下新增一列并进入输入模式。新增一列并进入输入模式。O:在光标所在光标所在行上方在行上方新增一列并进入输入模式。新增一列并进入输入模式。冒号进入行命令模式,输入冒号进入行命令模式,输入set nu可设置可设置vi显示行号显示行号10105、命令模式下的操作:删除、命令模式下的操作:删除nx:删除光标所在字符删除光标所在字符ndwdw 删除一个单词删除一个单词ndd:删除光标所在的行删除光标所在的行nu u:恢复被删除的文字:恢复被删除的文字ns s:删除光标所在字节,:删除光标所在字节,并进入输入模式并进入输入模式#表示数字表示数字n#x#x 删除几个字符,如删除几个字符,
11、如3x3xn#dwdw 删除几个单词,如删除几个单词,如3dw3dw表示删除三个单词表示删除三个单词n#dddd 删除多个行,如删除多个行,如3dd 3dd 表示删除光标行及光标的表示删除光标行及光标的下两行下两行nd$d$删除光标到行尾的内删除光标到行尾的内容容d d光标键:光标键:左:删除光标前面的字符;左:删除光标前面的字符;右:删除光标所在的字符;右:删除光标所在的字符;上:将当前行与上一行删除;上:将当前行与上一行删除;下:当前行与下一行删除下:当前行与下一行删除ndnd上下光标键上下光标键:删除当前行之上、下的几行文删除当前行之上、下的几行文本(包括当前行)本(包括当前行)1111
12、命令模式下的操作:命令模式下的操作:文本复制、粘贴文本复制、粘贴复制命令:复制命令:y yyyyy:复制整行复制整行ywyw:复制光标所在的单词复制光标所在的单词nywnyw:复制包括光标所在的复制包括光标所在的n n个单词个单词nyynyy:复制包括当前行在内的复制包括当前行在内的n n行行粘贴命令粘贴命令P P光标移动光标移动h h、j j、k k、l lnGnG:移动到底:移动到底n n行行首行行首1212通用缓冲区和专用缓冲区通用缓冲区和专用缓冲区一般情况下,最近一次的抽取、删除、插入和修改的一般情况下,最近一次的抽取、删除、插入和修改的内容都将存放在内容都将存放在通用缓冲区通用缓冲区
13、中。利用这些缓冲区可以中。利用这些缓冲区可以非常方便地实现文本内容的剪切和粘贴。非常方便地实现文本内容的剪切和粘贴。专用缓冲区专用缓冲区的名字采用双引号加单个字母表示的名字采用双引号加单个字母表示,如如”a a,”b b等等等等命令模式下输入命令模式下输入”ayyayy,是将当前行的内容复制到专用缓冲区,是将当前行的内容复制到专用缓冲区a a中。输入中。输入”apap,则将专用缓冲区中的内容粘贴到光标位置之则将专用缓冲区中的内容粘贴到光标位置之后。后。对单个文件的编辑,专用缓冲区没有什么优势,对多个文件对单个文件的编辑,专用缓冲区没有什么优势,对多个文件编辑才能体现专用缓冲区的优势:从当前文件
14、切换到下一个编辑才能体现专用缓冲区的优势:从当前文件切换到下一个文件时通用缓冲区的内容会丢失,而专用缓冲区的内容却依文件时通用缓冲区的内容会丢失,而专用缓冲区的内容却依然存在。然存在。1313示例:示例:将当前行开始的将当前行开始的4 4行内容向后移动行内容向后移动8 8行。行。4dd4dd是删除是删除4 4行,行,vi vi自动将这自动将这4 4行的内容保存在通用缓冲区中;行的内容保存在通用缓冲区中;8j 8j表示将光标向后移动表示将光标向后移动8 8行;行;p p表示从通用缓冲区中取出内容,粘贴在光标位置后面。由于表示从通用缓冲区中取出内容,粘贴在光标位置后面。由于dddd命令使通用缓冲区
15、的内容以行为单位存放,当取出缓冲区命令使通用缓冲区的内容以行为单位存放,当取出缓冲区的内容时,的内容时,vi vi将它们粘贴在当前行之后。将它们粘贴在当前行之后。示例:示例:将某文本文件中的两行复制到新位置。将某文本文件中的两行复制到新位置。2yy2yy,表示从当前行开始抽取两行到通用缓冲区。,表示从当前行开始抽取两行到通用缓冲区。再将光标移动到目标行的位置后,输入再将光标移动到目标行的位置后,输入p p复制。复制。14146 6、行、行命令模式下的操作:命令模式下的操作:字符串的查找、替换字符串的查找、替换:/string:/string搜索指定的字符串。搜索指定的字符串。按键按键n n:继
16、续进行搜索:继续进行搜索 如果写的是斜杠(如果写的是斜杠(/):按):按n n会从当前位置向后查找;如果写的会从当前位置向后查找;如果写的是问号(?),按是问号(?),按n n键则从当前位置向前查找键则从当前位置向前查找查找且替换查找且替换:%s /SEARCH/REPLACE:%s /SEARCH/REPLACE把文档中所有把文档中所有SEARCHSEARCH替换成替换成REPLACEREPLACE;:#,#s/SEARCH/REPLACE/g:#,#s/SEARCH/REPLACE/g 号表示数字,表示从多少行到多少行,把号表示数字,表示从多少行到多少行,把SEARCHSEARCH替换成替
17、换成REPLACEREPLACE;:s /SEARCH/REPLACE/g:s /SEARCH/REPLACE/g 把把当前光标当前光标所在行中的所在行中的SEARCHSEARCH单词,替换成单词,替换成REPLACEREPLACE,并并把所有把所有SEARCHSEARCH高亮显示高亮显示1515*与当前文件有关的读写操作与当前文件有关的读写操作 :r r file_namefile_name导入文件内容添加到光标所在行后导入文件内容添加到光标所在行后 :n1,n5 w n1,n5 w file_namefile_name从第从第n1n1行到行到n5n5行的内容保存到文件行的内容保存到文件fi
18、le_namefile_name中中如果是从当前行到倒数第三行,也可以表示为如果是从当前行到倒数第三行,也可以表示为 .,$-2;如;如果指定的文件已存在,则果指定的文件已存在,则vi vi将给出将给出“File exists”File exists”的错误的错误信息,可用下面的命令:信息,可用下面的命令:n1,n5 w n1,n5 w file_namefile_name将指定的文件内容附加重定向地添加到一个已经存在文将指定的文件内容附加重定向地添加到一个已经存在文件的尾部。件的尾部。1616*VI*VI操作中执行其他操作中执行其他shellshell命令命令用户在编辑文本文件过程中,可以在
19、不退出用户在编辑文本文件过程中,可以在不退出vi vi的情况下执行的情况下执行shellshell命令,行命令模式输入命令,行命令模式输入:!命令!命令例如:例如:!:!ls ls l l:!mount/dev/sda1/!mount/dev/sda1/mntmnt命令执行完成后,系统会提醒用户按任意键返命令执行完成后,系统会提醒用户按任意键返回回vi vi编辑器中继续文本文件的编辑工作。编辑器中继续文本文件的编辑工作。1717文本输入状态文本输入状态命令状态命令状态行编辑状态行编辑状态按按ESC键键按按A,I,S,C,O等命令等命令按按“:”键键执执行行非非退退出出命命令,如令,如w三种模式
20、间的转换关系三种模式间的转换关系1818二、二、SHELLSHELL变量与语法变量与语法1.1.基础知识基础知识2.2.shellshell变量变量3.3.shellshell控制流程语法控制流程语法4.4.shellshell中的输出重定向中的输出重定向5.5.脚本实例脚本实例 SHELL变量与语法变量与语法19191 1、基础知识、基础知识关于关于shellshell脚本文件脚本文件1.1.一般以一般以.shsh为文件后缀。没有也能执行。为文件后缀。没有也能执行。2.2.常见的两种执行方式常见的两种执行方式././文件名文件名 在当前目录下写明路径执行,要求文在当前目录下写明路径执行,要求
21、文件必须有执行权限,如件必须有执行权限,如chmodchmod 755 755 run.shrun.sh././run.shrun.shshsh 文件名文件名shsh run.shrun.sh3.3.文件开头指定一个或多个解释脚本程序的文件开头指定一个或多个解释脚本程序的shellshell,如,如#!/bin/bash#!/bin/bash如果指定,注意如果指定,注意/bin/bin不要漏了不要漏了“/”/”,否则用,否则用././方方式执行会找不到路径。式执行会找不到路径。不指定的话一般默认以不指定的话一般默认以/bin/bin/shsh执行执行shellshell脚本脚本2020shel
22、lshell里的特殊字符里的特殊字符注释符注释符#除了除了#!/bin/bash#!/bin/bash里的里的#特殊特殊美元符美元符变量符。与反斜杠转义符相反,使其后的普通字符作为变量变量符。与反斜杠转义符相反,使其后的普通字符作为变量名,如名,如$a$a表示变量表示变量a a的值。变量字符长度超过的值。变量字符长度超过1 1个时,用个时,用 括括起来起来单引号单引号被引起的字符全部做普通字符,即全部原样被引起的字符全部做普通字符,即全部原样echo my$SHELLecho my$SHELL2121双引号双引号引号内的内容,除引号内的内容,除$、转义符、转义符、倒引号、倒引号 这三个保留特殊
23、功能,这三个保留特殊功能,其他字符均做普通字符。其他字符均做普通字符。倒引号倒引号引号内的字符串当做引号内的字符串当做shellshell命令行解释执行,得到的结果取代命令行解释执行,得到的结果取代整个倒引号括起来的部分。整个倒引号括起来的部分。pwd即即pwd命令的执行结果命令的执行结果$LOGNAME系统变量系统变量2222练习一下:区别下面几句练习一下:区别下面几句echo my home is$HOMEecho my home is$HOMEecho“my home is$HOME”echo“my home is$HOME”echo my home is$HOMEecho my hom
24、e is$HOMEecho“my home is echo“my home is pwdpwd”echo my home is echo my home is pwdpwd 用于括起来用于括起来shell命令命令 用于原样显示用于原样显示23232 2、shellshell变量变量1 1)环境变量环境变量程序运行时的一些设置,常用的如程序运行时的一些设置,常用的如PATHPATH,HOMEHOME,SHELLSHELL,LOGNAMELOGNAME等等PATHPATH的例子:的例子:windowswindows下,开始下,开始运行运行输入输入notepadnotepad能启动记事本能启动记事本
25、配置配置javajava环境变量可使任何目录都能执行环境变量可使任何目录都能执行javacjavac命令命令linuxlinux下的环境变量下的环境变量一)命令行修改或设置环境变量一)命令行修改或设置环境变量只在本次登录的只在本次登录的shellshell内有效。设置好的环境变量可以内有效。设置好的环境变量可以在当前用户运行的所有程序中使用。在当前用户运行的所有程序中使用。1.1.显示变量的值显示变量的值 echoecho$HOME$HOME/home/home/wxlwxl2.2.新增,修改或删除环境变量新增,修改或删除环境变量exportexport PATH=$PATH:/*/bin P
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- shell 脚本 编程
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内