Linux服务器查看日志命令总结


tail

用于输出文件中的尾部内容,实际应用如下:

// 显示文件倒数2行数据,并实时刷新新日志
tail -2f demo.log // 执行效果如下: line9 56 line0 78 // 如果你需要停止,按Ctrl+C退出 // 假如查看的日志,实时刷新的日志量非常多的话,慎用!

head

跟tail是相反的,tail是看后多少行日志;例子如下:

// 查询日志文件中的头10行日志; head -n 10 test.log //查询日志文件除了最后10行的其他所有日志; head -n -10 test.log 

cat

命令用于连接文件并打印到标准输出设备上

// 显示文件全部内容
cat demo.log // 执行结果: line1 123456 aa line2 123456 bb line3 123456 cc line4 123456 dd line5 654321 aa line6 654321 bb line7 12 line8 34 line9 56 line0 78 // 由于会显示整个文件的内容,所以如果文件大的话,慎用! // 查询关键字的日志 得到关键日志的行号 cat -n test.log |grep "debug" // 选择关键字所在的中间一行 cat -n test.log |tail -n +92|head -n 20 // 然后查看这个关键字前10行和后10行的日志: // 表示查询92行之后的日志 tail -n +92 // 20 则表示在前面的查询结果里再查前20条记录 head -n 20 // 分页打印,通过点击空格键翻页 cat -n test.log |grep "debug" |more // 使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析,例如: cat -n test.log |grep "debug" >debug.txt

tac

关于cat命令,还有一个与之类似但写法相反的命令:tac。写法就是cat反过来写

功能也是相反的,是从后往前显示内容。示例如下:

tac demo.log

// 执行结果:
line0 78
line9 56
line8 34
line7 12
line6 654321 bb
line5 654321 aa
line4 123456 dd line3 123456 cc line2 123456 bb line1 123456 aa

more

类似cat,不过会以一页一页的形式显示,按空白键space就往下一页显示,按b键就会往回一页显示

more demo.log // 执行结果(文件内容少的话,会直接显示全部,效果跟cat一样): line1 123456 aa line2 123456 bb line3 123456 cc --More--(15%)

less

lessmore类似,但使用less可以随意浏览文件(使用键盘上的上下箭头),而且less在查看之前不会加载整个文件

less demo.log // 执行结果(文件内容少的话,会直接显示全部,效果如下): line1 123456 aa line2 123456 bb line3 123456 cc line4 123456 dd line5 654321 aa line6 654321 bb line7 12 line8 34 line9 56 line0 78 demo.log (END)

当使用less命令查看日志时,还可以对关键字进行查找。命令如下:

// 使用斜杠(/)加关键字的形式,向后查找关键字,如查找关键字:123456
/123456   

// 使用问号(?)加关键字的形式,向前查找关键字,如查找关键字:line3
?line3

// PS:跳转到后一个关键字快捷键: N; 跳转到前一个关键字:shift + N

grep

grep指令用于查找内容包含指定的范本样式的文件,如果发现某文件的内容符合所指定的范本样式,grep指令会把含有范本样式的那一列显示出来

// 查询包含关键字<code>123456</code>的日志内容 grep "123456" demo.log // 执行结果 line1 123456 aa line2 123456 bb line3 123456 cc line4 123456 dd // 查询包含关键字<code>123456</code>且包含<code>aa</code>的日志内容 grep "123456" demo.log | grep "aa" // 执行结果 line1 123456 aa // 查询不包含<code>aa</code>的日志内容 grep -v "aa" demo.log // 执行结果 line2 123456 bb line3 123456 cc line4 123456 dd line6 654321 bb line7 12 line8 34 line9 56 line0 78 // 查询包含关键字<code>123456</code>但不包含<code>aa</code>的日志内容 grep "123456" demo.log | grep -v "aa" // 执行结果 line2 123456 bb line3 123456 cc line4 123456 dd // 查询包含关键字<code>123456</code>或<code>aa</code>的日志内容 grep "123456\|aa" demo.log 或者 grep -E "123456|aa" demo.log // 执行结果 line1 123456 aa line2 123456 bb line3 123456 cc line4 123456 dd line5 654321 aa

当你通过grep查找关键字,但是还是有非常多匹配的结果时,可以组合前面的lessmore实现分页显示,示例如下:

grep "123456" demo.log | less grep "123456" demo.log | more grep "123456\|aa" demo.log | less grep "123456" demo.log | grep -v "aa" | less


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM