《操作系统(linux)》实验指导书
实验一 Vi编辑器的使用
一、 实验目的
● 理解Vi的三种运行模式及切换方法;
● 学会使用Vi的各种操作命令进行文本文件的编辑;
● 用Vi编写Linux下C程序,会用gcc编译。
二、 实验工具
一台装有Linux的机器(这里默认是Red Hat Linux 9),系统里面有gcc编译器。
三、 预备知识
介绍一些常见的实验命令,相关说明可以参考本实验参考资料部分。
1、进入插入模式
命令 i 从光标所在位置前开始插入文本;
命令a 在光标当前所在位置之后追加新文本;
命令o 将在光标所在行的下面新开一行,并将光标置于该行行首,等待输入文本;
2、编辑模式下操作
命令h、j、k、l 进行光标左移、下移、上移和右移一个字符的定位;
命令x 删除光标处字符;
命令yy 将当前行的内容复制到缓冲区中;
命令p 将缓冲区中的内容写到光标所在的位置;
命令zz 存盘退出;
3、命令模式下操作
命令:n 直接跳到n所指向的行(n指行号);
命令:q 退出vi;
四、基本实验
首先用合法用户名登陆系统。
1. 不保存直接退出
(1) 在系统提示符下,输入vi,按回车键。
(2) 我们会看到vi的界面。
(3) 输入:q!不保存直接退出。
2. 新建文件hello.c并编辑一段文字进行保存
(4) 在系统提示符下输入vi hello.c,按回车键。
(5) 看到vi的界面,输入i,左下角会出现“插入”。
(6) 输入一段文字。
(7) 按Esc键,进入命令模式。这时“插入”就不见了。
(8) 输入:wq,按回车键,保存文件。
3. 对文件hello.c进行增、删、改操作
(9) 在系统提示符下输入vi hello.c,按回车键。
(10) 看到vi的界面。输入i,进入插入模式。
(11) 输入增加的文字:“vi is very easy to user~!”。
(12) 用方向键将光标移到图文字行的任意处。
(13) 按Esc键,进入命令模式。
(14) 输入命令dd,删除光标所在一行(若连续输入d,d是将光标所在的行及以下所有行删除)。
(15) 用方向键将光标移到very的v处,按Esc键,进入命令模式,输入命令2x,查看结
果。
4. 对文件hello.c进行复制、粘贴操作
(16) 接着步骤14继续做。
(17) 输入命令2yy,进行复制。
(18) 将光标移动到“vi is very easy to user~!”。
(19) 按Esc键,进入命令模式。
(20) 输入p,完成粘贴,查看结果。
5. 在file文件中进行字符串搜索、替换操作。
(21) 接着19步骤继续
(22) 输入“:/is”,按回车键,查看结果。
五、 程序实验
用vi编辑器来编写一个简单的程序。
步骤 1、输入vi,进入vi编辑器。
2、编写程序代码如下:
#include “stdio.h”
main()
{int i,sum=0;
for(i=1,i<=10;i++)
sum+=i;
printf(“sum=%d\n”,sum);
}
3、按Esc键,进入命令模式。
4、输入“:w sum.c”。
5、按Esc键,进入命令模式,并输入“:q”,退出vi编辑器即可。
6、输入“gcc -o sunm sum.c”,进行编译。
7、若成功则不会有任何信息,反之,系统会报错。若成功,则输入“./sum”,就可得到结果。
8、将10替换为每个同学的学号的最后三位数字,重新编译,查看结果。
六、 参考资料内容
1、 vi编辑器的三种运行模式
vi有三种基本工作模式:编辑模式、插入模式、命令模式(也称末行模式)。
在系统提示符($或#)后输入vi和想要编辑或建立(该文件存在是编辑,否则是建立)的文件名,便可进入vi。如果只输入vi也可以进入vi,但是在退出时需要在退出命令后输入文件名。
进入vi后即进入编辑模式,进入编辑模式后,vi等待编辑命令输入而不是文本输入,这时输入的字母都将作为编辑命令来解释。
在编辑模式下输入插入命令i、附加命令a、打开命令o、修改命令c、取代命令r或替换命令s都可以进入插入模式。在插入模式下,用户输入的任何字符都被vi当作文件内容保存起来,并显示在屏幕上。在文本输入过程中,如果想回到命令模式,按Esc键即可。
在编辑模式下输入“:”即可进入命令模式,此时vi会在显示窗口的最后一行显示一个“:”作为命令模式的提示符,等待用户输入命令。末行命令执行完后,vi自动回到编辑模式。
若在命令模式的输入命令过程中改变了主意,可用退格键讲输入的命令全部删除后,再按一下退格键,即可回到编辑模式。
2、 常见的实验命令
(1) 编辑模式下的操作
① 光标定位如下:
命令 | 说明 |
h,j k,l | 分别用于光标的左移,下移,上移,右移一个字符。 |
Ctrl+b | 将屏幕向文件首方向翻滚一整屏,即PageUp |
Ctrl+f | 讲屏幕向文件尾方向翻滚一整屏,即PageDown |
H | 讲光标移到当前屏幕首行的行首(即左上角) |
nH | 讲光标移到当前屏幕第n行的行首 |
O | 移动至光标所在行的行首 |
$ | 移动至光标所在行的行尾 |
② 替换和删除
命令 | 说明 |
rc | 用字符c替换光标所指向的第一个字符(非空格) |
nrc | 用字符c替换光标所指向的前n个字符 |
x | 删除光标处的字符 |
nx | 删除光标所在位置开始向右n个字符 |
dd | 删除光标所在的整行 |
ndd | 删除光标所在的整行及其后n-1行的内容 |
③ 复制和粘贴命令
命令 | 说明 |
yy | 讲当前行的内容复制到缓冲区中 |
nyy | 讲当前开始的n行内容复制到缓冲区 |
p | 讲缓冲区中内容写出到光标所在的位置 |
④ 撤销和重复
命令 | 说明 |
u | 取消前一次的误操作或不合适的操作对文件造成的影响,使之恢复到这种操作被执行前的状态 |
再执行一次前面刚完成的某个复杂的命令 | |
⑤ 退出
命令 | 说明 |
ZZ | 存盘退出 |
ZQ | 作废退出 |
(2) 命令模式下的操作
① 跳行
命令 | 说明 |
:n | 直接输入要移动到的行号 |
② 退出
命令 | 说明 |
:q | 退出vi |
:wq | 保存退出vi |
:q! | 不保存退出vi |
③ 文件相关
命令 | 说明 |
:w | 讲当前编辑的内容存盘 |
:w file | 讲当前编辑的内容写到file文件中 |
:n1,n2w file | 讲从n1行开始到n2行结束的行写到file文件中 |
:r file | 打开另一个文件file |
:e file | 新建file文件 |
:f file | 把当前文件改名为file文件 |
④ 字符串搜索、替换、删除
命令 | 说明 |
:/str/ | 从当前光标开始往右移动到有str的地方 | linux系统vim编辑器
:? str? | 从当前光标开始往左移动到有str的地方 |
:/str/w file | 将包含有str的行写到文件file中 |
:/str/,/str2/w file | 讲从str1开始到str2结束的内容写到文件file中 |
:s/str1/str2/ | 将第一个str1替换为str2 |
:s/str1/str2/g | 将所有的str1替换为str2 |
:. , $ s/str1/str2/g | 将从当前位置到结尾的所有的str1替换为str2 |
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论