在公司需要看线上日志,这里总结一下在工作中经常会用到的一些linux命令。

1.    cd  /logs   进入logs的目录

2.    ll    打开此目录下存放有哪些文件

3.  less xx.log   打开一个具体的文件,按q退出

4.  grep命令(一般用来做条件查询),用法总结如下:

grep命令常用方法总结

grep xxx aaa.log  bbb.log

在aaa,bbb日志文件中查询xxx

grep x aaa.log |  grep y

在aaa.log日志文件中查找匹配x与y(同时包含)的行

grep x | y aaa.log

在aaa.log中查找匹配x或y(不同时包含)的行

grep x aaa.log -A2

在aaa.log中查找匹配x的行,显示前两行

grep x aaa.log -B2

在aaa.log中查找匹配x的行,显示后两行

grep x aaa.log -C2

在aaa.log中查找匹配x的行,显示前后两行

grep -i x aaa.log

在aaa.log中查找匹配x的行,不区分大小写

grep -v x aaa.log

在aaa.log中查找不包含x的行

grep -c x aaa.log

统计包含x的行数

grep -r x

遍历当前目录及所有子目录里查找匹配x的行

grep x aaa.log > bbb.log

查找并输出到指定文件

grep ^x aaa.log

查找以x开头的行

grep x$ aaa.log

查找以y结尾的行

grep ^$ aaa.log

查找空行

5 查看某个指定时间段的日志信息:

5.1  sed -n '/起始时间/,/结束时间/p' 日志文件名称

5.2  grep命令:

按分钟段:grep '2019-12-03 11:4[1-2]' aaa.log

按秒钟段: grep '2019-12-03 11:42:[01-59]' aaa.log

6 tail  -n  10  aaa.log   查询日志尾部最后10行的日志

7 head -n 10  aaa.log  查询日志文件中的头10行日志

8 cat -n test.log |grep "地形" |more     分页打印,通过点击空格键翻页

9 tail -f aaa.log     以一定的时间实时追踪该档的所有更新(日志信息为实时最新)不断刷新

ctr1 + s  暂停终端刷新

ctrl + q  继续终端

ctrl + c  退出tail -f 命令

 10 awk '/2018-08-08 16:33:30/&& /警/ {print}' aaa.log  根据多条件查询  (如日期+关键字)

11 sed -n '5,10p' aaa.log   查看文件的5-10行

12 cat access.log | sort -k 2 -n -r | head -10  查看最耗时的前十项

13.zcat xxx.2019-12-02.1.log-xxx.tar.gz | grep --binary-file=text 'xxx' -C10  不解压压缩文件,查看压缩日志文件

加粗字体的意思是让二进制文件等同于文本形式,输出

14.一个日志文件打满了,就会在下一个日志文件显示,一般来说,这些日志是按日期往后排的,所以我们查看日志的时候,不确定到底在哪个日志文件中,可以按下述方式查看

less xxx.2019-12-18.* xxx.log | grep 关键字

或者

grep 关键字 xxx.2019-12-18.*.log