linux下vi命令修改⽂件及保存等使⽤⽅法整理
vi是所有UNIX系统都会提供的屏幕编辑器,它提供了⼀个视窗设备,通过它可以编辑⽂件。当然,对UNIX系统略有所知的
⼈,
或多或少都觉得vi超级难⽤,但vi是最基本的编辑器,所以希望读者能好好把它学起来,以后在UNIX世界⾥必将畅⾏⽆
阻、
游刃有余,因为其他⼏种⽂本处理器并⾮UNIX标准配备。说不定别⼈的Linux机器没安装joe或pico,如果您不会vi,那您
可能就没辄了。
vi的基本概念
基本上vi可分为三种操作状态,分别是命令模式(Commandmode)、插⼊模式(Inrtmode)和底线命令模式(Lastline
mode),
各模式的功能区分如下:
mode:控制屏幕光标的移动,字符或光标的删除,移动复制某区段及进⼊Inrtmode下,或者到Lastline
mode。
mode:唯有在Inrtmode下,才可做⽂字数据输⼊,按Esc等可回到Comandmode。
nemode:将储存⽂件或离开编辑器,也可设置编辑环境,如寻找字符串、列出⾏号等。
不过可以把vi简化成两个模式,即是将Lastlinemode也算⼊Commandmode,把vi分成Command和Inrtmode。
进⼊vi的命令
vifilename:打开或新建⽂件,并将光标置于第⼀⾏⾸
vi+nfilename:打开⽂件,并将光标置于第n⾏⾸
vi+filename:打开⽂件,并将光标置于最后⼀⾏⾸
vi+/patternfilename:打开⽂件,并将光标置于第⼀个与pattern匹配的串处
vi-rfilename:在上次正⽤vi编辑时发⽣系统崩溃,恢复filename
移动光标类命令
h:光标左移⼀个字符
l:光标右移⼀个字符
space:光标右移⼀个字符
Backspace:光标左移⼀个字符
k或Ctrl+p:光标上移⼀⾏
j或Ctrl+n:光标下移⼀⾏
Enter:光标下移⼀⾏
w或W:光标右移⼀个字⾄字⾸
b或B:光标左移⼀个字⾄字⾸
e或E:光标右移⼀个字⾄字尾
):光标移⾄句尾
(:光标移⾄句⾸
}:光标移⾄段落开头
{:光标移⾄段落结尾
nG:光标移⾄第n⾏⾸
n+:光标下移n⾏
n-:光标上移n儿童春节绘画作品 ⾏
n$:光标移⾄第n⾏尾
H:光标移⾄屏幕顶⾏
M:光标移⾄屏幕中间⾏
L:光标移⾄屏幕最后⾏
0:(注意是数字零)光标移⾄当前⾏⾸
$:光标移⾄当前⾏尾
屏幕翻滚类命令
Ctrl+u:向⽂件⾸翻半屏
Ctrl+d:向⽂件尾翻半屏
Ctrl+f:向⽂件尾翻⼀屏
Ctrl+b;向⽂件⾸翻⼀屏
nz:将第n⾏滚⾄屏幕顶部,不指定n时将当前⾏滚⾄屏幕顶部。
插⼊⽂本类命令
i:在光标前
I:在当前⾏⾸
a:光标后
A:在当前⾏尾
o:在当前⾏之下新开⼀⾏
O:在当前⾏之上新开⼀⾏
r:替换当前字符
R:替换当前字符及其后的字符,直⾄按ESC键
s:从当前光标位置处开始,以输⼊的⽂本替代指定数⽬的字符
S:删除指定数⽬的⾏,并以所输⼊⽂本代替之
ncw或nCW:修改指定数⽬的字
nCC:修改指定数⽬的⾏
删除命令
ndw或ndW:删除光标处开始及其后的n-1个字
do:删⾄⾏⾸
d$:删⾄⾏尾
ndd:删除当前⾏及其后n-1⾏
x或X:删除⼀个字符,x删除光标后的,⽽X删除光标前的
Ctrl+u:删除输⼊⽅式下所输⼊的⽂本
搜索及替换命令
/pattern:从光标开始处向⽂件尾搜索pattern
pattern:从光标开始处向⽂件⾸搜索pattern
n:在同⼀⽅向重复上⼀次搜索命令
N:在反⽅向上重复上⼀次搜索命令
:s/p1/p2/g:将当前⾏中所有p1均⽤p2替代
:n1,n2共振效应 s/p1/p2/g:将第n1⾄n2⾏中所有p1均⽤p2替代
:g/p1/s//p2/g:将⽂件中所有p1均⽤p2替换
选项设置
all:列出所有选项设置情况
term:设置终端类型
ignorance:在搜索中忽略⼤⼩写
list:显⽰制表位(Ctrl+I)和⾏尾标志($)
number:显⽰⾏号
report:显⽰由⾯向⾏的命令修改过的数⽬
ter:显⽰简短的警告信息
warn:在转到别的⽂件时若没保存当前⽂件则显⽰NOwrite信息
nomagic:允许在搜索模式中,使⽤前⾯不带“”的特殊字符
nowrapscan:禁⽌vi在搜索到达⽂件两端时,⼜从另⼀端开始
mesg:允许vi显⽰其他⽤户⽤write写到⾃⼰终端上的信息
最后⾏⽅式命令
:n1,n2con3:将n1⾏到n2⾏之间的内容拷贝到第n3⾏下
:n1,n2mn3:将n1⾏到n2⾏之间的内容移⾄到第n3⾏下
:n1,n2d:将n1⾏到n2⾏之间的内容删除
:w:保存当前⽂件
:e华硕路由器地址 filename:打开⽂件filename进⾏编辑
:x:保存当前⽂件并退出
:q:退出vi
:q!:不保存⽂件并退出vi
:!command:执⾏shell命令command
:n1,n2w!command:将⽂件中n1⾏⾄n2⾏的内容作为command的输⼊并执⾏之,若不指定n1,n2,则表⽰将整个⽂件内容
作为command的输⼊
:r!command:将命令command的输出结果放到当前⾏
寄存器操作
"?nyy:将当前⾏及其下n⾏的内容保存到寄存器?中,其中?为⼀个字母,n为⼀个数字
"?nyw:将当前⾏及其下n个字保存到寄存器?中,其中?为⼀个字母,n为⼀个数字
"?nyl:将当前⾏及其下n个字符保存到寄存器?中,其中?为⼀个字母,n为⼀个数字
"?p:取出寄存器?中的内容并将其放到光标位置处。这⾥?可以是⼀个字母,也可以是⼀个数字
ndd:将当前⾏及其下共n⾏⽂本删除,并将所删内容放到1号删除寄存器中。
VI的使⽤
--------------------------------------------------------------------------------
⼀、插⼊⽂本
┌──┬────────────┐
│命令│描述 │
├──┼────────────┤
│i │在当前字符前插⼊⽂本 │
├──┼────────────┤
│I │在⾏⾸插⼊⽂本 │
├──┼────────────┤
│a │在当前字符后添加⽂本 │
├──┼────────────┤
│A │在⾏末添加⽂本 │
├──┼────────────┤
│o │在当前⾏后⾯插⼊⼀空⾏ │
├──┼────────────┤
│O │在当前⾏前⾯插⼊⼀空⾏ │
├──┼────────────┤
│R │以改写⽅式输⼊⽂本 │
└──┴────────────┘
⼆、移动光标
┌─────┬───────────┐
│命令 │描述 │
├─────┼───────────┤
│j或下箭头│向下移动⼀⾏ │
├─────┼───────────┤
│k或上箭头│向上移动⼀⾏ │
├─────┼───────────┤
│h或左箭头│左移⼀个字符 │
├─────┼───────────┤
│l或右箭头│右移⼀个字符 │
├─────┼───────────┤
│w │右移⼀个词 │
├─────┼───────────┤
│W │右移⼀个以空格分隔的词│
├─────┼───────────┤
│b │左移⼀个词 │
├─────┼───────────┤
│B │左移⼀个以空格分隔的词│
├─────┼───────────┤
│0 │移到⾏⾸ │
│Ctrl-F │向前翻页 │
├─────┼───────────┤
│Ctrl-B │向后翻页 │
├─────┼───────────┤
│nG │到第n⾏ │
├─────┼───────────┤
│G │到最后⼀⾏ │
└─────┴───────────┘
三、替换⽂本
┌─────┬──────┐
│命令 │描述 │
├─────┼──────┤
│$ │到⾏尾 │
├─────┼──────┤
│( │到句⼦的开头│
├─────┼──────┤
│) │到句⼦的末尾│
├─────┼──────┤
│{ │到段落的开头│
├─────┼──────┤
│} │到段落的末尾│
└─────┴──────┘
四、删除⽂本
┌───┬───────────┐
│命令 │描述 │
├───┼───────────┤
│r │替换⼀个字符 │
├───┼───────────┤
│c │修改⽂本直到按下Esc健│
├───┼───────────┤
│cw │修改下⼀个词 │
├───┼───────────┤
│cnw │修改接下来的n个词 │
└───┴───────────┘
五、⽂本编辑
┌──┬────求助信怎么写 ──────────────────┐
│命寺│描述 │
├──┼──────────────────────┤
│yy │将⼀⾏⽂本移到缺省缓冲区中 │
├──┼──────────────────────┤
│yn │将下⼀个词移到缺省缓冲区中 │
├──┼──────────────────────┤
│ynw│将后⾯的n个词移到缺省缓冲区中 │
├──┼──────────────────────┤
│p │如果缺省缓冲区中包含⼀⾏⽂本,则在当前 │
│ │⾏后⾯插⼊⼀个空⾏井将缺省缓冲区中的声 │
│ │容粘贴到这⼀⾏中;如果缺省缓冲区中包含 │
│ │多个词,把这些词粘贴到光标的右边. │
├──┼──────────────────────┤
│P │如果缺省缓冲区中包含⼀⾏⽂本,则正当前 │
│ │⾏前⾯插⼊⼀个空⾏井将缺省缓冲区中的内 │
│ │容粘贴到这⼀⾏中;如果缺省缓冲区中包含 │
│ │多个词,把这些词粘贴到光标的左边
│
└──┴──────────────────────┘
六、保存退出
┌───────────┬───────────────┐
│命令 │描述 │
├───────────┼───────────────┤
│zz │保存并退出 │
├───────────┼───────────────┤现代诗朗诵
│:wfilename │写⼊⽂件 │
├───────────┼───────────────┤
│:W │写⼊⽂件 │
├───────────┼───────────────┤
│:x │保存(如果当前⽂件修改过)并退出│
├───────────┼───────────────┤
│:q! │不保存⽂件,直接退出 │
├───────────┼───────────────┤
│:q │退出vi │
VI常⽤技巧
VI命令可以说是Unix/Linux世界⾥最常⽤的编辑⽂件的命令了,但是因为它的命令集众多,很多⼈都不习惯使⽤它,其实您只
需要掌握基本命令,然后加以灵活运⽤,就会发现它的优势,并会逐渐喜欢使⽤这种⽅法。本⽂旨在介绍VI的⼀些最常⽤命令
和⾼级应⽤技巧。
⼀、基本命令介绍
----1.光标命令
k、j、h、l——上、下、左、右光标移动命令。虽然您可以在Linux中使⽤键盘右边的4个光标键,但是记住这4个命令还是⾮
常有⽤的。这4个键正是右⼿在键盘上放置的基本位置。
nG——跳转命令。n为⾏数,该命令⽴即使光标跳到指定⾏。
Ctrl+G——光标所在位置的⾏数和列数报告。
w、b——使光标向前或向后跳过⼀个单词。
----2.编辑命令
i、a、r——在光标的前、后以及所在处插⼊字符命令(i=inrt、a=append、r=replace)。
cw、dw——改变(置换)/删除光标所在处的单词的命令(c=change、d=delete)。
x、d$、dd——删除⼀个字符、删除光标所在处到⾏尾的所有字符以及删除整⾏的命令。
----3.查找命令
----/string、?string——从光标所在处向后或向前查找相应的字符串的命令。
----4.拷贝复制命令
----yy、p——拷贝⼀⾏到剪贴板或取出剪贴板中内容的命令。
⼆、常见问题及应⽤技巧
----1.在⼀个新⽂件中读/etc/passwd中的内容,取出⽤户名部分。
----vifile
----:r/etc/passwd在打开的⽂件file中光标所在处读⼊/etc/passwd
----:%s/:.*//g删除/etc/passwd中⽤户名后⾯的从冒号开始直到⾏尾的所有部分。
----您也可以在指定的⾏号后读⼊⽂件内容,例如克服紧张的5个方法 使⽤命令“:3r/etc/passwd”从新⽂件的第3⾏开始读⼊/etc/passwd的所有内
容。
----我们还可以使⽤以下⽅法删掉⽂学习开车 件中所有的空⾏及以#开始的注释⾏。
----#t|grep-v^$|grep-v^
#----2.在打开⼀个⽂件编辑后才知道登录的⽤户对该⽂件没有写的权限,不能存盘,需要将所做修改存⼊临时⽂件。
----vifile
----:w/tmp/1保存所做的所有修改,也可以将其中的某⼀部分修改保存到临时⽂件,例如仅仅把第20~59⾏之间的内容存盘成
⽂件/tmp/1,我们可以键⼊如下命令。
----新郎发言稿 vifile
----:20,59w/tmp/1
----3.⽤VI编辑⼀个⽂件,但需要删除⼤段的内容。
----⾸先利⽤编辑命令“vifile”打开⽂件,然后将光标移到需要删除的⾏处按Ctrl+G显⽰⾏号,再到结尾处再按Ctrl+G,显⽰⽂
件结尾的⾏号。
----:23,1045d假定2次得到的⾏号为23和1045,则把这期间的内容全删除,也可以在要删除的开始⾏和结束⾏中⽤白兰花怎么养 ma、mb命
令标记,然后利⽤“:a,bd”命令删除。
----4.在整个⽂件的各⾏或某⼏⾏的⾏⾸或⾏尾加⼀些字符串。
----vifile
----:3,$s/^/somestring/在⽂件的第⼀⾏⾄最后⼀⾏的⾏⾸插⼊“somestring”。
----:%s/$/somestring/g在整个⽂件每⼀⾏的⾏尾添加“somestring”。
----:%s/string1/string2/g在整个⽂件中替换“string1”成“string2”。
----:3,7s/string1/string2/仅替换⽂件中的第3⾏到第7⾏中的“string1”成“string2”。
----注意:其中s为substitute,%表⽰所有⾏,g表⽰global。
----5.同时编辑2个⽂件,拷贝⼀个⽂件中的⽂本并粘贴到另⼀个⽂件中。
----vifile1file2
----yy在⽂件1的光标处拷贝所在⾏
----:n切换到⽂件2(n=next)
----p在⽂件2的光标所在处粘贴所拷贝的⾏
----:n切换回⽂件1
----6.替换⽂件中的路径。
----使⽤命令“:%s#/usr/bin#/bin#g”可以把⽂件中所有路径/usr/bin换成/bin。也可以使⽤命令“:%s//usr/bin//bin/g”实现,其中“”是
转义字符,表明其后的“/”字符是具有实际意义的字符,不是分隔符。
本文发布于:2023-03-22 10:34:53,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/fanwen/zuowen/9747e2507f4aef556d2631ca432b11fa.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:tmp文件用什么打开.doc
本文 PDF 下载地址:tmp文件用什么打开.pdf
留言与评论(共有 0 条评论) |