vi使用与Shell编程.ppt





《vi使用与Shell编程.ppt》由会员分享,可在线阅读,更多相关《vi使用与Shell编程.ppt(62页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Unix Programming第三章 vi使用与Shell编程1Unix Programming1.vi 使用1.1 vi的启动例:$vi abc.txt最常用的格式,vi后跟欲编辑的文件名vi有搜索命令,可以用来浏览文本文件,比more,less等更方便.vi filenames2Unix Programming1.vi 使用1.2 vi的工作方式vi的工作方式分命令模式命令模式和输入模式输入模式。vi启动后就进入命令模式;命令模式输入模式i、a等命令按esc键3Unix Programming1.vi 使用1.2 vi的工作方式处于命令模式命令模式时,用户键入的内容被当作vi的命令来解释
2、,一般处于命令模式下按键无回显(以冒号打头的命令和查找命令除外)。编辑命令i,a等,可以从命令模式转到输入模式;处于输入模式输入模式时,用户键入的所有内容全部作为输入的正文内容,用户可以输入多行,每输入完一行后按回车键转入下一行,正文输入时有回显。输入完毕,按键盘左上角的esc键键,返回到命令模式。4Unix Programming1.vi 使用1.3 vi的编辑命令当vi处于命令模式命令模式时,用户的按键不回显,被解释成编编辑命令辑命令,vi大约有100多个编辑命令。下面介绍的vi命令子集,足可以完成一般的编辑任务。5Unix Programming1.vi 使用1.3 vi的编辑命令命令i
3、,在当前光标处插入(Insert)正文段,进入输入模式,直至按esc键返回命令模式;命令a,在当前光标后追加(Append)正文段,进入输入模式,直至按esc键返回命令模式;命令o,在当前行之下处插入(Open)新行,进入输入模式,直至按esc键返回命令模式;命令O,在当前行之上处插入(Open)新行,进入输入模式,直至按esc键返回命令模式。1.3.1 正文插入命令6Unix Programming1.vi 使用1.3 vi的编辑命令单字符移动h 光标左移一列j 光标下移一行k 光标上移一行l 光标右移一列多字符移动3h 光标左移3列10j 光标下移10行13k 光标上移13行20l 光标右
4、移20列1.3.2 光标移动命令7Unix Programming1.vi 使用1.3 vi的编辑命令B 向后翻页(Backward)F 向前翻页(Forward)U 向上翻半页(Up)D 向下翻半页(Down)1.3.3 翻页命令2B 向后翻2页(Backward)5F 向前翻5页(Forward)字母之前的“”表示Ctrl键可以实现翻多页在vi中,把向文件尾方向定义为“向前”,向文件头方向定义为“向后”,这与许多人的习惯不同。8Unix Programming1.vi 使用1.3 vi的编辑命令1.3.4 将光标移至当前行首1.3.5 将光标移至当前行尾$1.3.6 移到右一个单词 w W
5、1.3.7 移到左一个单词 b B小写命令的w和b,以非字母、数字、下划线之外的所有字符作为“单词”分界符。大写命令的W和B,以空白符作为“单词”分界符。w、W、b、B也可以使用5w、10W、3b、13B形式的命令9Unix Programming1.vi 使用1.3 vi的编辑命令:123 将光标定位到第123行:$将光标定位到文件末尾:$-10 将光标定位到文件倒数第10行:.10 将光标向下移10行1.3.8 将光标移动到指定行“$”代表文件末尾而“.”代表当前行;都可以使用“+”或“-”进行相对的位移光标(“+”可以省略)。10Unix Programming1.vi 使用1.3 vi
6、的编辑命令先把光标移到一个大括号(或括号,或方括号)上,按%键,则光标自动定位到与它配对的那一个括号,对编写和检查C语言的源程序非常有用。1.3.9 括号匹配命令%11Unix Programming1.vi 使用1.3 vi的编辑命令1.3.10 删除命令x删除光标所在的字符5x删除光标所在开始的5个字符dd删除当前行4dd删除当前行开始的4行d$从当前光标处删除到行尾d从当前光标处删除到行首dw删除一个单词12Unix Programming1.vi 使用1.3 vi的编辑命令1.3.11 字符替换命令r替换光标处字符的命令R替换多个字符的命令例:rararbrc表示什么意思?例:Rabc
7、然后按“esc”键从当前光标开始的字符依次替换为abc13Unix Programming1.vi 使用1.3 vi的编辑命令1.3.12 取消和重复命令u取消上次的命令(undo).重复执行上次的命令14Unix Programming1.vi 使用1.3 vi的编辑命令1.3.13 段落的删除、复制、粘贴和移动命令dd 行删除命令(delete)co 段落的复制命令(copy)m 段落的移动命令(move)例::11,13dd例::11,13co15例::11,13m15删除11至13行复制11至13行到15行后移动11至13行到15行后15Unix Programming1.vi 使用1
8、.3 vi的编辑命令1.3.13 剪贴板功能d 行删除命令(delete)y 抽取命令(yank)p 粘贴命令(paste)例::11,13d例::11,13y例:p删除11至13行复制11至13行用法同“d”命令将“d”或“y”操作的行粘贴到当前光标处16Unix Programming1.vi 使用1.3 vi的编辑命令1.3.14 查找命令/查找“/”后面跟的内容 例:/abc在文章中查找“abc”n向后查找N向前查找“n”和“N”命令必须在“/”命令之后执行17Unix Programming1.vi 使用1.4 vi的文件命令ZZ保存文件并退出vi编辑状态:wq保存文件并退出vi编辑
9、状态:w只保存文件而不退出vi编辑状态:q!不保存文件而强行退出vi编辑状态:r filename读入filename文件内容到当前行18Unix Programming2.Shell 编程2.1 什么是ShellShell是一个命令行解释器,为系统解释用户的操作命令;Shell是用户使用UNIX系统的桥梁;Shell既是一种命令语言,又是一种程序设计语言;19Unix Programming2.Shell 编程2.2 什么是Shell编程Shell编程是利用判断、流程控制等方法把多个Shell命令有机的组织成Shell脚本;Shell脚本类似于Windows系统中的批处理程序,通过执行She
10、ll脚本来完成一系列Shell命令;例:#!/bin/sh#Name:echohello.sh#Usage:print Hello,World#Author:Gene#Date:2005-03-18#echo Hello,World!20Unix Programming2.Shell 编程2.3 Shell脚本的执行脚本文件本身是一个文本文件文本文件,不可能直接执行。当脚本文件具有可执行属性,用户将它执行的时候,系统会启动shell程序文件/bin/sh,运行/bin/sh文件中的CPU指令来解释执行脚本文件中的命令。脚本文件的第一个命令需要指明Shell命令解释程序:#!/bin/sh,“#
11、!”必须出现在本文的最开头。21Unix Programming2.Shell 编程2.3 Shell脚本的执行三种方法可以执行脚本文件例:$sh,ls-l ls.txtls.txt ls-l/home/user1 ls-l/home/user1 ls.txtls.txt ls-l/home/user1 ls-l/home/user1 ls.txtls.txt Unix Programmingshellshell输入输出重定向输入输出重定向重定向符表示将标准输入从键盘重新定义到另外的流。重定向符表示将标准输入从键盘重新定义到另外的流。例如:例如:progprog infileinfile,即即
12、progprog命令将从文件命令将从文件infileinfile中读取参数。中读取参数。执行一个执行一个shellshell程序也可以使用这种方式。例如程序也可以使用这种方式。例如 shsh user1.sh user1.sh 就表示要执行就表示要执行user1.shuser1.sh这个这个shellshell程序。程序。重定向符重定向符,也能够混合使用,例如:也能够混合使用,例如:progprog outfileoutfile 表示表示progprog命令从命令从infileinfile中获取命令中获取命令参数,然后将执行结果输出到文件参数,然后将执行结果输出到文件outfileoutfil
13、e中。中。Unix Programming错误流重定向错误流重定向 在在UNIXUNIX系系统统中中,错错误误信信息息流流是是指指在在命命令令或或程程序序执执行行中中出出现现错错误误时时系系统统给给出出的的提提示示或或警警告告信信息息,UNIXUNIX中中将将它它们们作作为为一一个个独独立立的的标标准准输输出出流流进进行行定定义义,错错误误信信息息流流通通常常定定义义为为显显示示器器。当当然然,用用户户也也可可以以根据需要对它进行重定向。不同的根据需要对它进行重定向。不同的shellshell在这方面有所不同。在这方面有所不同。CshellCshell中使用的错误流重定向符是:中使用的错误流重
14、定向符是:&,&,例如:例如:cc cc abc.cabc.c&log.txt,&log.txt,即将编译过程中的输出流和错即将编译过程中的输出流和错误流定向为误流定向为log.txtlog.txt文件。文件。在在BshellBshell中则不用,需要如下书写:中则不用,需要如下书写:cc cc abc.cabc.c 2&1 log.txt 2&1 log.txtUnix Programming管道线处理管道线处理 管管道道线线可可以以实实现现将将一一个个程程序序或或命命令令的的输输出出作作为为另另外外一一个个程程序序或或命命令令的的输输入入,管管道道线线作作为为两两个个命命令令之之间间的的分
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- vi 使用 Shell 编程

限制150内