因为在生产环境会遇到很多问题,那么最快的定位方式莫过于去看日志,我们都知道服务器每天会产生大量的日志,那么如何快速的定位也就是最关键的。
本文介绍六种查看日志的命令:tail 、head 、cat 、more 、less 、sed 。 一、tail 1.1 命令功能tail 命令从指定点开始将文件写到标准输出。
1.2 命令格式tail[必要参数][选择参数][文件]
1.3 命令参数-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒 1.4 使用实例tail -n 10 file.log 查询日志尾部最后10行的日志;
tail -n +10 file.log 查询第10行之后的所有日志;
tail -fn 100 file.log 循环实时查看最后100行记录 tail -fn 1000 file.log | grep '关键字' tail -n 5000 file.log |more -1000 二、head 2.1 命令功能head 跟tail 是相反,用来显示档案的开头至标准输出中,默认head 命令打印其相应文件的开头10 行。
head -n 10 file.log 查询日志文件中的头10行日志;
head -n -10 file.log 查询日志文件除了最后10行的其他所有日志; 2.2 命令格式tail[必要参数][选择参数][文件]
2.3 命令参数参考tail 三、cat 3.1 命令功能一次显示整个文件:cat filename 从键盘创建一个文件(只能创建新文件,不能编辑已有文件):cat > filename 将几个文件合并为一个文件:cat file1 file2 > file
3.2 命令格式cat [选项] [文件]...
3.3 命令参数-A, --show-all 等价于 -vET
-b, --number-nonblank 对非空输出行编号
-e 等价于 -vE
-E, --show-ends 在每行结束处显示 $
-n, --number 对输出的所有行编号,由1开始对所有输出的行数编号
-s, --squeeze-blank 有连续两行以上的空白行,就代换为一行的空白行
-t 与 -vT 等价
-T, --show-tabs 将跳格字符显示为 ^I
-v, --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外 3.4 使用实例cat -n file1.log file2.log cat -b file1.log file1.log file.log cat -n file1.log > file.log tac 是将 cat 反写过来,所以他的功能就跟 cat 相反
四、more 4.1 命令功能more 命令和cat 的功能一样都是查看文件里的内容,但有所不同的是more 可以按页来查看文件的内容,还支持直接跳转行等功能。
4.2 命令语法more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ] 4.3 命令参数+n 从笫n行开始显示
-n 定义屏幕大小为n行
+/pattern 在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能
-l 忽略Ctrl+l(换页)字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉 4.4 常用操作命令Enter 向下n行,需要定义,默认为1行
Ctrl + F 向下滚动一屏
空格键 向下滚动一屏
Ctrl + B 返回上一屏
= 输出当前行的行号
:f 输出文件名和当前行的行号
V 调用vi编辑器
!命令 调用Shell,并执行命令
q 退出more 4.5 使用示例more +3 file.log more +/test file.log more -5 log2012.log 五、less 5.1 命令功能less 与more 类似,使用less 可以随意浏览文件,而more 仅能向前移动,不能向后移动,而 less 既可以向前移动,也可以向后移动。
5.2 命令格式less [参数] 文件 5.3 命令参数-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格 5.4 常用操作命令/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向后翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页 5.5 less 命令在查询日志时,一般流程是这样的less file.log
shift + G 命令到文件尾部 然后输入 ? 加上你要搜索的关键字例如:?test
按 n 向上查找关键字 shift + n 反向查找关键字
六、sed 6.1 命令功能这个命令可以查找日志文件特定的一段 , 根据时间的一个范围查询,可以按照行号和时间范围查询 6.2 使用示例sed -n '5,10p' file.log sed -n '/2019-12-17 16:17:20/,/2019-12-17 16:17:36/p' file.log
|