文章目录
查看日志常用命令
grep tail、head、cat、more、less
grep 命令
grep [options] PATTERN filename:查找日志文件中的 PATTERN 关键字,用于过滤/搜索的特定字符。PATTERN 要搜索的模式,可以是字符串或正则表达式。
- 日志查找- 查找字符串grep “error” filename.txt- -i:查找字符串忽略大小写grep -i “error” filename.txt- -r:递归查找子目录中的文件grep -r “error” /var/log/- -n:查找字符串并显示所在行的行号grep -n “error” filename.txt- -v:查找不包含该字符串的所有行grep -v “error” filename.txt- -w:精确匹配,完全匹配字符串的行,而不是字串grep -w “error” filename.txt- -A <显示行数> :除了显示符合范本样式的那一列之外,并显示该行之后的内容。grep -A 10 ‘keywords’ service.log- -B <显示行数> :除了显示符合样式的那一行之外,并显示该行之前的内容。grep -B 10 ‘keywords’ service.log- -C <显示行数> :除了显示符合样式的那一行之外,并显示该行之前后的内容grep -C 10 ‘keywords’ service.log- -F:将模式视为固定字符串,而不是正则表达式。即使模式中包含特殊字符,这些字符也不会被解释。grep -F “*” service.log
- 或操作- -e:指定字符串做为查找文件内容的样式,可以用于在指定的文件中搜索多个模式。grep -e PATTERN1 -e PATTERN2 … filename。 // 找出匹配 PATTERN1 或 PATTERN2 的所有行-e PATTERN 指定要匹配的模式,可以使用多个
-e
选项来指定多个模式。- -E:将样式为延伸的正则表达式来使用,是用于启用扩展正则表达式(ERE)的 grep 命令选项,这使得用户能够使用更复杂的模式匹配功能。grep -E ‘str1|str2|str3’ filename。 // 找出文件(filename)中包含 str1 或者包含 str2 或者包含 str3 的行。grep -E “a+” filename.txt。 // 查找包含一个或多个 “a” 的行。grep -E “o{3}” filename.txt // 查找包含恰好三个 “o” 的行。 - 与操作- 可以将
grep
组合在一起,通过管道过滤匹配达到一行同时匹配多个关键字的效果:grep “pattern1” filename | grep “pattern2” :显示既匹配 pattern1 又匹配 pattern2 的行。首先查找包含 “pattern1” 的行,然后从中进一步筛选出包含 “pattern2” 的行。- 还可以使用 -E 延伸的正则表达式来实现grep -E “pattern1.*pattern2|pattern2.*pattern1” filename通过匹配正则表达式 pattern1.*pattern2 或 pattern2.*pattern1 的行,这两个表达式同时包含了 pattern1 和 pattern2。 - egrep 是 grep 命令的一个变体,专门用于支持扩展正则表达式(ERE)。- egrep “a+” filename.txt 相当于 grep -E “a+” filename.txt
- fgrep 是 grep 命令的一个变体,用于进行固定字符串匹配。- fgrep “error” service.log 相当于 grep -F “error” service.log
- zgrep 是一个用于搜索压缩文件中模式的命令行工具。它可以直接在
.gz
格式的压缩文件中查找指定的文本模式,而无需先解压文件。- zgrep [选项] PATTERN filenamezgrep “pattern” service.log
tail 命令
tail 命令用于显示文件的最后几行内容。
tail [必要参数] [选择参数] [文件]
-f 循环读取:实时跟踪文件的新增内容,持续输出文件的新内容,直到用户手动停止。用于监控日志文件的变化。
- tail -f service.log
-n<行数> 显示的行数。
- tail -n 100 service.log 查询最后100行的日志
- tail -n +100 service.log 从第100行开始查看日志
- tail -n -1000 service.log | more -100 从倒数第1000行开始查看日志,可以使用 ctrl + f 或者空格键每次向下翻页100行
按 ctrl + c 退出 tail 命令
head 命令
head
命令行用于显示文件的前几行内容。
head 命令和 tail 相反,查看前多少行日志。
- head -n 100 service.log 查询前100 行的日志
- head -n -100 service.log 查询所有日志除了最后100行
按 ctrl + c 退出 head 命令
cat 命令
cat
命令用于连接和显示文件内容。
显示文件内容:cat 可以直接在终端中显示一个或多个文件的内容。
- cat file1.log file2.log
连接文件:可以将多个文件的内容连接在一起并输出到一个新文件。
- cat file1.log file2.log > file3.log
创建文件:可以通过标准输入创建新文件。
- cat > filename.log
追加内容到文件:将标准输入追加到文件 filename 的末尾。
- cat >> filename.log
使用管道:将 cat 命令的输出作为另一个命令的输入。
- cat filename.log | command。如:cat filename.log | tail -n 10 查看文件最后10行
查看日志
- 查看日志内容- 查看所有日志内容。cat 命令是整个文件的内容从上到下显示在屏幕上。cat service.log- -n:查看所有日志内容,并为所有输出行编号。cat -n service.log- -b:查看所有日志内容,并为非空输出行编号,不对空行编号。cat -b service.log- -s:压缩多个连续的空行,只显示一个空行。cat -s service.log- -e:在每行的末尾显示
$
符号,以标记行的结束。cat -e service.log - cat service.log | grep 关键字 全文查找匹配关键字的日志
- zcat credit-platform-core.log-2024-01-* | grep -2 “Duplicate entry”正则匹配所有压缩文件并查找指定关键字。
按 ctrl + c 退出 cat 命令
more 命令
more 命令和 cat 的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。more 命令一次性读取整个文件并显示,在处理大文件时会比较慢。
- 查看日志- 简单使用more service.log- -n: 设置每页显示的行数。
more -5 filename.txt
将每页显示 5 行。 - 字符串搜索/字符串:向下搜索“字符串”的功能n:向下搜索下一个匹配的搜索结果(与 / 有关)
- 翻页[Space]: 向下翻动一页[b]: 向上翻动一页(在某些系统中可能不支持)[d]:向下翻半页(在某些系统中可能不支持)[Enter]:向下滚动一行
more
命令可以与管道(|
)结合使用结合其他命令如tail、cat 或 grep 查看内容:cat service.log | more 或 grep “error” service.log | more
按 q 退出 less 命令
less 命令
less [参数] 文件
less 命令同 more 命令一样,是对文件或其它输出进行分页显示的工具,但比 more 命令更强大。
less 与 more 对比:1、more 支持基本的搜索,但功能较为有限。less 提供强大的搜索功能,支持正则表达式搜索,搜索时高亮显示匹配结果;2、more 一次性读取整个文件并显示,尤其在处理大文件时会比较慢。less 按需加载文件内容,只在需要时读取部分数据(这意味着当打开一个大文件时,它不会一次性读取整个文件),加载速度更快,尤其适合大文件。3、more 功能较为简单,选项有限。less 提供多种选项和参数,支持行号显示、行截断、批处理模式等。4、 less 退出后 shell 不会留下刚显示的内容,而 more 退出后会在 shell 上留下刚显示的内容
- 查看日志- 简单使用less service.log- -N 查看日志并显示每行的行号less -N service.log- -S 不换行查看日志less -S service.log- -X 查看日志,退出时不清楚屏幕less -X service.log
- 字符串搜索/字符串:向下搜索“字符串”的功能?字符串:向上搜索“字符串”的功能n:向下搜索下一个匹配的搜索结果(与 / 或 ? 有关)N:向上搜索上一个匹配的搜索结果(与 / 或 ? 有关)
- 翻页[pagedown]、[Space]、[组合键 ctrl + F]: 向下翻动一页[pageup]、[b]、[组合键 ctrl + B]: 向上翻动一页[d]、[组合键 ctrl + D]:向下翻半页[u]、[组合键 ctrl + U]:向上翻半页[Enter]、[j]:向下滚动一行[y]、[k]:向上滚动一行[G]:移动到最后一行[g]:移动到第一行
- less 命令可以与管道(
|
)结合使用,以便于查看其他命令的输出。这种用法特别适合处理大量输出数据,允许用户逐页查看结果而不是一次性输出到终端。结合其他命令如tail、cat 或 grep 查看内容。逐页查看长文件的内容- cat service.log | less结合grep
来搜索文件中的内容:- grep “error” service.log | lessgrep
从service.log
文件中查找包含 “error” 的行,将匹配的结果通过管道传递给less
进行分页显示,且可以使用less
的导航和搜索功能逐页查看这些结果。- less service.log | grep “error”less
打开service.log
文件,并允许你查看文件内容。在less
中执行grep "error"
这一命令(这实际上不会直接工作,因为less
并不将输出传递给grep
,而是会被认为是less
的内部命令)。less 并不支持将其内容直接通过管道传递给 grep。使用结果看到 error 会标红。如果在less
中想要高亮显示 “error” 的行,可以使用/
或?
进行搜索。less service.log 查看日志,然后在less
中输入/error
,按回车即可找到相关行。
按 q 退出 less 命令
版权归原作者 ShareBeHappy_Qin 所有, 如有侵权,请联系我们删除。