我资源里面有Word文件,可以直接下载
Vi编辑器使用和Shell程序设计
一、实验目的
1. 了解vi编辑器的基本功能和shell的作用和主要分类;
2. 掌握vi编辑器建立、编辑、显示及加工处理文本文件;
3. 掌握握bash的建立和执行方式、bash的基本语法和编写shell脚本。
二、课程目标
1. 具备基本的Linux系统配置和管理能力、vi编辑器的使用和shell内核应用,可以上述工具解决一些工程问题;
2. 能够选择和使用恰当的技术和工具开展Linux系统开发、方案设计、工程实现和综合评价等工程实践活动,具备一定的Linux系统开发能力。
三、实验任务
1. 利用文本插入方式建立一个文件;
2. 在新建的文本文件上移动光标位置;
3. 对该文件执行删除、复原、修改、替换等操作;
4. shell脚本的建立和执行;
5. 历史命令和别名定义;
6. shc11变量和位置参数、环境变量;
7. bash的特殊字符。
四、实验要求
1. 每个实验设计要求截图保存;
2. 在学习通上传电子版报告。
五、实验设计(具体内容根据课程实验特点要求,如算法流程图、核心代码等)
1. 在当前目录新建software子目录,利用vi编辑器在此文件夹下新建paper1文件,在该文件下输入“I am a student of software college”,并保存该文件;
2. 运行man date> file10,然后运行vi file10,使用x, dd等命令删除某些文本行,使用u命令复原此前的情况,使用C, r, S等命令修改文本内容,使用检索命令进行给定模式的检索;
3. 编写可执行命令exam2,该命令依次执行:建立hardware目录,进入hardware目录,显示当前目录、显示时间。Shell下可直接执行 $ exam2命令;
4. 利用vi建立一个脚本文件,其中包括date, cal, pwd, Is等常用命令,然后以不同方式执行该脚本;
5. 运行history命令, 配置历史命令环境;
6. 体会bash的命令补齐功能;
7. 用alias定义别名,然后执行;
8. 从键盘上读取周一到周五的完整单词,并在显示屏上只显示周二和周四;
9. 对思考题4.8进行编辑然后执行;
10. 对思考题4.14进行编辑然后执行;
11. 对思考题4.18进行编辑, 然后执行;
12. 运行例4.20的程序,若取消其中的"eval",会出现什么情况?
六、实验结果
1. 在当前目录新建software子目录,利用vi编辑器在此文件夹下新建paper1文件,在该文件下输入“I am a student of software college”,并保存该文件;
2. 运行man date> file10,然后运行vi file10,使用x, dd等命令删除某些文本行,使用u命令复原此前的情况,使用C, r, S等命令修改文本内容,使用检索命令进行给定模式的检索;
3. 编写可执行命令exam2,该命令依次执行:建立hardware目录,进入hardware目录,显示当前目录、显示时间。Shell下可直接执行 $ exam2命令;
4. 利用vi建立一个脚本文件,其中包括date, cal, pwd, Is等常用命令,然后以不同方式执行该脚本;
5. 运行history命令, 配置历史命令环境;
6. 体会bash的命令补齐功能;
7. 用alias定义别名,然后执行;
8. 从键盘上读取周一到周五的完整单词,并在显示屏上只显示周二和周四;
9. 对思考题4.8进行编辑然后执行;
10. 对思考题4.14进行编辑然后执行;
11. 对思考题4.18进行编辑, 然后执行;
12. 运行例4.20的程序,若取消其中的"eval",会出现什么情况?
七、思考题
1. 进入和退出w的方法有哪些?
在使用Vi [filename]之后,进入的是一般指令模式。此时键盘输入i ,即可进入编辑模式。此时能对文件内容进行修改。在编辑完成后使用Esc 按键退出编辑模式。此时回到的还是一般指令模式!若想保存编辑内容并到Linux终端,则需要输入 :wq 注意这里的冒号一定要记得输入!!不想保存并退出可以输入 :q
2. 在vi之下,上、下、左、右移动光标的方式有哪些?
h 光标左移, 如果在按h 命令前输入数字n ,则光标左移n 个字符;
l 光标右移 ,如果在按l 命令前输入数字n, 则光标右移n 个字符;
j 光标上移, 如果在按j 命令前输入数字n, 则光标上移n 个字符;
k 光标下移, 如果在按k 命令前输入数字n ,则光标xia 移n 个字符;
0 (零) 光标移到行首;
$ 光标移到行尾;
H 光标移到屏幕上显示的第一行 (并不一定是文件头);
L 光标移到屏幕上显示的最后一行 (并不一定是文件尾);
M 光标移到屏幕的中间一行;
nG 光标移到第 n 行;
w或W 将光标右移至下一个单词的词首;
e 或E 如果光标起始位置处于单词内(即非单词尾处),则该命令将把光标移到本单词词尾;如果光标起始位置处于单词尾,则该命令将把光标移动到下一个单词的词尾。
b 或B 如果光标处于所在单词内(即非单词首),则该命令将把光标移至本单词词首;如果光标处于所在单词的词首,则该命令将把光标移到上一个单词的词首;
Ctrl+G 状态命令, 显示当前编辑文档的状态。包括正在编辑的文件名、是否修改过、当前行号、文件的行数以及光标之前的行占整个文件的百分比。
此外 ,也可以通过以下末行模式下的命令完成光标在整个文件中的移动操作:
:n 光标移到文件的第n 行;
:$ 光标移到文件的最后一行;
3. 如果希望进入vi后光标位于文件的第10行上,应输入什么命令?
10G
4. 说明三种引号的作用有什么区别。
字符串,变量,表达式
……
八、总结(本次实验的经验教训,遇到的问题及解决方法,待解决的问题等)
刚开始因为粗心输入导致运行结果出错,后来经过查找原因意识到,变量名称只能是英文字母与数字,但是开头字符不能是数字, 通过本次实验,我基本了解shell的特点和主要种类并掌握shell脚本的建立和执行方式。也是我意识到遇到不懂得问题,要积极主动去解决问题,可以通过上网查找或向老师和同学求助解决方法