shell脚本教程详细讲解(很好)课件

上传人:我*** 文档编号:136650812 上传时间:2020-06-30 格式:PPT 页数:82 大小:414.50KB
返回 下载 相关 举报
shell脚本教程详细讲解(很好)课件_第1页
第1页 / 共82页
shell脚本教程详细讲解(很好)课件_第2页
第2页 / 共82页
shell脚本教程详细讲解(很好)课件_第3页
第3页 / 共82页
shell脚本教程详细讲解(很好)课件_第4页
第4页 / 共82页
shell脚本教程详细讲解(很好)课件_第5页
第5页 / 共82页
点击查看更多>>
资源描述

《shell脚本教程详细讲解(很好)课件》由会员分享,可在线阅读,更多相关《shell脚本教程详细讲解(很好)课件(82页珍藏版)》请在金锄头文库上搜索。

1、,College of Information Science and Engineering,Shandong Agricultural University,SHELL脚本编程,2,shell脚本能提高用户操作和管理员进行系统管理的效率,一般步骤 编辑器编写脚本程序 shell做解释程序,非交互地执行脚本,两种执行方式: 用sh命令执行脚本文件 给脚本文件添加执行权限,用./命令执行,3,HELLO WORLD!,vi hello.sh 按i进入插入模式 输入echo “hello world!” :输入wq保存退出 sh hello.sh 或者 chmod 755 hello.sh ./

2、hello.sh,4,一、VI编辑器,VI的三种工作模式 VI的启动 VI的退出 VI的文本编辑 VI命令模式下的操作 VI行命令模式下的操作,5,系统配置文件、shell脚本文件等都是文本文件,编辑它们都要使用文本编辑器。 在Linux系统中有多种文本编辑器,其中既有字符界面如的VI、EMACAS等,也有图形界面的如“附件”菜单下的“文本编辑器(gedit)”等,用户可以根据自己的喜好选择使用。 学习vi的方法: vi的命令太多且难以记忆,而实际上真正经常使用的命令并不是太多,只要掌握几个关键的并加以适当练习很快就上手使用vi。,6,为什么选择VI,就使用的方便性而言,有比vi更好的编辑器,

3、还要图形化的edit,为什么还要用vi? 历史久远,功能强大,在有些情况下系统中能够找到的编辑器只有vi; 用户一旦熟悉后,使用非常方便;系统管理员使用正则表达式可以极大地提高工作效率,而学习vi也是掌握正则表达式的有效途径。 由于vi的版本不同,其命令格式、功能和用法会有一些差别。Shell中执行vi命令,RedHat系统实际上是执行vim,它是传统vi的增强版本,7,1、VI的三种工作模式,命令模式 启动VI默认进入命令模式。此时界面不能编辑,只能接受命令(键入的命令看不到) 文件的保存,退出,文本的删除、复制、搜索等操作 输入模式 编辑模式 命令模式下用i(sert),a(ppend),

4、o,s等均可进入该模式。按esc返回命令模式 行编辑模式 实际上也是命令模式的一种,在命令模式下输入冒号进入一个命令行,可显示地输入命令(所以也有些书认为是两种工作模式)。 三种模式可自由切换,一般切换命令就是操作的英文单词的首字母,8,2、VI的启动,启动命令:vi my.txt 如果文件存在,则vi显示文件内容并等待用户的命令。 如果指定的文件不存在,则vi将告知用户这是未命名的文件,并进入一个空白的界面。 启动vi时都是默认处于命令模式。用户必须使用命令切换到文本输入模式才能进行输入编辑,或者可执行删除、复制等编辑命令。,vi R file_name,以只读方式打开文件,9,3、VI的退

5、出,冒号进命令行模式下: :q! 不存档强制退出。 :w 保存但不退出,w(rite)后可加所要存档的文档名。 :wq 存档后退出。 命令模式下按zz,功能与 :wq 相同。 :x 与:wq相同 命令模式: ZZ、ZQ 保存/不保存退出,10,4、怎么编辑,必须从命令模式转入插入模式才能进行输入编辑,可用命令有: 新增 (append) a :从光标所在位置后面开始新增资料 A: 从光标所在行最后面的地方开始新增资料。 插入 (insert) i: 从光标所在位置前面开始插入资料 I :从光标所在行的第一个非空白字元前面开始插入资料。 开始 (open) o :在光标所在行下新增一列并进入输入

6、模式。 O: 在光标所在行上方新增一列并进入输入模式。,冒号进入行命令模式,输入set nu可设置vi显示行号,11,5、命令模式下的操作:删除与修改,x: 删除光标所在字符 dw 删除一个单词 dd :删除光标所在的行 s:删除光标所在字节,并进入输入模式,#表示数字 #x 删除几个字符,如3x #dw 删除几个单词,如3dw表示删除三个单词 #dd 删除多个行,如3dd 表示删除光标行及光标的下两行 d$ 删除光标到行尾的内容,d光标键: 左:删除光标前面的字符; 右:删除光标所在的字符; 上:将当前行与上一行删除; 下:当前行与下一行删除,nd上下光标键: 删除当前行之上、下的几行文本(

7、包括当前行),u:恢复刚才被修改的文本 U:恢复光标所在行的所有修改 .:重复上一次命令的操作,12,命令模式下的操作:文本复制、粘贴,复制命令:y yy: 复制整行 yw:复制光标所在的单词 nyw:复制包括光标所在的n个单词 nyy:复制包括当前行在内的n行 粘贴命令 P 光标移动 h、j、k、l nG:移动到底n行行首,13,6、行命令模式下的操作:字符串的查找、替换,:/string 搜索指定的字符串。 按键n:继续进行搜索 如果写的是斜杠(/):按n会从当前位置向后查找;如果写的是问号(?),按n键则从当前位置向前查找 查找且替换 :%s /SEARCH /REPLACE 把文档中所

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

