实验四、重定向和管道与vi编辑器使用
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验四、管道和重定向与vi编辑器应用
一、实验目的
1、学习如何使用Linux的输入/输出重定向和管道操作
2、学会使用vi编辑器进行文本编辑。
二、实验重点与难点
1、重定向和管道的区别和使用方法
2、Vi编辑器的运行模式切换方法。
3、使用vi编辑器进行文本编辑。
三、实验内容及步骤
1、将命令ls –l的输出结果重定向到文件list中,而不是从屏幕显示。
2、使用wc -l命令统计list文件中有多少行?
3、使用vi编辑器编辑list文件,删除文件的10行,然后保存退出,在使用wc –l 命令统计list文件还有多少行,验证你删除的正确性。
4、将cat kkk 的错误输出结果重定向到文件error.log。然后查看error.log内容。
5、创建两个空文件file1、file2,使用vi编辑器给file1和file2添加文本内容并保存,利用重定向功能实现将文件file1与file2的内容写到文件file3中。
6、使用管道符号和tee命令实现将文件/etc/passwd内容即显示在屏幕上,同时又输出到另一个文件file4中。
7、使用管道实现,统计出ls –l显示当前目录列表中有多少行,字数,词数?
8、找出根目录下的info文件并将结果输出到info.out文件中,将错误输出到info.error文件中。即从屏幕上看不到任何输出,分别查看两个文件的内容。
9、自定义一个变量等于“echo little girl”,并将little girl通过自定义变量显示出来。
10、给命令mv –i定义别名,并可以执行。自己尝试给其他的命令定义别名。
11、删除刚才定义的别名。
12、通过实验比较重定向符号> 、>> 、2> 、&> 各自的作用。
13、练习vi编辑器三种模式的切换。
✧从命令模式切换到文本插入模式;
✧从文本插入模式切换到命令模式;
✧从命令模式切换到命令行模式;
✧从命令行模式切换到命令模式。
14、练习vi编辑器命令模式下的命令应用。
四、知识点补充
重定向符说明
< 实现输入重定向
<<分隔符……分隔符实现输入重定向的特例,即here文档。分格符必须成对出现,它可以是任何字符.
>或>> 实现输出重定向、输出追加重定向
2>或2>> 实现错误重定向
&> 同时实现输出重定向和错误重定向
vi详细指令表:
(一)、基本编辑指令:
新增 (append)
a :从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。
A:从光标所在列最後面的地方开始新增资料。
插入 (insert)
i:从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。
I :从光标所在列的第一个非空白字元前面开始插入资料。
开始 (open)
o :在光标所在列下新增一列并进入输入模式。
O: 在光标所在列上方新增一列并进入输入模式。
x:删除光标所在字符。
dd :删除光标所在的列。
r :修改光标所在字元,r 後接著要修正的字符。
R:进入取替换状态,新增文字会覆盖原先文字,直到按 [ESC] 回到指令模式下为止。
s:删除光标所在字元,并进入输入模式。
S:删除光标所在的列,并进入输入模式。
(二)、光标移动指令:
由於许多编辑工作是藉由光标来定位,所以 vi 提供许多移动光标的方式,这个我们列几张简表来说明(这些当然是指令模式下的指令):
0 移动到光标所在列的最前面;
$ 移动到光标所在列的最後面
[CTRL][d] 向下半页
[CTRL][f] 向下一页
[CTRL][u] 向上半页
[CTRL][b] 向上一页
指令说明
H 移动到视窗的第一列
M 移动到视窗的中间列
L 移动到视窗的最後列
b 移动到下个字的第一个字母
w 移动到上个字的第一个字母
e 移动到下个字的最後一个字母
^ 移动到光标所在列的第一个非空白字元
指令说明
n- 减号移动到上一列的第一个非空白字元前面加上数字可以指定移动到以上 n 列
n+ 加号移动到下一列的第一个非空白字元前面加上数字可以指定移动到以下 n 列
nG 直接用数字 n 加上大写 G 移动到第 n 列
指令说明
/string 往右移动到有 string 的地方
?string 往左移动到有 string 的地方
n 配合 / string 使用,重复一次
N 配合 / string 使用,反方向重复一次
(三)、更多的编辑指令
这些编辑指令非常有弹性,基本上可以说是由指令与范围所构成。例如 dw 是由删除指令 d 与范围 w 所组成,代表删除一个字 d(elete) w(ord) 。
指令列表如下:
d 删除(delete)
y 复制(yank)
p 放置(put)
c 修改(change)
范围可以是下列几个:
e 光标所在位置到该字的最後一个字母
w 光标所在位置到下个字的第一个字母
b 光标所在位置到上个字的第一个字母
$ 光标所在位置到该列的最後一个字母
0 光标所在位置到该列的第一个字母
) 光标所在位置到下个句子的第一个字母
( 光标所在位置到该句子的第一个字母
} 光标所在位置到该段落的最後一个字母
{ 光标所在位置到该段落的第一个字母
说实在的,组合这些指令来编辑文件有一点点艺术气息。不管怎麽样,它们提供更多编辑文字的能力。值得注意的一点是删除与复制都会将指定范围的内容