Linux Ubuntu系统中查看日志的命令有很多:tail, less,cat,tac, head,sed
针对我经常用的,会先上个样例,另外附上帮助中的命令的全部参数及选项
因为经常debug查看日志,less 和 tail 是我用的比较多,个人感觉最实用的,方便搜索日志中的关键词
1、less
对文件或其它输出进行分页显示的工具;搜索功能多,可以向下搜,也可以向上搜。
样例
less xxx.log
G # (大写G,键盘上按 shift + g) 跳转到log日志最后一行
?Word # ?问号后跟上需要搜索的关键词,如:?error
N # (大写N,键盘上按 shift + n) 在多个关键词中切换
命令参数
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
翻译的不好,奉上英文版
2、tail
样例
tail -100 xxx.log # 查看最后100行日志
tail -100 xxx.log | grep "error" # 查看日志最后100行,并搜索“error”
tail -fn 1000 xxx.log # 实时循环查看最后1000行记录
tail -f xxx.log # 实时查看记录
命令参数
-b Number 从 Number 变量表示的 512 字节块位置开始读取指定文件。
-c Number 从 Number 变量表示的字节位置开始读取指定文件。
-f 如果输入文件是常规文件或如果 File 参数指定 FIFO(先进先出),那么 tail 命令不会在复制了输入文件的最后的指定单元后终止,而是继续从输入文件读取和复制额外的单元(当这些单元可用时)。如果没有指定 File 参数,并且标准输入是管道,则会忽略
-k Number 从 Number 变量表示的1KB 块位置开始读取指定文件。
-m Number 从 Number 变量表示的多字节字符位置开始读取指定文件。使用该标志提供在单字节和双字节字符代码集环境中的一致结果。
-n Number 从首行或末行位置来读取指定文件,位置由 Number 变量的符号(+ 或 - 或无)表示,并通过行号 Number 进行位移。
-r 从文件末尾以逆序方式显示输出。-r 标志的缺省值是以逆序方式显示整个文件。
3、cat
样例
cat xxx.log # 查看当前路径下文件内容
cat /home/user/Desktop/xxx.log # 查看绝对路径下文件内容
cat xxx.log yyy.log > zzz.log # 将两个文件下的内容重定向到zzz.log文件
cat xxx.log | tail -n +3000 | head -n 1000 # 从3000行起显示1000行
命令参数
-A, --show-all 等于-vET
-b, --number-nonblank 对非空输出行编号
-e 等于-vE
-E, --show-ends 在每行结束处显示"$"
-n, --number 对输出的所有行编号
-s, --squeeze-blank 不输出多行空行
-t 与-vT 等价
-T, --show-tabs 将跳格字符显示为^I
-u (被忽略)
-v, --show-nonprinting 使用^ 和M- 引用,除了LFD和 TAB 之外
4、head
样例
head -n 10 test.log # 查询日志文件中的头10行日志;
head -n -10 test.log # 查询日志文件除了最后10行的其他所有日志;
命令参数
5、sed
sed -n '5,10p' filename # 按行号,只查看文件的第5行到第10行。
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log # 按时间查看
6、tac
将日志从最后一行到第一行方向显示在屏幕上