vim工作模式以及管理输入输出

本文介绍了Linux系统的输入输出重定向,包括正确输出、错误输出的重定向和追加,详细阐述了管道的运用。此外,重点讲解了vim编辑器的命令模式、插入模式、退出模式以及常用功能,如设置行号、字符搜索、复制、删除、剪切、粘贴、撤销、可视化模式下的批量处理和字符替换,还涉及到了vim的分屏功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.理解linux系统的输入输出

当系统运行一个程序时,需要从某个位置读取输入信息,然后经过cpu处理
最后将输出显示到屏幕或者文件,进程通过文件描述的编号通道来获取输入并输出
标准输入0    从键盘获得输入
标准输出1    输出到屏幕(即控制台)
错误输出2    输出到屏幕(即控制台) 
输入设备: 就是键盘、鼠标和一些硬件设备在系统输入的字符
输出设备: 就是系统接收到我们想要实现的功能字符后,经过进程的处理产生字符并且输出到屏幕上
输入会有两种:编号1为正确输出,编号2为错误输出
默认这两种输出都会被系统定向到字符设备中 /dev /pts中 

2.控制输入输出的符号(这里面牵扯到一个管道符的问题)

输出重定向 : 正确为1 , 错误为2 (因为计算机为二进制)
注意:直接输出重定向会覆盖掉原文内容

>重定向正确输出 (将正确的定向输出到指定地方)
2>重定向错误输出 (将错误的定向输出到指定地方)
&>将所有的都重定向输出
>file清空file

以下实验必须在普通用户模式下进行
在这里插入图片描述
(1)先找到实验文件
在这里插入图片描述
重定向的目的文件如果存在直接覆盖,如果没有也不需要提前建立,它会在重定向的同时建立这个文件

(2)find /etc/ -name passwd > file ##定向正确输出到file
在这里插入图片描述
在这里插入图片描述
(3)find /etc/ -name passwd 2> file.err ##定向错误输出到file.err
在这里插入图片描述
(4)find /etc/ -name passwd &> file.all ##定向所有输出到file.all
在这里插入图片描述
(5)> file ##清空file
在这里插入图片描述
定向输出正确或者错误的到文件中时,剩下的错误或者正确的直接显示在shell命令框,并且定向输出到的目的文件的内容会被覆盖

输出追加在后面不覆盖

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

追加不会覆盖原文件内容:

(1)find /etc/ -name passwd >> file ##追加正确输出到file
在这里插入图片描述
(2)find /etc/ -name passwd 2>> file##追加错误输出到file
在这里插入图片描述
(3)find /etc/ -name passwd &>> file##追加所有输出到file
在这里插入图片描述
在这里插入图片描述

3.管道的应用

==什么是管道以及管道的作用: ==

(1) | (管道)把前一条命令的输出变成后一条命令的输入
(2)管道只识别正确的信息,也无判断能力,只能让正确的信息通过 (根本就看不见错误的东西,不存在判断能力)

注意

管道只允许正确输出通过
通过管道的输出将会变成输入,而变成输入的这些输出是会被第二条命令处理的
如果需要保存输出内容,那么需要复制一份输出,用到的命令是“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统计的结果

重定向总结如下
重定向符号:

“>“      输出重定向到一个文件或者设备,并且覆盖原来的文件
“>! “    输出重定向到一个文件或者设备,强制覆盖原来的文件
“>>“     输出重定向到一个文件或者设备,追加在原来的文件后面(不覆盖原来文件的内容)
“< “     输入重定向到一个程序

标准错误重定向符号:

“2>"         将一个标准错误输出重定向到一个文件或者设备,覆盖原来的文件
"2>>"      将一个标准错误输出重定向到一个文件或者设备,追加到原来的文件后面
"2>&1"   将一个标准错误输出重定向到标准输出   注释:1代表标准输出 2代表错误输出
">&"       将一个标准错误输出重定向到一个文件或者设备,覆盖原来的文件
"|&"         将一个标准错误 管道输送 到另一个命令作为输入

4.输入重定向

什么叫做输入重定向?

