【引言】
排查线上环境问题,少不了去线上查日志。而使用什么命令,能快速准确地查到我们需要查找地日志信息,也是我们需要掌握的一项技能。
【学习】
Linux查看命令有多种:tail,headlinux命令linux命令,cat,tac,more
(一) tail 命令
参数:
1)-f 循环读取
2)-q 不显示处理信息
3)-v 显示详细的处理信息
4)-c<数目> 显示的字节数
5)-n<行数> 显示行数
应用:
命令含义
tail -f test.log
查看实时日志
tail -100f test.log
查看最后100行日志记录
tail -n 10 test.log
查询日志尾部最后10行的日志
tail -n +10 test.log
查询10行之后的所有日志
tail -fn 100 test.log
循环实时查看最后100行记录
(二) head 命令
功能
跟tail是相反的,tail是查看后多少行日志
应用
命令含义
head -n 10 test.log
查询日志文件中的前10行日志
head -n -10 test.log
查询日志文件除了最后10行的其他所有日志
(三) cat 命令
功能
1)一次显示整个文件。cat filename
2)创建一个文件。cat > filename
3)将几个文件合并为一个文件。 cat file1 file2 > file
参数:
1)-n 由1开始对所有输出的行数编号
2)-b 和-n相似,只不过对于空白行不编号
3)-s 当遇到有连续两行以上的空白行,就代换为一行的空白行
4)-c<数目> 显示的字节数
5)-n<行数> 显示行数
应用
tail -n 1000 /var/log/messages。result=$(cat $dir/docker_build_result.log | tail -n 1)。运行后会产生6个输出文件,test.log、test.log.1、test.log.2、test.log.3、test.log.4、test.log.5。
2)cat -n test.log |grep “debug” #得到关键日志的行号
3)cat filename | tail -n +3000 | head -n 1000 #从第3000行开始,显示1000行。即显示3000~3999行
4)cat filename| head -n 3000 | tail -n +1000 #显示1000行到3000行
5)cat -n textfile1 > textfile2 #把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里
6)cat -b textfile1 textfile2 >> textfile3 #把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里
(四) tac 命令
功能
tac是将cat反写过来,它的功能跟cat相反,cat是由第一行到最后一行连续显示,而tac是由最后一行到第一行反向显示。
(五) more 命令
功能
类似cat,不过以一页一页形式显示。基本指令按空白键(space)往下一页显示,按返回键(back)往上一页显示,还有字符搜索功能(与vi相似)
参数
1)-num 一次显示的行数
2)-d 提示使用者,在画面下方显示 [Press space to continue, ‘q’ to quit.] ,如果使用者按错键,则会显示 [Press ‘h’ for instructions.] 而不是 ‘哔’ 声