vi指令(文本编辑操作指令)
vi 是 visual editor 的缩写,是 UNIX 所提供的编辑器之一。它提供使用者一个视窗的编辑环境,在此视窗下,使用者可编辑所要的文件
vi命令各模式切换图
# 直接执行 vi编辑程序即可: %vi test
此刻屏幕上会出现 vi 的编辑视窗,同时 vi 会将文件复制一份至记忆体中的缓冲区 (buffer)。 vi会保留在磁盘中的文件不变,而先对缓冲区的文件作编辑,编辑完成后,使用者可决定是否要取代原来旧有的文件。
若在输入模式下,则先利用《ESC》进入指令模式,而后即可选用下列指令离开vi
# 常用命令:i 在光标前插入
I 在光标当前行开始插入
a 在光标后插入
A 在光标当前行末尾插入
o 在光标当前行的下一行插入新行
O 在光标当前行的上一行插入新行
----------------重点---------------------------
:set nu 显示行号
:set nonu 取消行号
gg 到文本的第一行
G 到文本的最后一行
:n 到文本的第n行
------------------重点-------------------------
Ctrl + u undo,取消上一步操作
Ctrl + r redo,返回到undo之前
-------------------重点------------------------
Shift+ zz 保存退出,与“:wq”作用相同
:q 退出不保存
:q! 强制退出不保存
:wq 保存退出
:wq! 强制保存退出
:q! 离开vi,并放弃刚在缓冲区内编辑的内容。
:w 将缓冲区内的资料写入磁盘中,但并不离开vi。
:q 离开vi,若文件被修改过,则会被要求确认是否放弃修改的内容。 此指令可与:w 配合使用。
:wq 将缓冲区内的资料写入磁盘中,并离开vi。
# 注意:
vi 提供两种操作模式:输入模式(insert mode)和指令模式(command mode)。当使用者进入 vi 后,即处在指令模式下,此刻键入之任何字符皆被视为指令。
在此模式下可进行删除、修改等动作。若要输入资料,则需进入输入模式。
修改文本
在光标前插入 i
在光标后插入 a
复制光标所在位置的字 yw
复制光标所在位置的一个字 1yw
复制光标所在位置的一行 yy
复制光标所在位置下4行 4yy粘贴 p
在光标当前行末尾插入 A
按数字0 移动到文章开头
按w 光标跳到下个字开头
在光标当前行的下一行插入新行 o
在光标当前行的上一行插入新行 O
定位命令
跳到首行 gg
跳到末行 G向上翻一页 ctrl+b
向下翻一页 ctrl+f
向上翻半页 ctrl+d
向下翻半页 ctrl+u
撤销命令
撤销上一步操作 ctrl+u
删除命令
删除光标所在位置的后一个字符 x
删除光标后的多个字符 3x
删除光标位置所在的整行 dd
替换命令
替换光标所在的字符 r
替换光标所在的字符,直到按下ESC键为止更改:
更改光标所处的字到字尾 cw
更改3个字 c3w跳到指定行:
Ctrl+g 列出光标所在的行
列出行号 :set nu
跳到文件中的某一行 :1000
搜索日志中某个字符
# grep 'xxx' aply.log
# 列出行号 :set nu
# 查找字符
/关键字 ?关键字 按n一直往下寻找
搜索关键字 :?关键字 按N键往上查找,n向下查找
多个文件缓存区操作
1.打开多个文件
vi a.txt b.txt2.查看buffer/缓存区 :buffers 查看缓存区多少文件(:ls)
3.继续打开文件 :o c.txt 切换缓存区文件
第一列缓存区文件编号
第二列缓冲区文件状态
第三列缓冲区文件名称
第四列缓冲区上一次编辑的位置4.切换缓存区 :buffer 文件名
grep指令(查找文件或字符)
# grep全局正则表达式检索工具
-i 忽视大小写
-n 显示行号
-c 显示多少行匹配到
-o 只打印匹配到的字符
--color 将匹配到内容高亮显示-v 不配备指定字符串的行
-c 搜索、查找匹配的行数
-w 只想获取和整个搜索字符匹配的内容,那么可以使用参数w
-A 显示匹配字符串行及后N行
-B 显示匹配字符串行及前N行
-C 显示匹配字符串行及上下行grep "ORA" alert_gsp.log
grep "ORA-" utlspadv.sql
grep –v "被查找的字符串" 文件名
grep -c "被查找的字符串"
grep -w "ORA" utlspadv.sql
示例
# 查找指定进程
ps -ef|grep python说明:第一条记录是查找出的进程;第二条结果是grep进程本身,并非真正要找的进程
# 查找指定进程个数
ps -ef|grep python -c
ps -ef|grep -c python
# 从文件中读取关键词进行搜索
cat file2.txt |grep -f file1.txt
# 从文件中读取关键词进行搜索 且显示行号
cat file2.txt | grep -nf file1.txt
# 从文件中查找关键词
grep 'linux' file1.txt# 从多个文件中查找关键词
grep 'linux' file1.txt file2.txt# 找出已w开头的行内容
cat file1.txt |grep ^w# 输出以hat结尾的行内容
cat test.txt |grep hat$# 显示包含on或者on字符的内容行
cat file2.txt |grep -E "on|va"
# 显示当前目录下面以.txt 结尾的文件中的所有包含每个字符串至少有7个连续小写字符的字符串的行
grep '[a-z]\{7\}' *.txt
# 查询‘订单’在文件出现后几行
grep -A25 '订单' aply-3801.0.log# 统计某个字符串在文件中出现次数
grep -c ‘订单’ aply-3808.log
多条件查询
# 多条件查询
1.查找同时满足多个条件
grep 'creditorWalletId' aply-3110.0.log | grep 1006101000017422.查到满足多条件中的一个或多个
grep 'creditorWalletId\|100610100001742' aply-3110.0.log3.同时满足多个关键字和满足任意关键字
-E可以传递多个内容,使用|分割,类似与or
-e 传递单个内容grep -n -E '请求kms服务报文|k