常用命令
先了解常用的命令,然后根据需要组合使用,命令详细内容可看其它文章
grep
具有强大的搜索功能,可以根据正则表达式进行搜索文本,并把匹配的打印出来
tail
tail命令默认在屏幕上显示指定文件的末尾10行。如果给定的文件不止一个,则在显示的每个文件前面加一个文件名标题。如果没有指定文件或者文件名为“-”,则读取标准输入。
注意:如果表示字节或行数的n值之前有一个”+”号,则从文件开头的第n项开始显示,而不是显示文件的最后n项。
如:
tail file (显示文件file的最后10行) tail +20 file (显示文件file的内容,从第20行至文件末尾) tail -n 100 file (显示文件file的最后100行)
head
用于显示文件的开头的内容。在默认情况下,head命令显示文件的头10行内容
more
是一个基于vi编辑器文本过滤器,它以全屏幕的方式按页显示文本文件的内容,支持vi中的关键字定位操作。more名单中内置了若干快捷键,常用的有H(获得帮助信息),Enter(向下翻滚一行),空格(向下滚动一屏),Q(退出命令)
该命令一次显示一屏文本,满屏后停下来,并且在屏幕的底部出现一个提示信息,给出至今己显示的该文件的百分比:--More--(XX%)可以用下列不同的方法对提示做出回答:
- 按Space键:显示文本的下一屏内容。
- 按Enier键:只显示文本的下一行内容。
- 按斜线符
|
:接着输入一个模式,可以在文本中寻找下一个相匹配的模式。 - 按H键:显示帮助屏,该屏上有相关的帮助信息。
- 按B键:显示上一屏内容。
- 按Q键:退出rnore命令。
less
作用与more十分相似,都可以用来浏览文字档案的内容,不同的是less命令允许用户向前或向后浏览文件,而more命令只能向前浏览。用less命令显示文件时,用PageUp键向上翻页,用PageDown键向下翻页。
sed
sed -n '3p' /var/log/yum.log 只打印第三行
sed -n '3,9p' /var/log/yum.log 只查看文件的第3行到第9行
sed -n '/root/p' yum.log 过滤root字符串,显示正行内容
sed -n '/hhh/,/omc/p' yum.log 显示包含"hhh"的行到包含"omc"的行之间的行
查看日志方法
1、滚动刷新方式查看日志最后n行
tail -f -n 100 xxx.log
该方式只适合查看最近少量的日志,如果要查看的日志量比较大的话,窗口无法一次性展示。
把-f 去掉则是非刷新方式查看,把tail改成head,则是查看日志文件最开头的n行。
2、翻页方式查看最后n行
tail -n 2000 xxx.log | more
用tail -n 2000获取文件最后的2000行,然后作为more的输入,more可以通过回车键向后翻页,不能向前翻,如果要前后翻页,可以把more改成less。
3、查看包含某些关键字的日志
1)查看包含关键字xxx的日志,并翻页方式展示
tail -n 2000 xxx.log | grep "xxx" | more
2)查看包含关键字xxx且包含yyy的日志(是否还有其它更好的方式?)
tail -n 2000 xxx.log | grep "xxx" | grep "yyy" | more
3)查看包含关键字xxx或yyy的日志
tail -n 2000 xxx.log | grep -E "xxx|yyy" | more
4)查看关键字xxx附近的日志
思路是首先获取包含关键字xxx的日志的行号,然后再打印出该行附近的信息,可以通过 cat -n输出行号:
cat -n xxx.log | tail -n 200 | grep "xxx"
其中:
cat -n xxx.log 用于输出行号
tail -n 200 用于获取最后的若干行
grep "xxx" 对最后的行做过滤
假设查到的日志的行号是3000,我们想获取该行日志前后各100行:
方式一:sed -n '2900,3100p' xxx.log | more
方式二:tail -n +2900 xxx.log | head -n 200 | more
tail -n +2900获取第2900行以后的数据,head -n 200获取前面得到的数据的前200行,也就是2900到3100之间的数据
4、查看某个时间区间的日志
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' xxx.log 查询2014-12-17 16:17:20到2014-12-17 16:17:36的日志
特别说明:上面的两个日期必须是日志中打印出来的日志,否则无效
5、查看第m行到第n行之间的日志
sed -n 'm,np' xxx.log | more