查看日志的六种命令详解
# 查看日志的六种命令详解
# 六种常用命令
- tail
- head
- cat
- more
- sed
- less
# 1、tail
# 命令格式
tail [参数] [文件]
1
# 常用参数
-f 循环读取
-q 不显示处理信息
-v 显示详细的处理信息
-c <数目> 显示的字节数
-n <行数> 显示文件的尾部 n 行内容
--pid=PID 与-f合用,表示在进程ID,PID死掉之后结束
-q, --quiet, --silent 从不输出给出文件名的首部
-s, --sleep-interval=S 与-f合用,表示在每次反复的间隔休眠S秒
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 用法
可以用于实时监控日志变动
# 实时展示日志末尾内容,默认最后10行,相当于增加参数 -n 10(tail -f -n 10 server.log)
tail -f server.log
# 查看固定线程http-nio-8091-exec-7
tail -f server.log | grep 'http-nio-8091-exec-7'
# -C 选项来显示检索结果的【前后几行】,-A 选项展示检索结果【后几行】,-B选项展示检索结果【前几行】
tail -f server.log | grep -C 5 'http-nio-8091-exec-7'
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 2、head
# 命令格式
head [参数] [文件]
1
# 常用参数
-q 隐藏文件名
-v 显示文件名
-c <数目> 显示的字节数
-n <行数> 显示的行数
1
2
3
4
2
3
4
# 用法
跟 tail
是相反的,head
是看前多少行日志
# 查询日志文件中的头10行日志
head -n 10 server.log
# 查询日志文件【除了】最后 10 行的其他所有日志
head -n -10 server.log
1
2
3
4
5
2
3
4
5
# 3、cat
# 命令格式
cat [参数] [文件]
1
# 常用参数
-n 或 --number:显示行号,对输出的每一行都加上行号。
-b 或 --number-nonblank:仅对非空行显示行号,空行不计数。
-s 或 --squeeze-blank:压缩连续的空白行,即相邻的空白行会被合并成一行。
-E 或 --show-ends:在每一行的末尾显示 $ 符号,用于标识行尾。
-T 或 --show-tabs:将制表符(tab)显示为 ^I,便于区分普通空格和制表符。
-A 或 --show-all:等同于 -vET 的组合,即显示控制字符(如退格符)、行尾 $ 符号以及将制表符显示为 ^I。
-v 或 --show-nonprinting:使用转义序列显示非打印字符,如控制字符。
> 文件名:重定向输出,将cat命令的输出内容写入到指定的文件中,而非打印到屏幕上。如果目标文件已存在,则会被覆盖。
>> 文件名:追加重定向,将cat命令的输出内容添加到指定文件的末尾,保留原有文件内容。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# 用法
查看文件内容
# 最基本的用法是直接指定一个或多个文件名,cat 将依次读取并显示这些文件的内容:
cat file.txt
# 同时查看多个文件的内容:
cat file1.txt file2.txt file3.txt
# 显示行号
cat -n file.txt
# 作为数据流的一部分,`cat` 常与其他命令配合使用,如通过管道传递给 `grep` 命令进行内容搜索
cat -n file.txt | grep "search_pattern"
# 查看test.log前200行
cat test.log | head -n 200
# 查看test.log最后10行
cat test.log | tail -n 10
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
创建或合并文件
# 创建新文件并从键盘输入内容,按 `Ctrl+D` 结束输入
cat > new_file.txt
# 合并多个文件内容并保存到一个新的文件中
cat file1.txt file2.txt > combined_file.txt
# 追加一个或多个文件内容到已存在的文件末尾
cat file_to_append.txt >> existing_file.txt
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 4、more
# 命令格式
more [参数] [文件]
1
# 常用参数
-d 或 --squeeze-blank:在显示多行空行时,将其压缩为一行。
-l 或 --lines=NUM:指定每屏显示的行数,默认值通常为系统设定的屏幕高度。
-f 或 --force:即使文件没有换行符(\n),也尝试逐行显示。
-p 或 --prompt:在每个屏幕底部显示提示信息,而不是默认的 --More--。
-c 或 --clear-screen:每次显示新屏幕前清屏。
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 用法
more
命令是一个简单的分页查看工具,适用于浏览长篇文本文件或命令输出。它允许用户逐屏查看内容,并提供了搜索、向上/向下滚动等功能。尽管功能相对有限,但对于大多数日常使用场景来说已经足够。- 在现代 Unix-like 系统中,
less
命令提供了更多高级功能和更友好的交互方式,通常被视为more
的增强替代品。不过,对于那些只需要基础分页浏览功能的用户而言,more
命令依然不失为一个便捷的选择。
# 分页浏览文件内容
more
命令用于分页查看文件内容,一次显示一屏内容。当文件内容超过当前屏幕高度时,用户需要按下特定键来滚动查看后续内容。
基本用法如下:
more file.txt
1
在查看过程中,您可以使用以下按键进行操作:
空格键
或回车键
:向下滚动一屏内容。b
或Ctrl+B
:向上滚动一屏内容。/pattern
:在文件中搜索指定的文本模式,按n
键查找下一个匹配项,按N
键查找上一个匹配项。q
或Ctrl+C
:退出more
命令并返回到命令行。
# 控制每屏显示的行数
使用 -l
或 --lines
参数自定义每屏显示的行数:
more -l 50 file.txt
1
这将使 more
命令每屏显示 50 行内容。
# 合并并分页查看多个文件
more
命令可以接受多个文件作为参数,依次显示它们的内容:
more file1.txt file2.txt file3.txt
1
# 与管道结合使用
more
命令常用于接收其他命令的输出,通过管道 (|
) 实现分页显示:
ls -l | more
1
在这个例子中,ls -l
命令列出当前目录下的详细文件信息,其输出通过管道传递给 more
命令进行分页显示。
# 5、sed
这个命令可以查找日志文件特定的一段,根据时间的一个范围查询,可以按照行号和时间范围查询
# 只查看文件的第 5 行到第 10 行
sed -n '5,10p' test.log
# 按照时间段
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
1
2
3
4
5
2
3
4
5
# 6、less
# 安装
如果键入 less
指令的时候,显示下面的内容:
bash: less: command not found
1
则,需要安装 less
指令
# Ubuntu
apt-get install less
# CentOS
yum install less
# Docker
docker run cmd.cat/less less
1
2
3
4
5
6
7
8
2
3
4
5
6
7
8
# 命令格式
less [参数] 文件
1
# 常用选项
-b <缓冲区大小> 设置缓冲区的大小
-e 当文件显示结束后,自动离开
-f 强迫打开特殊文件,例如外围设备代号、目录和二进制文件
-g 只标志最后搜索的关键词
-i 忽略搜索时的大小写
-m 显示类似more命令的百分比
-N 显示每行的行号
-o <文件名> 将less 输出的内容在指定文件中保存起来
-Q 不使用警告音
-s 显示连续空行为一行
-S 行过长时间将超出部分舍弃
-x <数字> 将"tab"键显示为规定的数字空格
/字符串:向下搜索"字符串"的功能
?字符串:向上搜索"字符串"的功能
n:重复前一个搜索(与 / 或 ? 有关)
N:反向重复前一个搜索(与 / 或 ? 有关)
b 向上翻一页
d 向后翻半页
h 显示帮助界面
Q 退出less 命令
u 向前滚动半页
y 向前滚动一行
空格键 滚动一页
回车键 滚动一行
[pagedown]: 向下翻动一页
[pageup]: 向上翻动一页
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
# 用法
# 查看文件内容
less test.log
1
2
2
在查看过程中,您可以使用以下按键进行操作:
上下方向键 或 j、k:向下或向上滚动一行。
空格键 或 PgDn:向下滚动一屏内容。
b 或 PgUp:向上滚动一屏内容。
G:跳转到文件末尾。
g 或 1G:跳转到文件开头。
/pattern:在文件中搜索指定的文本模式,按 n 键查找【下一个】匹配项,按 N 键查找【上一个】匹配项。
?pattern:在文件中反向搜索指定的文本模式,按 n 键查找【上一个】匹配项,按 N 键查找【下一个】匹配项。
h 或 ?:显示帮助信息。
q 或 Ctrl+C:退出 less 命令并返回到命令行。
1
2
3
4
5
6
7
8
9
2
3
4
5
6
7
8
9
# 学习参考
上次更新: 2024/9/25 11:16:13