日志的查看

1 less

less [参数]  文件 

命令参数:
-b <缓冲区大小> 设置缓冲区的大小
-e  当文件显示结束后,自动离开
-f  强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g  只标志最后搜索的关键词
-i  忽略搜索时的大小写
-m  显示类似more命令的百分比
-N  显示每行的行号   
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q  不使用警告音
-s  显示连续空行为一行
-S  行过长时间将超出部分舍弃
-x <数字> 将“tab”键显示为规定的数字空格
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关,如果是?,按n往上查询,按N往下查询,如果是/按N往上查询,按n往下查询)
N:反向重复前一个搜索(与 / 或 ? 有关,与n相反)
b  向后翻一页
d  向后翻半页
h  显示帮助界面
Q  退出less 命令
u  向前滚动半页
y  向前滚动一行
空格键 滚动一行
回车键 滚动一页
[pagedown]: 向下翻动一页
[pageup]:   向上翻动一页

里面比较重要的有:

-N  显示每行的行号   
/字符串:向下搜索“字符串”的功能
?字符串:向上搜索“字符串”的功能
n:重复前一个搜索(与 / 或 ? 有关,如果是?,按n往上查询,按N往下查询,如果是/按N往上查询,按n往下查询)
N:反向重复前一个搜索(与 / 或 ? 有关,与n相反)
b  向后翻一页
d  向后翻半页

但是有一个问题,就是less直接打开默认是日志的首页,咱们有时候需要打开以后进入到日志的底部,然后往上找,怎么办?
办法是:

刚进入less命令后,直接按shift+g移动到最后一行。
然后按?输入要查询的关键字,按回车键,然后按n往上查询即可。

还有就是建议以后查看日志带上行号,看起来也方便。

2 tail

tail 命令从指定点开始将文件写到标准输出.使用tail命令的-f选项可以方便的查阅正在改变的日志文件,tail -f filename会把filename里最尾部的内容显示在屏幕上,并且不断刷新,使你看到最新的文件内容。

tail[必要参数][选择参数][文件]   
参数说明
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c<数目> 显示的字节数
-n<行数> 显示行数
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束. 
-q, --quiet, --silent 从不输出给出文件名的首部 
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
常用的命令
tail -f  nohup.out 看实时日志
tail -f -n  100 nohup.out 查看末尾指定行数

3 cat

cat命令的用途是连接文件或标准输入并打印。这个命令常用来显示文件内容,或者将几个文件连接起来显示,或者从标准输入读取内容并显示,它常与重定向符号配合使用。

cat主要有三大功能:
1.一次显示整个文件:cat filename
2.从键盘创建一个文件:cat > filename 只能创建新文件,不能编辑已有文件.
3.将几个文件合并为一个文件:cat file1 file2 > file

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 -n test.log |grep "debug"

grep

grep  -n  t[ea]st info.log       查询test或者tast   ([]一个字符)
grep  -n  [^g]oo                查询oo但不包含goo的行  (^在[]内表示反向选择)
grep  -n  [^a-z]oo              查询oo但不包含小写字母+oo的行 ([a-z] 一个小写字母)
grep  -n  [0-9]         查询包含数字的行  ([0-9] 一个数字)
grep  -n  ^the          查询the开头的行 (^不在[]内表示定位到行首)
grep  -n  ^[^a-zA-Z]        查询不是以字母开头的行 (^反向和定位)
grep  -n  \.$                   查询以.结尾的行 (\转义 $结尾)
grep  -n  ^$                    找出空白行  (^$  空白行)
grep  -n  g..d          查询g??d的字符串的行(.表示一个)
grep  -n  ooo*          查询至少包含两个oo的行(* 表示重复前边一个字符0-n次)
grep  -n  goo*g             查询g开头g结尾且中间至少包含一个o的行
grep  -n  g.*g          查询g开头g结尾且中间字符可有可无的行 (.*表示没有或有任意个字符)
grep  -n  o\{2\}            查询oo的行({2} 前边字符重复2次,{}转义)