9、示光标位置 set smartindent 智能缩进 syntax on(或syn on) 语法高亮,15,三种模式间的转换关系,16,案例练习,1. 请在 /tmp 这个目录下建立一个名为 vitest 的目录; 2. 进入 vitest 这个目录当中; 3. 将 /etc/man.config 拷贝到本目录底下 4. 使用 vi 开启本目录下的 man.config 这个档案; 5. 在 vi 中设定一下行号; 6. 移动到第 58 行,向右移动 40 个字符,请问您看到的双引号内是什么目录? 7. 移动到第一行,并且向下搜寻一下“bzip2”这个字符串,请问他在第几行? 8. 接着下来,

10、我要将 50 到 100 行之间的 man 改为 MAN,并且一个一个挑选是否需要修改,如何下达指令? 9. 修改完之后,突然反悔了,要全部复原,有哪些方法? 10. 我要复制 51 到 60 行这十行的内容,并且贴到最后一行之后; 11. 删除 11 到 30 行之间的 20 行; 12. 将这个文件另存成一个 man.test.config 的文件; 13. 到第 29 行,并且删除 15 个字符; 14. 储存后离开,17,1. mkdir /tmp/vitest 2. cd /tmp/vitest 3. cp /etc/man.config . 4. vi man.config 5.

11、:set nu 6. 先按下 58G 再按下 40 会看到 /dir/bin/foo 这个字样在双引号内; 7. 先执行 1G 或 gg 后,直接输入 /bzip2 8. 直接执行 :50,100s/man/MAN/gc 即可 9. (1)简单的方法可以一直按 u 恢复到原始状态,(2)使用不储存离开 :q! 之后,再重新读取一次该文件; 10. 51G 然后再 10yy 之后按下 G 到最后一行,再p粘贴10行 11. 11G 之后,再给他 20dd即可删除 20 行了; 12. :w man.test.config 13. 29G 之后,再给他 15x 即可删除 15 个字符; 14. :

12、wq!,18,二、SHELL变量与语法,Shell概述 shell变量和符号 shell控制流程语法 shell中的输出重定向 脚本实例,19,1、shell的基本元素 (1) #!/bin/bash 必须的,指出shell的类型 (2)# 注释 (3)变量 (4)控制,一、Shell概述,一个shell脚本 vi clearup.sh #!/bin/bash # this is clear cd /var/log cat /dev/null/var/log/messages /dev/null Linux中的无限大的垃圾回收站 echo Logs cleaned up.,20,2、一般步骤:

13、 (1)编辑文件 (2)保存文件 (3)将文件赋予可执行的权限 (4)运行及排错,21,注意: 一般以.sh为文件后缀。没有也能执行。 常见的两种执行方式 ./文件名 在当前目录下写明路径执行,要求文件必须有执行权限,如 chmod 755 run.sh ./run.sh sh 文件名 sh run.sh 文件开头指定一个或多个解释脚本程序的shell,如 #!/bin/bash 如果指定,注意/bin不要漏了“/”,否则用./方式执行会找不到路径。 不指定的话一般默认以/bin/sh执行shell脚本,22,3、Shell的一般结构 shell 类型 函数 主过程 一般模板 abc.sh #

14、!/bin/bash shell类型 #a simple shell script example #a function funciton sayhello() 函数 echo Enter Your name: read name 读取来自键盘输入的变量 echo Hello $name echo programme starts here. 主过程 sayhello echo programme ends.,23,1、注释符# 除了#!/bin/bash里的#特殊 2、美元符 $ 变量符。与反斜杠转义符相反,使其后的普通字符作为变量名,如$a表示变量a的值。变量字符长度超过1个时,用括起来

15、 3、单引号 被引起的字符全部做普通字符,即全部原样 echo my $SHELL,二、Shell中的特殊符号,24,4、双引号 引号内的内容,除$、转义符、倒引号这三个保留特殊功能,其他字符均做普通字符。 5、倒引号(数字1键旁边的那个键) 引号内的字符串当做shell命令行解释执行,得到的结果取代整个倒引号括起来的部分。,pwd 即pwd命令的执行结果 $LOGNAME 系统变量,25,练习一下:区别下面几句,echo my home is $HOME echo “my home is $HOME” echo my home is $HOME echo “my home is pwd” e

16、cho my home is pwd, 用于括起来shell命令 用于原样显示,26,6. 反斜线 反斜线是转义字符,它能把特殊字符变成普通字符。在某个字符前面利用反斜杠()能够阻止shell把后面的字符解释为特殊字符。 例4: yuqunyuqun $echo “Filename is N0$*” Filename is N0$* 注意:在单引号括起来的字符串中,反斜线也成为普通字符,而失去转义字符功能。,27,三、变量,shell 变量 可以保存如路径名、文件名或者一个数字 本地变量 局部变量只在创建它们的Shell中使用,可以在shell程序内任意使用和修改它们。 环境变量 可以在创建它们的Shell及其派生出来的任意子程序中使用。有些变量是用户创建的,其他的则是专用的(比如PATH、HOME)。是系统环境的一部分,不必去定义它们,可以在shell程序中使用它们 。还能在shell中加以修改。 内部变量 由系统提供的。与环境变量不

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号