linux - tail
系统运维中,查看日志时,最经常使用的就是 grep、cat 和 tail 三个命令。
head 与 tail 是两个成对的命令,语法基本一致,head 用于看文件开头,tail 用于看文件结尾。
区别:使用 -n 命令是,含义可能与理解的不同;head 无法持续跟踪文件内容,也就是没有说 -f 命令。
# 查看文件的最后 10 行内容
tail test.txt
# 从第 20 行开始,读取后面所有内容
tail -n +20 test.txt
# 读取文件最后 20 行的内容
tail -n -20 test.txt
# 输出文件的最后 100 个字节内容
tail -c 100 test.txt
# 持续查看文件的最新内容
tail -f test.txt
# 持续查看文件的最新内容,并且只看带 'Exception' 的行
tail -f test.txt|grep 'Exception'
管道符
# 持续查看文件的最新内容,并且将内容另存到新的文件
tail -f test.txt | tee tmp.log
-n 的含义
# 倒数第 20 行开始,tail 读后面的,head 读前面的
tail -n -20 test.txt
# 正数第 20 行开始,tail 读后面的,head 读前面的
tail -n +20 test.txt
# 命令简写,挺让人费解的,记不住就不管它,用多了就习惯了
# 读取后 20 行,等价于:tail -n -20 test.txt
tail -20 test.txt/tail -n 20 test.txt
# 读取前 20 行,等价于:head -n +20 test.txt
head -20 test.txt/head -n 20 test.txt
命令组合
业务场景:文件太大了,只读取一部分内容
# 一般配合 grep 使用,先收索关键字所在的行号,然后查看附近几行的数据
grep -n keyword test.txt
# 从文件 20 行开始,读取前 10 行内容
tail -n +20 test.txt|head -n +10
疯狂的妞妞 :每一天,做什么都好,不要什么都不做!