UNIX基本的知识(5)

2019-06-04 22:26

Aqiaqia * Application

..取消前一动作(Undo) ===================

即复原执行上一指令前的内容。

u 恢复最后一个指令之前的结果。 U 恢复游标该行之所有改变。

..搜寻 =====

在vi中可搜寻某一字串,使游标移至该处。

/字串 往游标之后寻找该字串。 ?字串 往游标之前寻找该字串。 n 往下继续寻找下一个相同的字串。 N 往上继续寻找下一个相同的字串。

..资料的连接 ===========

J 句子的连接。将游标所在之下一行连接至游标该行的后面。

若某行资料太长亦可将其分成两行,只要将游标移至分开点,进入输入模式 (可利用 a、i等指令)再按《Enter》即可。

..环境的设定 ===========

:set nu 设定资料的行号。 :set nonu 取消行号设定。 :set ai 自动内缩。

:set noai 取消自动内缩。

自动内缩(automatic indentation)

在编辑文件或程式时,有时会遇到需要内缩的状况,『:set ai』即提供自 动内缩的功能,用下例解释之: .vi test

.(进入编辑视窗后)

this is the test for auto indent

《Tab》start indent ← :set ai (设自动内缩) 《Tab》data 《Tab》data

《Tab》data ← :set noai (取消自动内缩) the end of auto indent.

.注: 可删除《Tab》字元。

..ex指令

21

Aqiaqia * Application

======= 读写资料

:w 将缓冲区的资料写入磁盘中。

:10,20w test 将第10行至第20行的资料写入test文件。

:10,20w>>test 将第10行至第20行的资料加在test文件之后。 :r test 将test文件的资料读入编辑缓冲区的最后。

删除、复制及搬移

:10,20d 删除第10行至第20行的资料。 :10d 删除第10行的资料。 :%d 删除整个编辑缓冲区。

:10,20co30 将第10行至第20行的资料复制至第30行之后。 :10,20mo30 将第10行至第20行的资料搬移至第30行之后。

字串搜寻与取代

s(substitute)指令可搜寻某行列范围。

g(global)指令则可搜寻整个编辑缓冲区的资料。

s指令以第一个满足该条件的字串为其取代的对象,若该行有数个满足该条 件的字串,也仅能取代第一个,若想取代所有的字串则需加上g参数。 :1,$s/old/new/g 将文件中所有的『old』改成『new』。

:10,20s/^/ / 将第10行至第20行资料的最前面插入5个空白。 :%s/old/new/g 将编辑缓冲区中所有的『old』改成『new』。

..恢复编辑时被中断的文件 =======================

在编辑过程中,若系统当掉或连线中断,而缓冲区的资料并还未 被写回磁盘时,当再度回到系统,执行下列指令即可回复中断前 的文件内容。 %vi -r filename

..编辑多个文件 =============

vi亦提供同时编辑多个文件的功能,方法如下: %vi file1 file2 ..

当第一个文件编修完成后,可利用『:w』将该缓冲区存档,而后 再利用 『:n』载入下一个文件。

vi命令详解

vi全屏幕编辑器

22

Aqiaqia * Application

vi(Visual)是以视觉为导向的全屏幕编辑器、共分为三种方式(mode): command方式:

?任何输入都会作为编辑命令,而不会出现在屏幕上,若输入错误则有“岬”的声音;任何输入

?都引起立即反映

insert方式:

?任何输入的数据都臵于编辑寄存器。在command方式下输入(I,a,A等),可进入insert方式,??insert方式下按ESC,可跳回command方式。

escape方式: 以“:”或者“/”为前导的指令,出现在屏幕的最下一行,任何输入都被当成特别指令。

进入vi(在系统提示符下面输入以下指令):

vi ????????? 进入vi而不读入任何文件

vi filename????? 进入vi并读入指定名称的文件(新、旧文件均可)。 vi +n filename????进入vi并且由文件的第几行开始。 vi +filename ???? 进入vi并且由文件的最后一行开始。 vi + /word filename ?进入vi并且由文件的word这个字开始。 vi filename(s) ??? 进入vi并且将各指定文件列入名单内,第一个文件先读入。 vedit???????? 进入vi并且在输入方式时会在状态行显示“INSERT MODE\。

编辑数个文件(利用vi filename(s))进入vi后) :args ????????显示编辑名单中的各个文件名 :n??????????读入编辑名单中的下一个文件 :rew?????????读入编辑名单中的第一个文件 :e#????????? 读入编辑名单内的前一个文件

:e file ???????读入另一个文件进vi(此文件可不在编辑名单内),若原文件经修改还没有存档,则???????????应先以: w 存档。

:e! file???????强迫读入另一个文件进入vi,原文件不作存档动作。

存储及退出vi

:w filename????? 存入指定文件,但未退出vi(若未指定文件名则为当前工作的文件名)。

:wq 或者 :x或者zz?? 存文件,并且退出vi. :q??????????不作任何修改并退出vi。 :q!????????? 放弃任何修改并退出vi。

:!command?????? 暂时退出vi并执行shell指令,执行完毕后再回到vi。 :sh????????? 暂时退出vi到系统下,结束时按Ctrl + d则回到vi。

23

Aqiaqia * Application

加数据指令

i?????????? 在关标位臵开始插入字符,结束时候按ESC键。 I?????????? 在光标所在行的最前面开始加字,结束时按ESC键。 a?????????? 在光标位臵后开始加字,结束时按ESC键。

A?????????? 在光标所在行的最后面开始加字,结束时按ESC键。 o?????????? 在光标下加一空白行并开始加字,结束时按ESC键。 O?????????? 在光标上加一空白行并开始加字,结束时按ESC键。 !command???????执行shell指令,并把结果加在光标所在行的下一行。

删除指令

nx??????????删除由光标位臵起始的表示删除光标所在的字符) nX ????????? ndw????????? d0 ????????? d$ 或D ??????? ndd ?????????将光标位臵起始的在行)。

:start,endd?????

关标移动

0 ??????????移到一行的开始 $ ??????????移到一行的最后 [?????????? ]?????????? nh??????????往左移 nl或者spacebar ??? nk??????????向上移 n+??????????向上移 ni ????????? n-??????????向下移 H?????????? M?????????? L?????????? G?????????? nG或者:n???????移到文件的第 nw??????????右移 nW??????????右移 nb??????????左移 nB??????????左移

Ctrl + u???????屏幕上卷半个菜单 Ctrl + d ?????? Ctrl + b ??????n个字符(含光标位臵,按一个x删除由光标位臵起始的n个字符(不含光标位臵)。 删除光标位臵其实的n个字符组(word)。 将行的开始到光标位臵的字符全部删除。 将光标位臵起始到行尾的字符全部删除。

n行(整行)删除(dd表示删除光标所 删除文件的第start到end行。 移到文件开始位臵 移到文件结束位臵 n位 往右移n位 n行

n行,光标在该行的起始 向下移n行

n行,光标在该行的起始 移到屏幕的左上角 移到屏幕的中间行开头 移到屏幕的最后一行 移到文件的最后一行 n行

n个字组,标点符号属于字组 n个字组,标点符号不属于字组 n个字组,标点符号属于字组 n个字组,标点符号不属于字组 屏幕下卷半个菜单 屏幕上卷一个菜单

24

Aqiaqia * Application

Ctrl + F ?????? 屏幕下卷一个菜单

修改指令

r?????????? 修改光标文件的字符

R?????????? 从光标位臵开始修改,结束时按ESC键 new????????? 更改n组字符,结束时按ESC键

ncc????????? 从光标所在位臵开始更改n行,结束时按ESC键

重排各行长度

i?????????? 并按Enter将该行由光标所在处断开,并进入insert方式 J ??????????把下一行的数据连接到本行之后

寻找指令

/text???????? 从光标位臵往下找字串text ?text???????? 从光标位臵往上找字串text

n?????????? 继续找下一个字串(在输入上面的寻找指令之后使用)

寻找并且取代指令

:getxt1/s/ /text2/options ??将各行的text1替换为text2

???????????????option=g表示文件中所有的text1均被取代,若未输入任何option,则只有???????????????各行中的第一个出现的text1被取代

???????????????option=go 在屏幕显示各取代的行

???????????????option=gc 在每个字串取代之前要求确认? Start,endgtext1/s/ / text2/options ?同上,只寻找并取代第start~end行。 或:Start,ends/text1/text2/options

复制及移动文件

:first,last co dest ?????将first 到last行的数据复制到目标行(dest)下面

:Start,end?m dest??????将start 到 end行的数据移动到目标行(dest)下。???

:r filename????????? 将指定文件的内容读入光标所在行下。 nY ????????????? 将光标所在位臵开始的n行数据暂存 p?????????????? 复制暂存数据在光标的下一行 P?????????????? 复制暂存数据在光标的上一行

其他命令

.?????????????? 重复前一指令 u?????????????? 取消前一指令 Ctrl + l???????????刷新屏幕显示

:set number????????? 显示文件的行号,但不会存文件 :set nonumber???????? 解除行号显示

:set ai??????????? 设臵每行起始位臵(以光标当前位臵为起始)

25


UNIX基本的知识(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2016年钟秀勇民法模拟题(钟秀勇2016年4月10日)

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: