vim命令详解和系统输入输出管理

1.##########vim的常用功能#########

<1.vim的模式

命令模式 浏览文件,临时更改vim的工作方式,对字符批量处理
插入模式 对文件内容进行编辑
退出模式 退出vim程序

命令模式
在这里插入图片描述
插入模式
在这里插入图片描述
退出模式
在这里插入图片描述

<一.命令模式>
1)调整vim的工作方式:
在vim程序中

:set     调整参数

示例:
:set nu ##在每一行前显示行号
在这里插入图片描述
:set nonu ##取消行号显示
在这里插入图片描述
:set mouse=a ##显示鼠标
在这里插入图片描述
:set cursorline ##显示行线
在这里插入图片描述

注意
在vim程序中设定的vim工作方式是临时的(进程id是不同的,所使用的内存资源是不一样的),所以在vim关闭后会还原

如果要永久保存vim的工作方式需要编辑vim的配置文件==:/etc/vimrc==
在/etc/vimrc下加入你要设定的工作方式
在这里插入图片描述
注意:这里显示行线是因为我已经设定过了,只是反过来截个图而已。

可新建一个文件,试图利用vim进入程序编辑框查看效果,可以看到和之前增加的命令相匹配的显示,说明已经永久的设定了vim的工作方式。
在这里插入图片描述

2)字符的搜索

/关键字        /后面的关键字会被搜索然后高亮显示出来

例如:当输入/h的时候,程序编辑框内所有的“h”都会高亮显示出来
在这里插入图片描述
注意:
按下n会向下匹配
按下N会向上匹配

3)字符的管理
y 字符的复制

yl 复制一个字母
y3l 复制3个字母
yw 复制一个单词
y3w 复制3个单词
yy 复制1行
y3y 复制3行

例子:刚开始的文本
在这里插入图片描述
y1:复制一个字母l,使linux变成llinux
在这里插入图片描述
y3l:复制三个字母lin,使linux变成linuxlin
在这里插入图片描述
yw:复制一个单词python,使linux变成linuxpython
在这里插入图片描述
y3w:复制三个单词,使linux变成linuxxi huan ni
在这里插入图片描述
yy:复制一句话huyihang,粘贴在第五行
在这里插入图片描述
y3y:复制三句话,粘贴在第三行
在这里插入图片描述

d 字符的删除

dl 删除一个字母
d3l 删除3个字母
dw 删除1个单词
d3w 删除3个单词
dd 删除1行
d3d 删除3行

刚开始的文本
在这里插入图片描述
dl:将linux的l删掉
在这里插入图片描述
d3l:将linux的nux删掉
在这里插入图片描述
dw:将linux删掉
在这里插入图片描述
d3w:将linux c python 三个字符删掉
在这里插入图片描述
dd:将huyihang这一行删掉
在这里插入图片描述
d3d:将linux c python这三行删掉
在这里插入图片描述

c 字符的剪切

cl 剪切1个字母
c3l 剪切3个字母
cw 剪切1个单词
c3w 剪切3个单词
cc 剪切1行
c3c 剪切3行
p			                   ##粘贴
u		                 	  ##撤销
ctrl+r			              ##恢复撤销

刚开始的文本
在这里插入图片描述
cl:将linux的l剪切到python后面
在这里插入图片描述
c3l:将linux的nux剪切到python后面
在这里插入图片描述
cw:将linux剪切到python后面
在这里插入图片描述
c3w:将linux c python 剪切到xi huan n后面
在这里插入图片描述

注意
<1>在剪切之后vim会进入插入模式,如果要粘贴需要按【esc】退出插入模式,然后按p粘贴"
<2>输入按键时,一个一个按下

4)vim可视化模式

ctrl + v ##在这个模式下可以选择区域操作(可以看到左下角出现了VISUSL BLOCK,即表示进入了vim可视化模式)
在这里插入图片描述

批量添加字符:

ctrl + v 选中要加入字符所在的列(按上下左右键进行批量选择)
		按大写的I
		加入字符
		按【esc】

在这里插入图片描述
加aaa在所选的列前。效果如下图所示:
在这里插入图片描述

5)字符的替换

:%s/要替换的字符/替换成的字符/g
	:%s/:/@/g		##替换全文的:为@
	:1,5s/:/@/g		##替换1-5行的:为@

刚开始的文本:
在这里插入图片描述
将全文的wwww字符变成hhhh,效果如下图
在这里插入图片描述
将全文的n字符变成:,效果如下图
在这里插入图片描述
再将全文的:改为@,效果如下图
在这里插入图片描述
将1-4行的hhhh改为1234,效果如下图
在这里插入图片描述
注意:
%s标示所有的行
g标示所有的列

6)vim 的分屏功能

ctrl+w s 上下分屏 (先同时按下ctrl+w 松开在按s)
ctrl+w v 左右分屏
ctrl+w c 关闭光标所在屏幕
ctrl+w 上下左右 光标移动到指定屏幕

ctrl+w s 上下分屏
在这里插入图片描述
ctrl+w v 左右分屏
在这里插入图片描述

