vi命令集锦手册.docx
《vi命令集锦手册.docx》由会员分享,可在线阅读,更多相关《vi命令集锦手册.docx(16页珍藏版)》请在冰豆网上搜索。
vi命令集锦手册
wc
用途:
wc计算并显示指定文件中的行数、字数和字节数。
tail
用途:
tail在默认情况下显示指定文件的最后10行。
举例:
tailmyfile.txt。
这个命令执行后,屏幕上将显示myfile.txt的最后10行。
你也可以指.压
缩资料
==========
执行格式:
compressfilename压缩文件
执行格式:
compressdirdirectory-name压缩目录
解压缩还原资料
================
执行格式:
uncompressfilename 反压缩文件
执行格式:
uncompressdirdirectory-name反压缩目录定显示的行数,比如tail-50myfile.txt执行后,将会在屏幕上打印出文本的最后50行。
sort
用途:
sort将文本文件逐行分类。
举例:
sortmyfile.txt。
这个命令将myfile.txt中的内容分类。
.查看系统之process
====================
执行格式:
ps[-aux]
Example:
%ps或ps-x(查看系统中,属於自己的process。
)
%ps-au (查看系统中,所有使用者的process。
)
%ps-aux (查看系统中,包含系统内部,及所有使用者的process。
)
.结束或终止process
====================
执行格式:
kill[-9]PID(PID为利用ps命令所查出之processID。
)
Example:
%kill456或kill-9456
终止processID为456之process。
改变自己的username进入其他使用者的帐号,拥有其使用权利。
执行格式:
suusername
查看系统中的使用者:
执行格式:
who或finger
执行格式:
w
chmod/chown/chgrp
R改变一个目录下所有文件的属性
用法举例:
chmod-R755ui
su切换用户
grep
用途:
grep用来查找符合某种模式的文本行并打印出所有相应的文本行。
举例:
grepecolihamburger.txt。
这个命令执行后查找hamburger.txt文件中的单词ecoli。
在系统提示字符(如$、#)下敲入vi<档案名称>,vi可以自动帮你载入所要编辑的文件或是开启一个新文件(如果该文件不存在或缺少文件名)。
进入vi后萤幕左方会出现波浪符号,凡是列首有该符号就代表此列目前是空的。
(一)、两种模式
指令模式切换到输入模式只需键入相应的输入命令即可(如a,A),而要从输入模式切换到指令模式,则需在输入模式下键入ESC键,如果不晓得现在是处於什麽模式,可以多按几次[ESC],系统如发出哔哔声就表示已处于指令模式下了。
新增(append)
a:
从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。
A:
从光标所在行最後面的地方开始新增资料。
插入(insert)
i:
从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。
I:
从光标所在行的第一个非空白字元前面开始插入资料。
开始(open)
o:
在光标所在列下新增一列并进入输入模式。
O:
在光标所在列上方新增一列并进入输入模式。
(二)、退出vi
在指令模式下键入:
q,:
q!
:
wq或:
x(注意:
号),就会退出vi。
其中:
wq和:
x是存盘退出,而:
q是直接退出,
如果文件已有新的变化,vi会提示你保存文件而:
q命令也会失效,这时你可以用:
w命令保存文件后再用:
q
退出,或用:
wq或:
x命令退出,如果你不想保存改变后的文件,你就需要用:
q!
命令,这个命令将不保存文件而直接退出vi。
(三)、基本编辑
删除与修改文件的命令:
x:
删除光标所在字符。
dd:
删除光标所在的行,光标移到下行的行首。
r:
修改光标所在字元,r後接著要修正的字符。
R:
进入取替换状态,新增文字会覆盖原先文字,直到按[ESC]回到指令模式下为止。
s:
删除光标所在字元,并进入输入模式。
S:
删除光标所在的行,并进入输入模式。
u:
恢复到上次操作
指令模式下移动光标的基本指令是h(左),j(下),k(上),l(右)
(一)、基本编辑指令:
新增(append)
a:
从光标所在位置後面开始新增资料,光标後的资料随新增资料向後移动。
A:
从光标所在列最後面的地方开始新增资料。
插入(insert)
i:
从光标所在位置前面开始插入资料,光标後的资料随新增资料向後移动。
I:
从光标所在列的第一个非空白字元前面开始插入资料。
开始(open)
o:
在光标所在列下新增一列并进入输入模式。
O:
在光标所在列上方新增一列并进入输入模式。
x:
删除光标所在字符。
dd:
删除光标所在的行。
D:
删除行尾到光标之间的文字(包括光标所在位置)
r:
修改光标所在字元,r後接著要修正的字符。
R:
进入取替换状态,新增文字会覆盖原先文字,直到按[ESC]回到指令模式下为止。
s:
删除光标所在字元,并进入输入模式。
S:
删除光标所在的行,并进入输入模式。
(二)、光标移动指令(这些当然是指令模式下的指令):
注:
这里的n不是字母,代指数字,即100-表示上移100行,300G表示移到第300行
指令
说明
功能键
0
移动到光标所在行的最前面
[Home]
$
移动到光标所在行的最後面
[End]
[CTRL][d]
向下半页
CTRL][f]
向下一页
[PageDown]
[CTRL][u]
向上半页
[CTRL][b]
向上一页
[PageUp]
H
移动到视窗的第一行
M
移动到视窗的中间行
L
移动到视窗的最後行
b
如果光标在当前字的首字母,移动到上个字的s首字母,否则移动到当前字首字母
w
移动到下个字的首字母
e
如果光标在当前字最后字母,就移动到下一个字首字母,否则移动到当前字的最後一个字母
^
移动到光标所在行的第一个非空白字元
n-
减号移动到上一行的第一个非空白字元,前面加上数字可以指定移动到以上n行
n+
加号移动到下一行的第一个非空白字元,前面加上数字可以指定移动到以下n行
nG
直接用数字n加上大写G移动到第n行
fx
往右移动到x字元上
Fx
往左移动到x字元上
tx
往右移动到x字元前
Tx
往左移动到x字元前
;
配合f&t使用,重复一次
配合f&t使用,反方向重复一次
/string
往右移动到有string的地方
?
string
往左移动到有string的地方
n
配合/&?
使用,重复一次
N
配合/&?
使用,反方向重复一次
n(
左括号移动到句子的最前面,面加上数字可以指定往前移动n个句子
句子是以 !
.?
三种符号来界定
n)
右括号移动到下个句子的最前面,面加上数字可以指定往後移动n个句子
句子是以 !
.?
三种符号来界定
n{
左括弧移动到段落的最前面,面加上数字可以指定往前移动n个段落
段落是以段落间的空白列界定
n}
右括弧移动到下个段落的最前面,面加上数字可以指定往後移动n个段落
段落是以段落间的空白列界定
(三)、更多的编辑指令
这些编辑指令非常有弹性,基本上可以说是由指令与范围所构成。
例如dw是由删除指令d与范围w所组成,代表删除一个字d(elete)w(ord)。
指令列表如下:
d删除(delete)
y复制(yank)
p放置(put)
c修改(change)
范围可以是下列几个:
e光标所在位置到该字的最後一个字母
w光标所在位置到下个字的第一个字母
b光标所在位置到当前个字的第一个字母
$光标所在位置到该行的最後一个字母
0光标所在位置到该列的第一个字母
)光标所在位置到下个句子的第一个字母
(光标所在位置到该句子的第一个字母
}光标所在位置到该段落的最後一个字母
{光标所在位置到该段落的第一个字母
+g会显示该行之行号、文件名称、文件中最末行之行号、游标
所在行号占总行号之百分比。
除与复制都会将指定范围的内容放到暂存区里,然後就可以用指令p贴到其它地方去,这是vi用来处理区段拷贝与搬移的办法
如果稍微观察一下这些编辑指令就会发现问题其实是定范围的方式有点杂,实际上只有四个指令罢了。
指令v非常好用,只要按下v键,光标所在的位置就会反白,然後就可以移动光标来设定范围,接著再直接下指令进行编辑即可。
对於整行操作,vi另外提供了更方便的编辑指令。
前面曾经提到过删除整行文字的指令dd就是其中一个;c可以修改整行文字;而yy则是复制整行文字;指令D则可以删除光标到该列结束为止所有的文字
有个很好用的指令u可以恢复被删除的文字,而U指令则可以恢复光标所行所有改变
(四)、文件操作指令
文件操作指令多以:
开头,这跟编辑指令有点区别。
:
q结束编辑(quit)
:
q!
不存档而要放弃编辑过的文件。
:
w保存文件(write)其後可加所要存档的档名。
:
wq即存档後离开。
ZZ功能与:
wq相同。
:
x与:
wq相同
注一:
句子(sentence)在vi中是指以『!
』、『.』或『?
』结束的一串字。
注二:
段落(paragraph)在vi中是指以空白行隔开的文字。
=======
读写资料
:
w将缓冲区的资料写入磁盘中。
:
10,20wtest将第10行至第20行的资料写入test文件。
:
10,20w>;>;test将第10行至第20行的资料加在test文件之后。
:
rtest将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-rfilename
..编辑多个文件
=============
vi亦提供同时编辑多个文件的功能,方法如下:
%vifile1file2..
当第一个文件编修完成后,可利用『:
w』将该缓冲区存档,而后
再利用『:
n』载入下一个文件。
指标往下移10行.10j
3.1、vi的启动与退出
1、vi的启动
输入vi命令后,便进入全屏幕编辑环境,此时
的状态为命令方式。
①vi 光标定在该缓冲区第一行第一列位置
②viexample 光标定在缓冲区第一行第一列位置
③vi+example光标定在文件最后一行第一列位置
④vi+Nexample 光标定位在文件第N行第一列的位置(N:
为数字)
⑤vi+/stringexample 光标定位在文件中第一次出现字符串string的行首位置
1.1 vi的应用方式
* vi的名字取自于visual。
* 有两种操作方式:
命令方式、插入方式和ex转义方式
* 命令方式下输入的大、小写是敏感的。
二、vi的启动与退出(续)
2、vi的退出
建议首先键入“ESC”键,以确保当前vi的
状态为命令方式,输入下列命令,退出vi。
①:
w 将编辑缓冲区的内容写入文件
:
q 退出vi
②:
wq 将上面两步操作可以合成一步来完成。
③:
x 功能同上。
④:
q 退出vi,此时的正文没有被更改过。
⑤:
q!
强行退出vi,使更新内容不写回文件。
三、光标在窗口中移动
注释
字 :
是由空格或标点符号分开的字母序列。
句子:
是以句号(.)、问号(?
)或感叹号(!
)结束的字符序列,句子之间由两个
空格或一个回车分开。
段落 :
一个段落前后各有一个或多个空白行。
三、光标在窗口中移动(续)
1、字符及行间移动
命令 结果
—————————— ——————————
↑ 或 k 向上移一行
↓ 或 j 向下移一行
← 或 h 或退格键 左移一个字符
→ 或 l 或 空格 右移一个字符
o 移到当前行的开始
$ 移到当前行的结尾
+ 或 回车符 移到下一行的开始
- 移到上一行的开始
三、光标在窗口中移动(续)
2、其它单位的移动
命令 结果
——————— —---------—————————
w 移到下一个字或标点符号
W 移到下一个字
e 移到这个字或标点符号的结束
E 移到字的下一结尾
b 回到字或标点符号的开始
B 移回到字的开始
) 移到下一个句子的开始
( 移到这个句子的开始
} 移到下一段落的开始
{ 移到这一段落的上一开始
四、在缓冲区中移动窗口
命令 结果
——-——— --—------—————————
CTRL-F 向前(上)移动一满屏幕
CTRL-D 向前(上)移动半屏幕
CTRL-B 向后(下)移动一满屏幕
CTRL-U 向后(下)移动半屏幕
H 光标移动到屏幕顶部
M 光标移动到屏幕中间
L 光标移动到屏幕底部
注意 可在这些命令前加入数字n作为前缀,使相应命
令执行n次。
但nG使光标定位在第n行。
五、光标在正文中的移动
命令 结果
——-——— --—------—————————
G 光标移动到文件的尾部
nG 光标移动到文件的第n行
:
0 光标移动到文件的第1行
:
1 光标移动到文件的第1行
:
n 光标移动到文件的第n行
:
$ 光标移动到文件的尾部
/string 光标向前移动到string首
?
string 光标向后移动到string首
六、增加正本
命令 结果
——-——— ----------—------—————————
a 将输入文本插入在光标之后
A 将输入文本插入在当前行的行尾
i 将输入文本插入在光标之前
I 将输入文本插入在当前行的开始
o 将在当前行的下一行处打开一新行
O 将在当前行的上一行处打开一新行
注意 ESC:
使编辑状态从输入方式切换到命令方式
七、修改正本
命令 结果
——-— ---------------------—------—————————
r 替换当前字符,不需按ESC。
R 从当前字符开始进行替换,至ESC键为止。
nC 对从当前字符开始的n行字符进行替换,直至键入ESC键为止。
nc$ 同nC。
ncw 对当前字符开始的n个字进行替换操作,直至键入ESC键为止。
注意 n为数字,为1时可省略。
七、修改正本(续)
命令 结果
——-— ------------------—------—————————
ncc 对从当前字符开始的n行字符进行替换,
直至键入ESC键为止。
ns 替换从当前字符开始的n个字符,直至键入
ESC键为止。
nS 对从当前行开始的n行字符,进行替换,
直至键入ESC键为止。
J 将当前行和下一行连接起来。
注意 n为数字,为1时可省略。
八、删除正本
1. x与X命令的使用
命令 结果
——-— --------------—------—————————
x 删除当前字符。
nx 删除从当前字符开始的n个字符。
X 删除当前字符的前一个字符。
nX 删除当前字符的前n个字符。
注意 n为数字,为1时可省略。
八、删除正本(续)
2. d与D命令的使用
用来将指定范围内文本删除,并存入缓冲区。
命令 结果
——-— ----