分类: LINUX
2010-01-10 12:59:04
ed
ed 编辑器是 Linux 操作系统下最简单的文本编辑器。它是以行为单位对文件进行编辑不像 MS-DOS 系统下的 edit 那样是以整个屏幕框架为单位对文件进行编辑的。
ed编辑器有两个状态:命令行状态和编辑状态。前者接收输入的ed命令也是默认启动状态,后者对文件以行为单位进行编辑,下面开始学习。
**新建一个文件testNew:
*方法1,先指定文件名,输入过程如下:
$ls
$ed testNew
testNew: No such file or directory <==此处是输出,表示一个不存在的文件。
w
0 <==此处是输出,表示写了0个字符。
q
$ ls
testNew <==此处是输出,可见多了一个新的空文件。
这里,w表示写命令,q退出,后面会提到。如果没有w那么q之后也不会建立新的文件。
*方法2,写时再指定名字,输入过程如下:
$ls
testNew <==此处是输出,只有刚才新建的文件。
$ed
w
? <==此处是输出,?表示有问题,或命令不识别或别的,此处是缺少文件名。
w
? <==此处是输出,同上。
w testNew2
0 <==此处是输出,表示写了0个字符。
q
$ls
testNew testNew2 <==此处是输出,可见多了一个新的空文件testNew2。
这里,因为是一个新文件,所以如果一直w且没输入文件名的话,会一直提示,直至你指定了一个文件名。如果在w testNew2之前按q将直接退出,这样也不会建立这个新文件了。
**
**编辑已存在的文件:
*编辑文件testNew
$ed testNew
0 <==此处是输出,表示读了0个字符。
这里,默认进入的是命令状态,你可以输入任何命令进行编辑文件。按q退出。
*命令行状态常用命令:
a <==在文件的末尾添加新内容。
i <==在文件的最后一行之前插入新内容。
o <==把文件输入的最后一行(不论是原来存在的或者插入的)替换成新内容。
. <==退出编辑文件模式进入命令行模式(注意:此时并没有退出 ed 编辑器)。
w <==保存文件,如果指定一个名称表示另存为的意思,这就不改变当前文件了。
q <==退出 ed 编辑器,如果没有w则提示?,再次q就非保存退出了。
Q <==相当强制退出,无论保存与否。
**
*新建一个文件并编辑的流程举例:
$ ed
a <==输入a告诉 ed 我要编辑新文件
My name is QuietHeart. <==输入第1行内容
And I love ed very much. <==输入第2行内容
. <==输入.返回 ed 的命令行状态
i <==输入i告诉 ed 我要在最后一行之前插入内容
I am 25. <==输入,将“I am 25.”插入“My name is ...”和“And I love...”间.
. <==输入.返回 ed 的命令行状态
c <==输入c告诉 ed 我要替换最后一行输入内容
I am 25 years old. <==输入,将“I am 25.”替换成“I am 25 years old.”
.w <==输入,一个误操作,结果成了输入了。
q <==输入,由于前面一个误操作,结果成了输入了。
. <==输入.,这才返回 ed 的命令行状态,而不是前面.w
w testNew <==输入,将文件命名为“testNew”保存(如果已存在文件,只需要敲入 w否则会覆盖)
72 <==这里是输出,表示写入的字符数。
q <==输入q完全退出 ed 编辑器
下面,我们来看看刚刚新建的文件的内容:
$ cat testNew
输入之后,输出如下:
My name is QuitHeart.
I am 25 years old.
.w
q
And I love ed very much.
这里,我几乎都用到了前面给出的常用命令,我们可以了解ed最最简单的使用了,后面再说一些其它实用的命令。
常用的命令
*打印所有行:
%p
*打印所有行并且显示行号:
%n
*打印当前行:
.p
*打印当前行并且显示行号:
.n
*跳到第3行:
3
*显示并切换到下一行:
+
下两行则++
*显示并切换到上一行:
-
上两行则--
*退出:
q
这里如果没有保存则第一次退不出去,再q就退出但没有保存。
*强制退出:
Q
不会保存。