ctrl+w c 关闭光标所在屏幕
在这里插入图片描述

:sp file2		       ##同时编辑当前文件和file2  ((按下esc再用:wq退出)

同时编辑文件test和文件file

在这里插入图片描述

<二.>插入模式
1)插入模式下光标的移动

i 光标所在位置插入
I 光标所在行行首插入
o 光标所在行下一行插入
O 光标所在行的上一行插入
a 光标所在字符的下一个字符插入
A 光标所在行的行尾插入
s 光标所在字符删除并插入
S 光标所在行删除并插入

<三>.vim的退出模式

:q 退出,在文件内容没有被改变时使用
:wq 退出保存
:q! 强制退出不保存,在改变文件后不想保存时使用
:wq! 强制退出保存,在对只读文件编写时使用。注意,所编辑的只读文件必须是当前用户的文件,或者当前操作的用户是root

二.系统中输入输出的管理

1.理解系统的输入输出

运行一个程序时,需要从某个位置读取输入信息,然后cpu处理,最后将输出显示到屏幕或者文件。进程通过文件描述的编号通道来获取输入并输出。

编号 通道名称 描述 默认连接 用法
0 stdin 标准输入 键盘 仅读取
1 stdout 标准输出 显示屏 仅写入
2 stdeer 标准错误 显示屏 仅写入

2.管理输入输出的符号

输出重定向

> 重定向正确输出
2> 重定向错误输出
&> 重定向所有输出
>file 清空file

注意:
重定向会覆盖原文件内容
例如:date会将原本file内容覆盖
在这里插入图片描述
示例:
注意:以下实验必须在student用户下完成!!!

find   /etc/  -name   passwd          在/etc目录下寻找passwd文件

在这里插入图片描述

find  /etc/  -name  passwd   > 	 file		     ##定向正确输出到file

在这里插入图片描述

find  /etc/  -name  passwd   2>  	file     	##定向错误输出到file

在这里插入图片描述

find  /etc/  -name  passwd   &>  	file	##定向所有输出到file

在这里插入图片描述

> file					                	##清空file

在这里插入图片描述

输出追加

>> 追加正确输出到文件最后
2>> 追加错误输出到文件最后
&>> 追加所有输出到文件最后

注意:
追加不会覆盖源文件内容

示例:

find  /etc/  -name  passwd   >>  	file		         ##追加正确输出到file

在这里插入图片描述

 find /etc/ -name passwd  2>> 	file        	##追加错误输出到file

在这里插入图片描述

find /etc/ -name passwd  &>> 	file      	##追加所有输出到file

在这里插入图片描述

16.##########管道的应用########
1.管道的作用

“|”            ###管道的作用是把前一条命令的输出变成后一条命令的输入

注意
管道只允许正确输出通过
通过管道的输入将会变成输入,而变成输入的这些输出是会被第二条命令处理的
如果需要保存输出内容,那么需要复制一份输出,用到的命令是==“tee”==

此实验在普通用户下操作:

find /etc/ -name passwd | wc -l		##会看到的结果为2,因为错误输出不能通过管道

在这里插入图片描述

find  /etc  -name	 passwd  2>&1 | wc -l	          ##会看到19,因为编号为2的输出                                                    被“2>&1”转换为编号1

在这里插入图片描述

find /etc -name passwd 2>&1 | tee file | wc -l  	##保存一份输出到file再统计行数

在这里插入图片描述
注意:当使用tee时,一定要注意其与wc -l的顺序,如果wc -l在前,那么输出保存的内容便是wc -l统计的结果。
3.输入重定向

输入重定向的意思是平常在命令行输入的内容不必很繁琐的一步步输入,只需要将其写入文件中,执行此文件便可
例如:用输入重定向同时执行passwd cal date命令

先建立一个file.sh文件,并在插入模式写入以下内容
在这里插入图片描述
结果如下:在这里插入图片描述

注意:
1.<<之后的字符表示开始,当再次出现相同的字符时,停止输入,可以自定义字符
2.sh是对脚本进行调用解析,sh记录命令。

随堂测试
在这里插入图片描述
1:显示当前时间,显示格式为hh:mm:ss,并保存到文件time.txt文件中
在这里插入图片描述
2.显示/etc/passwd文件中的第15-18行内容
在这里插入图片描述
3.显示/bin中文件包含大写字母的文件,保存到bin_westos_file.txt中,并统计个数显示到屏幕
在这里插入图片描述
4.在student用户下查找/etc下的passwd文件,屏蔽错误输出
在这里插入图片描述
注意:/dev/null代表的是linux的空设备文件,所有往这个文件里写入的内容都会消失,而我们将错误结果输出到这里,也就是说屏蔽了错误输出)

5.在student用户下查找/etc/passwd文件,正确输出保存到/tmp/westos.out错误输出保存到/tmp/westos.err

在这里插入图片描述
6.在student用户下查找/etc/passwd文件,显示命令输出并保存输出到/tmp/westos.all中
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/bmengmeng/article/details/88956891
今日推荐