平常开发中,咱们常常须要在服务器上进行各类文本,日志的查看操做,本文主要对经常使用的文本,日志查看技巧进行了一番总结和概括,方便你们收藏起来后续查看使用:html
tail命令查看日志信息
实时监控日志:java
tail -f filename
实时监控10行日志信息:linux
tail -10f filename
查看日志尾部的最后100行日志信息:git
tail -n 100 filename
查看日志100行以后的日志信息:面试
tail -n +100 filename
head命令查看文本信息正则表达式
查看文本开始的头100行信息:服务器
head -n 100 filename
查看文本最后100行信息以上的内容微信
head -n -100 filename
cat命令查看文本信息
查看所有文本内容架构
cat filename
查看文本的中间某些行范围之间的内容,例如说查看文本文件100-120行之间的内容:编辑器
cat -n filename |tail -n +100|head -n 20
不过使用我的不是太喜欢使用这种命令来进行文本的定位查看,由于查看起来过于麻烦,文章下边会有更加简便的命令操做。
tac查看文本信息
和cat命令有点相反,cat命令更多的是从头部往尾部的顺序展示文本内容,而tac命令正好是从文本的尾部往头部展示日志内容
tac filename
例如说,咱们经过cat命令和tac命令同时来查看一段相同的内容:
经过不一样命令来展现文本,会发现文本的内容顺序有所相反。
搜索文本内容
grep是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来。
grep命令的经常使用方式:
在多个文件中查找:
grep "match_pattern" file_1 file_2 file_3 ...
标记匹配颜色 --color=auto 选项:
grep "match_pattern" file_name --color=auto //【这里的color项能够根据文档说明进行选择always,never,auto三种】
输出除以外的全部行 -v 选项:
grep -v "match_pattern" file_name
使用正则表达式 -E 选项:
grep -E "[1-9]+"
只输出匹配到的内容选项:
grep -o -E "[a-z]+." line
统计文件或者文本中包含匹配字符串的行数 -c 选项:
grep -c "text" file_name
输出包含匹配字符串的行数 -n 选项:
grep "text" -n file_name
在了解了grep命令能完成的功能点以后,咱们能够在实际工做中灵活运用。
有些时候咱们也会遇到一些但愿查看某个时间段日志信息的须要,这个时候能够利用grep这条命令来实现这个功能,例如说但愿查看2019-08-06 22点这一个小时之内的日志信息,那么能够输入如下命令:
grep '2019-08-06 22' filename
这样能够快速定位到你所但愿查看的信息范围。
因为grep命令是能够接收standard input的数据,所以咱们一般能够借助管道命令符“ | ”的帮助,在一些标准输出进行中进行查找操做。
例如说,先将文件的内容读取出来,而后借助管道的帮助将内容转发给grep来进行内容过滤,以下边的这段命令:
cat log.file |grep -n '2019-08-06 22:43'
除了使用grep命令以外,也可使用sed命令来实现相应的效果。
sed是一种非交互式的编辑器,sed会逐行处理文件(或输入),并将结果发送到屏幕。
可能对于新手来讲,讲概念还不如直接来几个实操案例更为直接。
sed命令的经常使用方式:
只打印文件的第一行内容
sed -n '1p' filename
查看文件的第一行到第十行之间的内容
sed -n '1,10p' filename
删除第一行文本信息
sed '1d' filename
将文本里面的某些字符串进行替换
sed 's/但愿替换的内容/被替换的内容/g' 例如:sed 's/1/one /g' filename 将1替换为one
在了解了sed命令的一些基础用法以后,咱们能够在实际的工做场景中屡次运用,从而强化本身对于sed命令的理解。
例如说,经过sed命令来进行日期范围的指定,例如说查看2019-08-06 22:43-22:44之间的日志记录:
sed -n '/2019-08-06 22:43/,/2019-08-06 22:44/p' filename
上边有说到使用head和tail命令一块儿来实现对于日志文件的某段内容查看,可是这样的操做实在是有点麻烦,不妨能够尝试使用sed命令来进行操做。
例如说,查看日志的第1-20行内容:
nl log.file | sed -n '1,10p'
利用more命令进行翻页查看
若是说但愿查看的日志文件过大,那么能够经过使用more命令来进行分页查找,例如说设定每一页展现10条数据信息:
more -10 filename
经过使用more命令能够查看到每一页展现的数据,同时经过敲空格键会进行下一页的跳转。同时在窗口中也会显示当前所阅读的文本内容的基础进度。
说了那么多,咱们不妨进行一些模拟的操做场景吧:
查看日志最后一次出现关键字'test'的日志记录
grep 'test' -A 10 log.file | tail -n 11
这里须要了解到grep命令的几个参数含义:
- grep ‘name’ -A 10 显示匹配内容和后面的10行
- grep ‘name’ -B 10 显示匹配内容和前面的10行
- grep ‘name’ -C 10 显示匹配内容和先后面的10行
tail -n 11命令则是将当前显示的10行内容以及匹配的那一行内容展现出现
简单统计一份日志里面出现‘test’关键字的行数
相应命令:
grep 'test' ./log.file |wc -l
这里咱们能够先将文本的内容进行输出到标准输出中,而后借助管道将数据信息传给wc命令进行统计。
wc命令经常使用的几个参数
-l 匹配的行数
-w 匹配的字数
-m 匹配的字符数目
linux里面对于文本信息的查看技巧实在是有太多了,远远不局限于我在文中所说起的这些,所以在实际的工做中咱们还能够多多将有助于本身提高工做效率的技巧进行概括和总结。
♥ 做者:Java知音,欢迎扫码右侧二维码关注公众号!
♠ 出处:https://www.cnblogs.com/javazhiyin/
♦本文首发于公众号:【Java知音】和博客园,欢迎转载,请保留原文出处!
♣ 本文如对您有帮助,还请多推荐下此文,若有错误欢迎指正,相互学习,共同进步。
评论
#1楼 回复引用