小伙伴们肯定都遇到这么尴尬场景,线上服务出问题了,老大一直在问什么问题导致的,而你由于对查找文本的命令不太熟,鼓捣了半天才找到那条 异常日志,而这时可能半个小时都已经过去了。老大可能对你失望透顶了。讲真我就是这样的小白。对此痛定思痛,疯狂了解各种查找命令的使用方式。
常用的文本查找命令
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 显示这段行号里面的内容,接下来你就慢慢看吧