允许用户不通过键盘输入而从文件中得到输入数据,这就允许用户使用一些编辑器生成一些文件,然后将文件内容输送到一个命令中。
简单说,一般输入设备总是键盘,如果你把文件的内容作为输入,这个就是“输入重定向”
输入重定向的意思是在命令行一条一条输入的内容不必很繁琐的输入
只需要将所有想要执行的命令打包其写入一个文件中,执行此文件便可
例如:用输入重定向同时执行passwd cal date命令
先建立一个file.sh文件,并在插入模式写入以下内容
cat >file  <<EOF
hello
WORLD
EOF
此模式必须在root(超级用户模式下才能成功)
必须以EOF结束才可以
file.sh   passwd   westos 
将passwd 和 westos文件同时写在file.sh shell脚本当中,可以实现前两个文件的批处理
将两个文件打包在一块,这样有利于打包提高效率,只有超级用户才有这个权力
这样做有利于文件的批处理,将好多文件集中包装在一起.
<<之后的字符表示开始,当再次出现相同的字符时,停止输入,可以自定义字符
sh是对脚本进行调用解析,sh记录命令

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.vim的常用功能

(1)vim的模式

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

命令模式

浏览文件,临时更改vim的工作方式,对字符批量处理
调整vim的工作方式,在vim程序当中,写:set 调整参数

在这里插入图片描述
在这里插入图片描述

:set nu ##在每一行前显示行号

在这里插入图片描述

:set nonu ##取消行号显示

在这里插入图片描述

:set mouse=a ##显示鼠标

在这里插入图片描述

:set cursorline ##显示行线

在这里插入图片描述
注意

在vim程序中设定的vim工作方式是临时的,在vim关闭后会还源之前的
如果要永久保存vim的工作方式需要编辑vim的配置文件:/etc/vimrc
在vim中进行字符搜索使用 /关键字 ,n向下匹配,N向上匹配

在这里插入图片描述
(2)vim中的字符搜索

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

在这里插入图片描述
在这里插入图片描述
注意

当我在/后输入关键字回车之后,被搜索出来的关键字会高亮显示出来
按下n会向下匹配,按下N会向上匹配

(3)vim中的字符管理
实验环境
在这里插入图片描述

  • y#字符的复制
yl复制一个字母
y3l复制3个字母
yw复制一个单词
y3w复制3个单词
yy复制1行
y3y复制3行

实验截图如下

  • d#字符的删除
dl删除一个字母
d3l删除3个字母
dw删除1个单词
d3w删除3个单词
dd删除1行
d3d删除3行

实验截图如下

  • c#字符的剪切

p ##粘贴
u ##撤销
ctrl+r ##恢复撤销

cl剪切1个字母
c3l剪切3个字母
cw剪切1个单词
c3w剪切3个单词
cc剪切1行
c3c剪切3行

实验截图如下

注意

在剪切之后vim会进入插入模式
如果要粘贴需要按【esc】退出插入模式然后按p粘贴
输入按键时,一个一个依次按下

(4)vim的可视化模式(可以进行批量处理)
ctrl + v ##在这个模式下可以选择区域操作,此时左下角出现了VISUSL BLOCK,表示进入了vim可视化模式在这里插入图片描述
批量添加字符的流程如下:
用ctrl + v 选中要加入字符所在的列
再按大写的I
然后输入要加入的字符
最后按【esc】即可

  • 按下ctrl+v,进入可视化模式,然后利用上下键选中所要加入字符的列
    在这里插入图片描述
  • 按下大写的i,进入插入模式
    在这里插入图片描述
  • 输入所要加入的字符
    在这里插入图片描述
  • 按下esc键,就可以看到批量操作的结果
    在这里插入图片描述

(5)字符的替换

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

实验环境
在这里插入图片描述

  • 将全文的t变成k
    在这里插入图片描述
    在这里插入图片描述
  • 替换全文的:为@
    在这里插入图片描述
    在这里插入图片描述- 替换1-3行的:为@
    在这里插入图片描述
    在这里插入图片描述
    注意
    %s标示所有的行
    g标示所有的列
    即替换选中的所有行和列

(6)vim的分屏功能

ctrl+w s上下分屏(先按ctrl+w再按s)
ctrl+w v左右分屏
ctrl+w c关闭光标所在屏幕
ctrl+w 上下左右光标移动到指定屏幕
:sp file2同时编辑当前文件和file2

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

在命令模式下光标的移动:
gg ##光标移动到文件的第一行
G ##光标移动到文件的最后
:数字 ##光标移动到到指定的行

(7)插入模式:对文件内容进行编辑

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

(8)退出模式:退出vim程序

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值