日志的查看
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次,{}转义)