linux日志查询技巧
大日志文件查找日志
split命令对日志文件进行分割
split -1000 xxx.log newlog
然后
组合查讯警告及其他信息
cat start.log | grep WARNING
正则表达式查讯信息
cat start.log | grep [0-9][0-9]
-参考:
1.tail(用于显示指定文件末尾内容)
tail[-f][-cNumber|-nNumber|-mNumber|-bNumber|-kNumber][File]
参数解释:
-f该参数用于监视File文件增长。
-cNumber从Number字节位置读取指定文件
-nNumber从Number行位置读取指定文件。
-mNumber从Number多字节字符位置读取指定文件,比方你的文件假设包括中文字,假设指定-c参数,可能导致截断,但使用-m则会避免该问题。
-bNumber从Number表示的512字节块位置读取指定文件。
-kNumber从Number表示的1KB块位置读取指定文件。
实例:
tail -f start.log
可以查看残生日志的最后几行,也可以实时的查询日志,最后ctrl+c结束
2.more(可以按页来查看文件的内容,还支持直接跳转行等功能)
more[-dlfpcsu][-num][+/pattern][+linenum][file...]
参数解释:
+n从笫n行开始显示
-n定义屏幕大小为n行
+/pattern在每个档案显示前搜寻该字串(pattern),然后从该字串前两行之后开始显示
-c从顶部清屏,然后显示
-d提示“Pressspacetocontinue,’q’toquit(按空格键继续,按q键退出)”,禁用响铃功能
-l忽略Ctrl+l(换页)字符
-p通过清除窗口而不是滚屏来对文件进行换页,与-c选项相似
-s把连续的多个空行显示为一行
-u把文件内容中的下画线去掉
常用操作命令:
Enter向下n行,需要定义。默认为1行
Ctrl+F向下滚动一屏
空格键向下滚动一屏
Ctrl+B返回上一屏
=输出当前行的行号
:f输出文件名和当前行的行号
V调用vi编辑器
!命令调用Shell,并执行命令
q退出more
实例:
more +12 start.log
查询12行以后的日志
3.cat(常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。)
参数解释:
-A,--show-all等价于-vET
-b,--number-nonblank对非空输出行编号
-e等价于-vE
-E,--show-ends在每行结束处显示$
-n,--number对输出的所有行编号,由1开始对所有输出的行数编号
-s,--squeeze-blank有连续两行以上的空白行,就代换为一行的空白行
-t与-vT等价
-T,--show-tabs将跳格字符显示为^I
-u(被忽略)
-v,--show-nonprinting使用^和M-引用,除了LFD和TAB之外
实例
cat start.log
显示start.log
4.less(日志查看及搜索)
参数解释:
-b<缓冲区大小>设置缓冲区的大小
-e当文件显示结束后,自动离开
-f强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g只标志最后搜索的关键词
-i忽略搜索时的大小写
-m显示类似more命令的百分比
-N显示每行的行号
-o<文件名>将less输出的内容在指定文件中保存起来
-Q不使用警告音
-s显示连续空行为一行
-S行过长时间将超出部分舍弃
-x<数字>将“tab”键显示为规定的数字空格
常用操作命令:
j-向前移动一行
k-向后移动一行
G-移动到最后一行
g-移动到第一行
q/ZZ-退出less命令
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与/或?有关)
N:反向重复前一个搜索(与/或?有关)
b向后翻一页
d向后翻半页
h显示帮助界面
Q退出less命令
u向前滚动半页
y向前滚动一行
空格键滚动一行
回车键滚动一页
[pagedown]:向下翻动一页
[pageup]:向上翻动一页
ctrl+F-向前移动一屏
ctrl+B-向后移动一屏
ctrl+D-向前移动半屏
ctrl+U-向后移动半屏
v-使用配置的编辑器编辑当前文件
h-显示less的帮助文档
&pattern-仅显示匹配模式的行,而不是整个文件
当使用less查看大文件时,可以在任何一个位置作标记,可以通过命令导航到标有特定标记的文本位置:
ma-使用a标记文本的当前位置
'a-导航到标记a处
实例
less start.log
5.vi
常用操作命令:
h:光标左移一个字符
l:光标右移一个字符
space:光标右移一个字符
Backspace:光标左移一个字符
k或Ctrl+p:光标上移一行
j或Ctrl+n:光标下移一行
Enter:光标下移一行
w或W:光标右移一个字至字首
b或B:光标左移一个字至字首
e或E:光标右移一个字至字尾
):光标移至句尾
(:光标移至句首
}:光标移至段落开头
{:光标移至段落结尾
nG:光标移至第n行首
n+:光标下移n行
n-:光标上移n行
n$:光标移至第n行尾
H:光标移至屏幕顶行
M:光标移至屏幕中间行
L:光标移至屏幕最后行
0:(注意是数字零)光标移至当前行首
$:光标移至当前行尾
实例
vi start.log
6.spilt
split[-n]file[name]
参数解释:
-n:指定截断的每一文件的长度,不指定缺省为1000行
file:要截断的文件
name:截断后产生的文件的文件名的开头字母,不指定,缺省为x,即截断后产生的文件的文件名为xaa,xab....直到xzz
实例
split -50 start.log start_child
产生:start_childaastart_childab....
7.grep
grep[options]
参数解释
-c:只输出匹配行的计数。
-I:不区分大小写(只适用于单字符)。
-h:查询多文件时不显示文件名。
-l:查询多文件时只输出包含匹配字符的文件名。
-n:显示匹配行及行号。
-s:不显示不存在或无匹配文本的错误信息。
-v:显示不包含匹配文本的所有行。
pattern正则表达式主要参数:
\:忽略正则表达式中特殊字符的原有含义。
^:匹配正则表达式的开始行。
$:匹配正则表达式的结束行。
\<:从匹配正则表达式的行开始。
\>:到匹配正则表达式的行结束。
[]:单个字符,如[A]即A符合要求。
[-]:范围,如[A-Z],即A、B、C一直到Z都符合要求。
。:所有的单个字符。
*:有字符,长度可以为0。
实例
history | grep cp
查询cp命令使用历史