在公司需要看线上日志,这里总结一下在工作中经常会用到的一些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