昨天实习面试被问到Linux下如何查看最后100行日志内容,没答上来,回来找下资料好好学习一下
介绍查看日志命令前,先看到如何统计日志文件中行数命令wc。
主要用法是:wc [选项] filename
例如:wc -l debug.log --统计debug.log文件的行数
wc -m debug.log --统计debug.log文件的字符数
其他具体的可以输入man wc查看
输入wc -l debug.log 得到
sed是非交互式的编辑器,是面向字符流的编译器,首先吧当前处理的行存储到临时缓冲区中,成为“模式空间”(pattern space),然后处理缓冲区的内容,处理完后,把内容发送到屏幕。下面是Linux自带(官方?)的解释。
这是一个功能很强大的命令,用来只显示日志有点大材小用(我自己的感觉)。
命令格式:sed [选项] {处理方式} filename(s) ---------(s)代表可以处理多个文件
例如:sed -n '5,10p' debug.log ---------用5,10p处理文件debug.log,p表示显示出来(5,10是第5行到第10行)
sed -n '5,10d' debug.log ---------删除第5行到第10行,d表示删除
-n :只打印处理方式匹配的行
-e :直接在命令行模式上进行sed动作编辑,此为默认选项
-f :将sed的动作写到一个文件中,用文件名代替{处理方式},来处理文件
-r :支持扩展表达式
-i :直接修改文件内容
d 删除行
h 把模式空间里的内容复制到暂存缓冲区
H 把模式空间里的内容追加到暂存缓冲区
g 把暂存缓冲区里的内容复制到模式空间,覆盖原有的内容
G 把暂存缓冲区的内容追加到模式空间里,追加在原有内容的后面
l 列出非打印字符
p 打印行
n 读入下一输入行,并从下一条命令而不是第一条命令开始对其的处理
最重要的是{处理方式}可以用正则表达式。
sed是个功能很强大的命令,还有许多功能要我去摸索。
cat命令是连接文件并打印到输出设备(屏幕、文件等)上,cat经常用来显示文件内容。
cat详细解释在上一篇博客上。
命令格式:tail [选项] [参数] filename
例如:tail filename --------默认显示文件最后10行
tail -n +1000 filename -------显示filename文件从第1000行到最后
tail -n 1000 filename ---------显示filename文件最后1000行
tail -c 1000 filename ---------显示filename文件最后1000个字节内容
命令格式:head [选项] [参数] filename
例如:head filename --------默认显示文件开始10行
head -n 1000 filename ---------显示filename文件开始1000行
head -c 1000 filename ---------显示filename文件开始1000个字节内容
cat filename | tail -n +10000 | head -n 100 -----------从10000行开始,显示100行
cat filename | head -n 10000 | tail -n +10100 -----------显示从10000到10100行
可以配合less或者more使用,对日志进行分页显示
例如:cat debug.log | tail -n +10000 | head -n 2000 | less
配合按键:f键或者空格下一页,b键上一页,回车下一行(用more类似,但是我的more命令b键上一页不好使,网上都说可以,难度是我版本问题吗 Ubuntu16.04)
以上就是我自己学习的,有错误的请轻喷!!