10.vi编辑器基本使用

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.txt

2.查看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 100610100001742

2.查到满足多条件中的一个或多个
grep 'creditorWalletId\|100610100001742' aply-3110.0.log

3.同时满足多个关键字和满足任意关键字
-E可以传递多个内容,使用|分割,类似与or
-e 传递单个内容

grep -n -E '请求kms服务报文|k

  • 22
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值