一、关键字搜索日志【非常实用】
1:less catalina.out
2:大写字母:F【find的意思,并且其实他正在计算行数】直接到达日志最底部,也就是最新日志
3:ctrl+c【把上面的计算行数运算停止】
4:?要搜索的字符【用通配符?开始查找】
5:键盘上下键来查看 【
- 上下键,
- 空格下一页,
- 字母B上一页 ,
- 字母Q退出,
-
n(小写字母n)上一个关键字位置
-
N(大写字母N)下一个关键词位置】
二、查找某个时间段的日志:
比如查询2018-08-15 10:37:32到2018-08-15 10:38:01这是时间段的日志
命令:sed -n '/starttime/,/endtaime/p' catalina.out
sed -n '/2018-08-15 10:37:32/,/2018-08-15 10:38:01/p' catalina.out
注意:这里的starttime和endtime都必须是日志文件中存在的
如何判定他们存在呢?命令:
grep '2018-08-15 10:37:32' catalina.out
三、一些基础
备注:方框表示文件全部内容,绿色部分表示命令产生的结果
举例
创建一个文件,文件共10行,每行的内容依次为1-10数字,如下:
$ cat testfile
1
2
3
4
5
6
7
8
9
10
当k=3时,分别执行上述命令:
----------------------------------head-------------------------------
head -n 3 testfile[从头数数三行]
1
2
3
head -n +3 testfile
1
2
3
由此可见,head -n k和head -n +k意义相同;
head -n -3 testfile[从头数数到尾部三行]
1
2
3
4
5
6
7
-k的意义是除了最后k行的所有行。
--------------------------------tail------------------------------------------
tail -n 3 testfile[从尾数三行]
8
9
10
tail -n -3 testfile
8
9
10
由此可见,tail -n k和tail -n -k意义相同;
tail -n +3 testfile;
3
4
5
6
7
8
9
10
- k行开始,输出所有行;
总结
-
head -n k
=head -n +k
,tail -n k
=tail -n -k
,可以简单记忆为头正尾负
; -
无论k前面的符号怎样,tail都是输出尾部内容,head都是输出头部内容的;
-
特别注意tail -n +k,这里的k表示从第K行开始;(因此上例中,head -n -3输出7行,而tail -n +3输出8行。如果是反着的,则输出其余的)
3、根据 关键词 查看日志 并返回关键词所在行:
方法一:cat 路径/文件名 | grep 关键词
demo:
cat test.log | grep "http" # 返回test.log中包含http的所有行
方法二:grep -i 关键词 路径/文件名 (与方法一效果相同,不同写法而已)
demo:
grep -i "http" ./test.log # 返回test.log中包含http的所有行