我的运维之旅-查找文本的linux命令

时间:2021-01-19 20:55:36

小伙伴们肯定都遇到这么尴尬场景,线上服务出问题了,老大一直在问什么问题导致的,而你由于对查找文本的命令不太熟,鼓捣了半天才找到那条 异常日志,而这时可能半个小时都已经过去了。老大可能对你失望透顶了。讲真我就是这样的小白。对此痛定思痛,疯狂了解各种查找命令的使用方式。

常用的文本查找命令

   cat命令

   格式:cat [-ns] file

 选项

-n 显示行号

-s 空行不输出

这是对查找文件有用的两个选项,其它的相关选项可以自行百度

   more命令

   格式:more [-spcl][-number][+number][+/pattern] file

   选项

-s 空行不输出

-number 显示多少行

-l 忽略文件里面的换页符号

-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似

+lineNumber 显示lineNumber下的内容

+/pattern 从第一次出现该字段的前两行开始显示

  操作命令

Ctrl+F 向前翻一页

Ctrl+B 向后翻一页

空格 向下翻一页

enter 向下翻一行

=  显示当前行号

:f 显示文档名称,当前行号

q 退出more命令

  less命令

  格式: less [-Ni] file

选项

-N 显示行号

-i 查找匹配字段时忽略大小写

操作命令:

/pattern 向下查询该字段

?pattern 向上查询该字段

n 重复前一个搜索

N 反向重复前一个搜索

pageUp 向前翻一页

pageDown 向下翻一页

回车 向下翻一页

空格 向下翻一行

tail命令 

 格式: tail [-fn] file

选项

-f 监控文件最新输入

-n 显示多少行

   grep命令

   格式:grep [-ABC][number] [--color=auto] pattern file

   选项:

     -C  number 显示该匹配字段的上下number行

-B  number 显示该字段的前number行

-A number 显示该字段的后number行

     --color 高亮显示

sed命令

  格式:sed -n 'n,mp' file

  选项

-n 静态显示

该命令用于显示n行到m行之间的内容

命令的组合使用

case1:线上服务出现问题了,是在几个小时之前出的问题,我知道问题的几个关键字怎么办?

解决:cat fileName |grep "xxx" --color=auto

case2: 我想抓取下日志最后30条,并且高亮显示带有‘exception的行’

解决:tail -fn 30 fileName |grep 'exception' --color=auto;

case3:我大概定位到问题所在的位置,但是还需要具体看这段时间的日志内容才能确定

解决:cat -n fileName |grep 'exception'  观察下行号

sed -n '10,20p' fileName 显示这段行号里面的内容,接下来你就慢慢看吧