2012学年—2013学年第 二 学期 Linux应用 实验任务书
专业名称: 信息管理与信息系统 班 级:
姓 名: 学 号:
实验题目: 实验三 Vi编辑器的基本使用
实验环境: Red Hat Linux 9
实验目的:
1.通过Vi 操作练习,能够熟练使用 Vi 中的常见操作,并且熟悉 Vi 的3种模式。
2.熟悉shell的各项功能。
实验步骤:
1.熟悉Shell环境,使用Shell的各种功能
1)命令补齐功能
●用date命令查看系统当前时间,在输入da后,按tab键,让shell自动补齐命令的后半部分。
按tab键自动补齐:
●用mkdir命令创建新的目录。首先输入第一个字母m,然后按tab键,由于以m开头的命令太多,shell会提示是否显示全部的可能命令,输入n。
●再多输入一个字母k,按tab键,让shell列出以mk开头的所有命令的列表。
●在列表中查找mkdir命令,看看还需要多输入几个字母才能确定mkdir这个命令,然后输入需要的字母,再按tab键,让shell补齐剩下的命令。
●最后输入要创建的目录名,按回车键执行命令。
●多试几个命令利用tab键补齐。
到a可以补齐
到p可以补齐
2)命令别名功能
●输入alias命令,显示目前已经设置好的命令的别名。
●设置别名ls为ls –l,以长格形式显示文件列表:
●显示别名ls代表的命令,确认设置生效:
●使用别名ls显示当前目录中的文件列表。
●删除别名ls:#unalias ls。
●显示别名ls,确认删除别名已经生效:
●最后再用命令ls 显示当前目录中的文件列表。
3)输入、输出重定向和管道
(1) 输入/输出重定向
●用ls命令显示当前目录中的文件列表:
●使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中:
●查看文件list中的内容:
●再次使用输出重定向,把ls命令在终端上显示的当前目录中的文件列表重定向到文件list中。这次使用管道符号>>进行重定向:
●查看文件list的内容,可以看到用>>进行重定向是把新的输出内容附加在文件的末尾:
●重复命令#ls –l > list。
●再次查看文件list中的内容,和前两次的结果相比较,完成课后第一题。
(2)管道
●利用管道和grep命令,在上面建立的文件list中查找字符串list:
●利用管道和wc命令,计算文件list中的行数、单词数和字符数:
行数:
单词数:
字符数:
2.Vi编辑器
运行编辑器vi。
1)在“/root”目录下建一个名为“/Vi”的目录
2)进入“/Vi”目录。
3)在vi中编写一个abc.c程序(见下页)
4)设定行号。
5)将光标移到第6行。
6)复制该行内容。:
7)将光标移到倒数第二行行首。
8)粘贴复制行的内容。
:
9)撤销第8步的动作。
10)删除该行。
删除了第六行
11)存盘但不退出。
12)将光标移到首行。
13)插入模式下输入“Hello,this is Vi world!”。
14)返回命令行模式。
15)向下查找字符串“int”
16)再向上查找字符串“stdio”。
17)强制退出 Vi,不存盘。
/* 一个解决“鸡兔同笼”问题的源程序abc.c */
#include main( ) { int h,f; int x,y; printf("请输入头数和脚数:"); scanf("%d,%d",&h,&f); x=(4*h-f)/2; y=(f-2*h)/2; printf("鸡=%d 兔子=%d",x,y); } 实验中的问题及解决办法: 1.用alias命令设置别名的时候,一开始直接就打了命令的名称,出现了不是命令的错误,应该在原命令的外面加上‘ ’说明那是一个命令。 2.在执行复制代码行的命令时,经常弄不清是在哪个模式下输入,命令模式和插入模式经常搞混。需要经常切换。 3.在本次试验中,主要了解了一些有关于文件和代码的操作。以前对于虚拟机上的代码编写只能是逐个操作,现在知道了可以逐行操作,更加方便快捷。 思考题: 1.输出重定向>和>>的区别是什么? 答:>是将内容重定向输出到某个文件中,若有新的内容重定向输出到同一个文件,则新的内容会替代原来的内容。 》也是将内容重定向到某个文件中,但若有新的内容重定向输出到同一个文件,则新的内容会接在原来内容的尾部。 区别就是》不替代原有内容,只是接着往下输出,而>会替代原来的内容。