当前位置: 首页 > article >正文

Linux 命令 —— grep、tail、head、cat、more、less(查看日志常用命令)

文章目录

    • 查看日志常用命令
      • grep 命令
      • tail 命令
      • head 命令
      • cat 命令
      • more 命令
      • less 命令

查看日志常用命令

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。

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 | less

      grepservice.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 命令


http://www.kler.cn/a/349406.html

相关文章:

  • 海​能​达​一​面
  • CSS也可以赋一个变量值?是的
  • 使用Python编写你的第一个算法交易程序
  • 【优选算法】(第三十三篇)
  • UIP协议栈 TCP Server Client通信成功案例
  • 通义灵码:AI 编码的强大助力
  • RAG 入门实践:从文档拆分到向量数据库与问答构建
  • Golang 中的强大 TUI 库 ——tview
  • 【编程进阶知识】Java 8 函数式编程接口全解析:Supplier、Runnable、Function、Consumer、Apply
  • elasticsearch 8.2 版本账号密码设置及SSL设置
  • Java代码优化中的六大原则
  • AD报错failed to add class member\net
  • 类的初步学习(关于类的私有与公有成员、类链表、析构函数、友元函数)
  • 【读书笔记·VLSI电路设计方法解密】问题17:什么是封装
  • pytorch学习笔记
  • Nginx:proxy_pass指令
  • QJniObject--Qt中的Java交互类
  • Codeforces Round 923 (Div. 3) F题 Microcycle(生成树,并查集,DFS)
  • PHP MySQL 简介
  • docker tar包安装 docker-26.1.4.tgz