在咱们的实际开发中,通常应用都部署在Linux上,为了后期方便排查bug或者记录代码执行的流程。对于开发者而言,遇到问题常常须要去看log文件(或者使用Kibana这样的工具),这里介绍几个开发经常使用而又重要的日志查找技巧。正则表达式
grep (global search regular expression(RE) and print out the line,全面搜索正则表达式并把行打印出来)是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。express
这行命令在info.log中搜索含有"2017010500345878"关键词的段落而且使用其余颜色标记关键词。
复制代码
优势:根据关键词快速方便定位而且打印出来段落的上下文。bash
head命令是用来查看具体文件的前面几行的内容,该命令默认是前10行内容;less
查看info.log文件的前50行。
复制代码
优势:快速定位到文件的前多少行。编辑器
tail命令是用来查看具体文件后面几行的内容,默认状况下,是查看该文件尾10行的内容;还可使用 tail 来观察日志文件被更新的过程。使用 -f 选项,tail 会自动实时更新文件内容。工具
cat命令是Linux下的一个文本输出命令,一般是用于观看某个文件的内容的.经常使用有三大功能:1.一次显示整个文件;2.从键盘建立一个文件。3.将几个文件合并为一个文件。这里咱们只举例显示一个文件.spa
less(less) 命令能够对文件或其它输出进行分页显示命令行
ack是一个基于Perl的相似于grep的命令行工具,可是搜索速度更快,能力比grep更强。日志
在当前目录递归搜索单词”eat”,不匹配相似于”orderService”或”paymentOrder”的字符串.
复制代码
sed 是一种在线编辑器,它一次处理一行内容。处理时,把当前处理的行存储在临时缓冲区中,称为“模式空间”(pattern space),接着用sed命令处理缓冲区中的内容,处理完成后,把缓冲区的内容送往屏幕。接着处理下一行,这样不断重复,直到文件末尾。文件内容并无 改变,除非你使用重定向存储输出。Sed主要用来自动编辑一个或多个文件;简化对文件的反复操做;编写转换程序等。code
查看info.log文件800到900行之间的内容
复制代码
使用找一个字符串,在vi命令模式下键入“/”,后面跟要查找的字符串,再按回车。vi将光标定位在该串下一次出现的地方上。键入n跳到该串的下一个出现处,键入N跳到该串的上一个出现处。
使用[grep -n 异常 --color info.log ]查询到异常在文件中发生的行数,而后再看先后几十行日志的内容[sed -n '800,900' info.log].
这些命令的功能都比较丰富,这里只是列出很是简单的一些用法,在通常的开发中都是频繁使用获得.具体的用法须要开本身总结使用本身喜欢使用的命令.(我这里的总结也会持续更新)