由于在生产环境会遇到不少问题,那么最快的定位方式莫过于去看日志,咱们都知道服务器天天会产生大量的日志,那么如何快速的定位也就是最关键的。git
本文介绍六种查看日志的命令:tail
、head
、cat
、more
、less
、sed
。github
tail
tail
命令从指定点开始将文件写到标准输出。服务器
tail[必要参数][选择参数][文件]
less
-f 循环读取 -q 不显示处理信息 -v 显示详细的处理信息 -c<数目> 显示的字节数 -n<行数> 显示行数 -q, --quiet, --silent 从不输出给出文件名的首部 -s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
tail -n 10 file.log 查询日志尾部最后10行的日志; tail -n +10 file.log 查询第10行以后的全部日志; tail -fn 100 file.log 循环实时查看最后100行记录
tail
通常还会配合着grep
用tail -fn 1000 file.log | grep '关键字'
Ctrl + F
或者 空格键能够翻页查看tail -n 5000 file.log |more -1000
head
head
跟tail
是相反,用来显示档案的开头至标准输出中,默认head
命令打印其相应文件的开头10
行。编辑器
head -n 10 file.log 查询日志文件中的头10行日志; head -n -10 file.log 查询日志文件除了最后10行的其余全部日志;
tail[必要参数][选择参数][文件]
post
参考tail
ui
cat
cat filename
cat > filename
cat file1 file2 > file
cat [选项] [文件]...
spa
-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 以外
file1.log
的文件内容加上行号后输入 file2.log
这个文件里cat -n file1.log file2.log
file1.log
和 file2.log
的文件内容加上行号(空白行不加)以后将内容附加到 file.log
里cat -b file1.log file1.log file.log
file1.log
的文件内容加上行号后输入 file.log
这个文件里cat -n file1.log > file.log
tac
是将cat
反写过来,因此他的功能就跟cat
相反日志
more
more
命令和cat
的功能同样都是查看文件里的内容,但有所不一样的是more
能够按页来查看文件的内容,还支持直接跳转行等功能。code
more [-dlfpcsu ] [-num ] [+/ pattern] [+ linenum] [file ... ]
+n 从笫n行开始显示 -n 定义屏幕大小为n行 +/pattern 在每一个档案显示前搜寻该字串(pattern),而后从该字串前两行以后开始显示 -c 从顶部清屏,而后显示 -d 提示“Press space to continue,’q’ to quit(按空格键继续,按q键退出)”,禁用响铃功能 -l 忽略Ctrl+l(换页)字符 -p 经过清除窗口而不是滚屏来对文件进行换页,与-c选项类似 -s 把连续的多个空行显示为一行 -u 把文件内容中的下画线去掉
Enter 向下n行,须要定义,默认为1行 Ctrl + F 向下滚动一屏 空格键 向下滚动一屏 Ctrl + B 返回上一屏 = 输出当前行的行号 :f 输出文件名和当前行的行号 V 调用vi编辑器 !命令 调用Shell,并执行命令 q 退出more
3
行起的内容more +3 file.log
test
字符串的行,并从该处前两行开始显示输出more +/test file.log
more -5 log2012.log
less
less
与more
相似,使用less
能够随意浏览文件,而more
仅能向前移动,不能向后移动,而 less
既能够向前移动,也能够向后移动。
less [参数] 文件
-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]: 向上翻动一页
less
命令在查询日志时,通常流程是这样的less file.log
shift + G
命令到文件尾部 而后输入 ?
加上你要搜索的关键字例如:?test
n
向上查找关键字shift + n
反向查找关键字sed
这个命令能够查找日志文件特定的一段 , 根据时间的一个范围查询,能够按照行号和时间范围查询
5
行到第10
行sed -n '5,10p' file.log
sed -n '/2019-12-17 16:17:20/,/2019-12-17 16:17:36/p' file.log