vim详解以及输入输出重定向
系统中输入输出的管理
1.理解系统的输入输出
计算机系统中的I/O设备按使用特性可分为以下类型:
人机交互类外部设备:用于同计算机用户之间交互的设备,如打印机、显示器、鼠标、键盘等。这类设备数据交换速度相对较慢,通常是以字节为单位进行数据交换。
存储设备:用于存储程序和数据的设备,如磁盘、磁带、光盘等。这类设备用于数据交换,速度较快,通常以多字节组成的块为单位进行数据交换。
网络通信设备:用于与远程设备通信的设备,如各种网络接口、调制解调器等。其速度介于前两类设备之间。网络通信设备在使用和管理上与前两类设备也有很大不同。
2.输入输出管理
输出重定向
> 重定向正确输出
2> 重定向错误输出
&> 重定向所有输出
注意:
重定向会覆盖原文件内容
切换到student用户后进行重定向操作
find /etc/ -name passwd > file
// 定向正确输出到file
2.find /etc/ -name passwd 2> file
// 定向错误输出到file
3.find /etc/ -name passwd &> file
//定向所有输出到file
> file 清空file
输出追加
1.>>
追加正确输出到文件最后
2.2>>
追加错误输出到文件最后
3.&>>
追加所有输出到文件最后
注意:
追加不会覆盖源文件内容
find /etc/ -name passwd >> file 追加正确输出到file
find /etc/ -name passwd 2>> file 追加错误输出到file
find /etc/ -name passwd &>> file 追加所有输出到file
3.管道
1.管道的作用
“|” 管道的作用是把前一条命令的输出变成后一条命令的输入
注意:
-
管道只允许正确输出通过 通过管道的输入将会变成输入,而变成输入的这些输出是会被第二条命令处理的 如果需要保存输出内容,那么需要复制一份输出,用到的命令是“tee”
-
普通用户下操作
find /etc/ -name passwd | wc -l 查找符合条件的文件并统计行数,错误输出不能通过管道
find /etc -name passwd 2>&1|wc -l 编号为2的输出被“2>&1”转换为编号1
find /etc -name passwd 2>&1|tee file |wc -l 保存一份输出到file再统计行数
4.输入重定向
cat >file <<EOF
hello
WORLD
EOF
5.vim的常用功能
1.vim的模式
命令模式
按esc进入命令模式,浏览文件,临时更改vim的工作方式,对字符批量处理
插入模式
按i进入,对文件内容进行编辑
退出模式
退出vim程序
vim命令模式
基本命令
p //粘贴
u //撤销
ctrl+r //恢复撤销
vim中的显示设置
vim命令
:set 为调整参数
:set nu 在每一行前显示行号
:set nonu 取消行号显示
:set nonu 取消行号显示
:set mouse=a 显示鼠标
:set cursorline 显示行线
注意:
在vim程序中设定的vim工作方式是临时的,在vim关闭后会还原
如果要永久保存vim的工作方式需要编辑vim的配置文件:/etc/vimrc
vim中的字符搜索
在vim中字符的搜索 为 /关键字
n向下匹配
N向上匹配
vim字符的复制、粘贴与替换
注意:在剪切之后vim会进入插入模式,如果要粘贴需要按【esc】退出插入模式然后按p粘贴
复制
yl | 复制一个字母 |
---|---|
y3l | 复制3个字母 |
yw | 复制一个单词 |
y3w | 复制3个单词 |
yy | 复制1行 |
y3y | 复制3行 |
删除
dl | 删除一个字母 |
---|---|
d3l | 删除3个字母 |
dw | 删除1个单词 |
d3w | 删除3个单词 |
dd | 删除1行 |
d3d | 删除3行 |
剪切
cl | 剪切1个字母 |
---|---|
c3l | 剪切3个字母 |
cw | 剪切1个单词 |
c3w | 剪切3个单词 |
cc | 剪切1行 |
c3c | 剪切3行 |
vim可视化模式
ctrl + v 在这个模式下可以选择矩形区域操作
批量添加字符
ctrl + v 使用光标选中要加入字符所在的列
按大写的I(i)
加入字符
按【esc】
字符的替换
:%s/要替换的字符/替换成的字符/g
例
:%s/gggggg/nihao/g
//替换全文的 gggggg 为 nihao
:1,5s/s/qing
// 替换1-5行的s 为 qing
注意:
%s标示所有的行
g标示所有的列
vim 的分屏功能
ctrl+w s //上下分屏
ctrl+w v //左右分屏
ctrl+w c //关闭光标所在屏幕
ctrl+w 上下左右 //光标移动到指定屏幕
:sp file2 //同时编辑当前文件和file2
例
在命令模式下光标的移动
gg //光标移动到文件的第一行
G //光标移动到文件的最后
:数字 //光标移动到到指定的行
gg命令例
G命令
插入模式下光标的移动
插入模式下光标的移动
i //光标所在位置插入
I //光标所在行行首插入
o //光标所在行下一行插入
O //光标所在行的上一行插入
a //光标所在字符的下一个字符插入
A //光标所在行的行尾插入
s //光标所在字符删除并插入
S //光标所在行删除并插入
注意先进行esc退出再进行输入
vim的退出模式
:q //退出,在文件内容没有被改变时使用
:wq //退出保存
:q! //强制退出不保存,在改变文件后不想保存时使用
:wq! //强制退出保存 在对只读文件编写时使用,注意,所编辑的只读文件必须时当前用户的文件或者当前操作的用户时root
例
原文件输入一串字符
:q不保存字符串并推出
:wq保存字符串并退出
:q!强制退出不保存