vim程序编辑器;管理输入输出
上一篇稍微提了一下vim编辑文件的基本方法:
“vim 文件名” 之后会进入这个文件内容的浏览模式,然后按"i"键 进入插入模式(左下角会出现-INSERT-的字样)后就可以编写内容了,编写结束后按"ESC"键 退出插入模式,最后按":wq" 保存并退出就可以了(编写时用上下左右键控制鼠标位置)
接下来具体介绍vim编辑器的其他操作
1.vim工作方式设定
:set nu #添加行号:set nonu #不加行号
:set cursorline #加下划线
:set mouse=a #可使用鼠标
如果要永久设定需要编写"/etc/vimrc"这个文件也是vim的配置文件
2.vim快捷键
按"x":删除光标所在字符
按"ctrl+r": redo 撤销恢复
按"y":复制
"yw" ##复制一个单词
"yl" ##复制一个字母"yy" ##复制一整行
"y5y" ##复制5行
"c":剪切
"cw" ##剪掉一个单词
"cl" ##剪掉一个字母
"cc" ##剪掉一整行
"c5c" ##剪掉5行
当用C做剪切时,会进入插入模式,如果要粘贴需要退出插入模式按<ESC>再按P
"d":删除 "dw" ##删除一个单词
"dl" ##删除一个字母
"dd" ##删除一整行
"d5d" ##删除5行
"p":粘贴
3.vim的可视化操作
1)可视化模式的基本操作
在vim中鼠标不能操作,如果要操作某个区域,需要在命令模式下 "ctrl + v" ,按"上|下|左|右"移动光标选择区域,按相应操作键就可以对选择区域进行操作
1.把光标停留在想要加入字符所在的列的第一行
2.移动光标选择添加字符所在列
3.按"shift+i"进入插入模式,写入要插入的字符
5.按"ESC"退出插入模式
4.vim的字符替换
1,5s/原有字符/新字符/g #替换1到5行的字符
注意:加“g”替换出现的所有关键字,如果不加"g"只替换每行出现的第一个
5.vim总字符的查找及光标的移动
1)字符的查找
n ##向下匹配关键字
N ##向上匹配关键字
2)光标的移动
数字 ##光标快速移动到指定行
G ##光标移动到文件的最后以行
6.vim同时编辑多个文件
1)格式::sp filename
ctrl + w 上 #光标进入上边文件窗口
ctrl + w 下 #光标进入下边文件窗口
"i" #在光标所在位置插入字符
"I" #光标所在行的行首插入字符
"o" #光标所在行的下一行新行插入字符
"O" #光标所在行的上以行新行插入
"s" #删除光标所在字符并插入字符
"S" #删除光标所在行并插入字符
"a" #光标所在字符的下一个字符插入
"A" #光标所在行的行尾插入字符
3)退出模式
:q #当vim进入文件没有对文件内容做任何操作可以按"q"退出
:q! #当vim进入文件对文件内容有操作但不想保存退出:wq #正常保存退出
:wq! #强行保存退出,只针对与root
注意:如果文件名称存在,那么进入文件直接编辑,当文件名称不存在,vim会在退出保存时自动建立文件
当vim命令后没有跟任何文件名称时,无法实现":wq"退出保存的,那么可以用":wq 文件名"
当vim异常退出时,系统会建立.file.swp这个缓存文件,这个文件中保存着没有":wq"动作保存的信息,当用vim对文件做编辑的时候会提示
O #只读打开
E #直接忽略.file.swap信息编辑文件
R #利用.file.swap进行为保存数据恢复
D #删除.file.swap
Q #退出
A #终止
7.管理输入输出
1)管理输入
多行录入格式:
cat >>文件名 <<起始标示
>内容
>内容
>起始标示
密码修改格式:
passwd <<起始标示
>新密码
>再输入新密码
>起始标示
起始标示需要前后一致,这样才能结束输入,
2)重定向输出
标准的输出会把正确和错误的数据都显示在屏幕上,这样屏幕就显得很混乱,分析起来也是很不方便的,重定向输出会将正确和错误的数据分别传送到不同文件或设备,接下来介绍一下重定向输出
> #重定向正确输出
正确的已经保存到文件中,错误的显示出来
2> #重定向错误输出
&> #重定向所有输出
上面是正确和错误数据存入同一个文件中,如果想要正确和错误的数据分别存入不同文件呢,来举个例子:
这样就可以了,正确和错误的数据已经分别保存到不同文件,此刻屏幕上不会显示任何信息哦
/dev/null是垃圾桶黑洞设备,如果想要屏蔽错误输出,可以将它导入/dev/null
屏幕显示正确输出,错误的被丢弃了
所以说,重定向输出还是很有帮助的
注意:输出所导入的文件若不存在,系统会自己建立,如果存在的话,系统会先将这个文件的内容清空,然后再导入,也就是说,> , 2> , &> 都会覆盖文件原来内容,如:
文件原来的内容"hello world"被覆盖了!
那么如果要保留原来内容,就要用追加输出>>
3)追加输出
>> ##追加正确输出
2>> ##追加错误输出
&>> ##追加所有输出
当文件不存在,系统会自己建立,若存在,数据会追加到文件原来内容的后面
例如追加正确输出:
文件原来内容"hello world"依然存在并追加了正确输出!
4)管道
把输出变成下一个程序的输入,管道是用来组合多条命令的使用的,它仅能处理前面命令传来的正确信息,对于错误信息没有直接处理的能力
如:ls /bin | wc -l
注意:通过管道后输出会变成输入,前面的输出是无法保存的,要保存输出则要用到tee命令
tee #复制输出到指定位置
tee可以将输出显示在屏幕上并复制一份到指定文件,这样不仅方便我们分析,还可以保留数据方便以后查看
如:ls /bin | tee file | wc -l
然后"cat file" ,输出保存到了文件中
2>&1 #把错误输出的编号由2转换为1
编号为2的错误命令是不能被管道直接处理的,要把错误输出编号由2转换成1,如: