Linux 查看日志文件命令

时间:2022-12-11 16:27:47
  1. tail
  2. head
  3. cat
  4. tac
  5. echo

1. tail

tail -f test.log

你会看到屏幕不断有内容被打印出来. 这时候中断第一个进程Ctrl-C。

2. head

linux 如何显示一个文件的某几行(中间几行)

从第3000行开始,显示1000行。即显示3000~3999行

cat test.log | tail -n +3000 | head -n 1000

显示1000行到3000行

cat test.log | head -n 3000 | tail -n +1000

*注意两种方法的顺序

分解:

tail -n 1000:显示最后1000
tail -n +1000:从1000行开始显示,显示1000行以后的
head -n 1000:显示前面1000

用sed命令

sed -n '5,10p' test.log 这样你就可以只查看文件的第5行到第10行。

例:

cat test.log | tail -n 1000 # 输出mylog.log 文件最后一千行

3. cat

cat主要有三大功能:
1.一次显示整个文件。

$ cat filename

2.从键盘创建一个文件。

$ cat > filename 

只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件:

$cat file1 file2 > file

参数:

-n--number 由 1 开始对所有输出的行数编号
-b--number-nonblank-n 相似,只不过对于空白行不编号
-s--squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
-v--show-nonprinting

例:

把 textfile1 的档案内容加上行号后输入 textfile2 这个档案里

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的档案内容加上行号(空白行不加)之后将内容附加到 textfile3 里。

cat -b textfile1 textfile2 >> textfile3

把test.txt文件扔进垃圾箱,赋空值test.txt

cat /dev/null > /etc/test.txt 

注意:>意思是创建,>>是追加。千万不要弄混了。

4. tac

tac (反向列示)

tac 是将 cat 反写过来,所以他的功能就跟 cat 相反。

cat 是由第一行到最后一行连续显示在萤幕上,

而 tac 则是由最后一行到第一行反向在萤幕上显示出来!

5. echo

在Linux中echo命令用来在标准输出上显示一段字符,比如:

echo "the echo command test!"

这个就会输出“the echo command test!”这一行文字!

echo "the echo command test!">a.sh

这个就会在a.sh文件中输出“the echo command test!”这一行文字!

该命令的一般格式为: echo [ -n ] 字符串其中选项n表示输出文字后不换行;字符串能加引号,也能不加引号。

用echo命令输出加引号的字符串时,将字符串原样输出;

用echo命令输出不加引号的字符串时,将字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。

grep 同时满足多个关键字和满足任意关键字

1.满足任意条件

grep -E "word1|word2|word3"   file.txt

满足任意条件(word1、word2和word3之一)将匹配。

2.满足所有条件

grep word1 file.txt | grep word2 |grep word3

必须同时满足三个条件(word1、word2和word3)才匹配。

多管道,多次筛选。

3.使用正则表达式 -E 选项

grep -E "[1-9]+" 

egrep "[1-9]+"

常用命令

1.查看日志常用命令

tail:  
-n 是显示行号;相当于nl命令;例子如下:
tail -100f test.log 实时监控100行日志
tail -n 10 test.log 查询日志尾部最后10行的日志;
tail -n +10 test.log 查询10行之后的所有日志;
head:
跟tail是相反的,tail是看后多少行日志;例子如下:
head -n 10 test.log 查询日志文件中的头10行日志;
head -n -10 test.log 查询日志文件除了最后10行的其他所有日志;
cat:
tac是倒序查看,是cat单词反写;例子如下:
cat -n test.log |grep "debug" 查询关键字的日志

1. 按行号查看—过滤出关键字附近的日志

1)cat -n test.log | grep “debug”

得到关键日志的行号

2)cat -n test.log | tail -n +92 | head -n 20

选择关键字所在的中间一行. 然后查看这个关键字前10行和后10行的日志:

tail -n +92 表示查询92行之后的日志

head -n 20 则表示在前面的查询结果里再查前20条记录

2. 根据日期查询日志

sed -n '/2017-08-23 00:05:00,446/,/2017-08-23 00:05:00,546/p'  test.log

特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效;

先 grep ‘2014-12-17 16:17:20’ test.log 来确定日志中是否有该 时间点

3. 日志内容特别多,打印在屏幕上不方便查看

1.使用 more 和 less 命令,

cat -n test.log |grep "debug" |more     

这样就分页打印了,通过点击空格键翻页

2.使用 >xxx.txt 将其保存到文件中,到时可以拉下这个文件分析

cat -n test.log |grep "debug"  >debug.txt

more命令

more命令是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。

该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:–More–(XX%)

可以用下列不同的方法对提示做出回答:

按键 说明
按Space键: 显示文本的下一屏内容。
按B键: 显示上一屏内容。
按Enter键: 只显示文本的下一行内容。
按斜线符: 接着输入一个模式,可以在文本中寻找下一个相匹配的模式。
按H键: 显示帮助屏,该屏上有相关的帮助信息。
按Q键: 退出more命令