tail
基本语法:tail [-f] [-其他可选项] [文件名]
-f:也是可选项,用于监视追加动态的文件,经常用于操作日志文件
如:tail -f a.log(默认值,动态读取最后10行);tail -500f a.log(动态读取最后500行数据)
其他可选项:
-c 20 : 从文件的20个字节开始读取文件;如:tail -c 20 a.log
-m 20: 从文件的第20个字节开始读取文件,只是与 -c 不同的是不会截取字符串,更实用
-n 20:从文件的第20行开始读取,-20表示最后20行。 如:tail -n -20 a.log
-b 20:从文件的第20个 512字节块儿开始读取文件,如(读取最后20*512字节):tail -b -20 a.log
-k 20:从文件的第20个 1kb字节块儿开始读取文件,如(读取最后20kb):tail -k -20 a.log
--help:更多命令; tail --help
grep
根据规则或者正则表达式 每行进行过滤制定文件,经常与其他命令一起配合使用,ps命令、tail命令等
基本语法:grep [可选项] [-e] 规则 [file...]
-e: 也是可选项,使用正则表达式进行过滤;如:tail -f a.log | grep 'kevin'
-i:查找不区分大小写;
-v:查找不包含指定内容的行;
-w:按照单词搜索;
-c:统计匹配到的次数;
-n:显示行号;
-r:逐层遍历查询;如:grep 'error' /home/log -r -n --include *.{log}
-A5:显示查询到的字符的前5行一起显示,这个在日志中也比较实用,在上下文中才更有意义, 如:tail -n 200 a.log | grep -A5 'error'
-B5: 显示查询到的字符的后5行一起显示;
-C3:显示查询到的字符以及前后3行;
--color:查询到的内容高亮显示;
--include:指定匹配的文件类型;
--exclude:排查指定的文件类型;
--help:更多命令语法
比较实用的命令(记录也方便自己使用)
tail -f a.log |grep -E --color 'order|product'
动态展示文件中出现的 order或者product字符 不区分大小写,并且高亮显示
tail -8000f a.log | grep --color --line-buffer "order" | grep --color --line-buffer "product"
动态查询最后8000行,同时查询一条数据中同时包含多个字符串的信息,进行高亮显示, 比如:日志中包含某个方法,并且订单号是多少的日志,比较实用【但是第一个高亮没有生效】