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

news/2024/10/20 7:05:20/

文章目录

查看日志常用命令

grep tailheadcatmoreless

grep__5">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。

  • egrepgrep 命令的一个变体,专门用于支持扩展正则表达式(ERE)。

    • egrep “a+” filename.txt 相当于 grep -E “a+” filename.txt
  • fgrepgrep 命令的一个变体,用于进行固定字符串匹配。

    • fgrep “error*” service.log 相当于 grep -F “error*” service.log
  • zgrep 是一个用于搜索压缩文件中模式的命令行工具。它可以直接在 .gz 格式的压缩文件中查找指定的文本模式,而无需先解压文件。

    • zgrep [选项] PATTERN filename

      zgrep “pattern” service.log

tail__94">tail 命令

tail 命令用于显示文件的最后几行内容。

tail [必要参数] [选择参数] [文件]

-f 循环读取:实时跟踪文件的新增内容,持续输出文件的新内容,直到用户手动停止。用于监控日志文件的变化。

-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__112">head 命令

head 命令行用于显示文件的前几行内容。

head 命令和 tail 相反,查看前多少行日志。

  • head -n 100 service.log 查询前100 行的日志
  • head -n -100 service.log 查询所有日志除了最后100行

按 ctrl + c 退出 head 命令

cat___123">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__178">more 命令

more 命令和 cat 的功能一样都是查看文件里的内容,但有所不同的是more可以按页来查看文件的内容,还支持直接跳转行等功能。more 命令一次性读取整个文件并显示,在处理大文件时会比较慢。

  • 查看日志

    • 简单使用

      more service.log

    • -n: 设置每页显示的行数。

      more -5 filename.txt 将每页显示 5 行。

  • 字符串搜索

    /字符串:向下搜索“字符串”的功能

    n:向下搜索下一个匹配的搜索结果(与 / 有关)

  • 翻页

    [Space]: 向下翻动一页

    [b]: 向上翻动一页(在某些系统中可能不支持)

    [d]:向下翻半页(在某些系统中可能不支持)

    [Enter]:向下滚动一行

  • more 命令可以与管道(|)结合使用

    结合其他命令如tailcatgrep 查看内容:cat service.log | moregrep “error” service.log | more

按 q 退出 less 命令

less__214">less 命令

less [参数] 文件

less 命令同 more 命令一样,是对文件或其它输出进行分页显示的工具,但比 more 命令更强大。

lessmore 对比: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 命令可以与管道(|)结合使用,以便于查看其他命令的输出。这种用法特别适合处理大量输出数据,允许用户逐页查看结果而不是一次性输出到终端。结合其他命令如tailcatgrep 查看内容。

    逐页查看长文件的内容

    结合 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.ppmy.cn/news/1540459.html

相关文章

告别ELK,APO提供基于ClickHouse开箱即用的高效日志方案——APO 0.6.0发布

ELK一直是日志领域的主流产品&#xff0c;但是ElasticSearch的成本很高&#xff0c;查询效果随着数据量的增加越来越慢。业界已经有很多公司&#xff0c;比如滴滴、B站、Uber、Cloudflare都已经使用ClickHose作为ElasticSearch的替代品&#xff0c;都取得了不错的效果&#xff…

初学结构化查询语言的操作

SQL: Structured Query Language 结构化查询语言(Structured Query Language)简称SQL&#xff0c;是一种特殊目的的编程语言&#xff0c;是一种数 据库查询和程序设计语言&#xff0c;用于存取数据以及查询、更新和管理关系数据库系统。 一&#xff0c;SQL的分类 1&#xff…

记录:网鼎杯2024赛前热身CRYPT02密码学

下载附件后发现附件为图片&#xff0c;图片打开正常&#xff0c;判断密文藏在图片中 使用 editor 软件打开图片&#xff0c;在最底下发现密文 判断这段密文为 base64 加密&#xff0c;尝试本地编写脚本解密 得到flag

mysql connect -- C api编译链接问题,接口介绍(初始化和销毁,连接,执行sql语句,获取结果集的元数据和数据,设置编码格式)

目录 mysql connect 介绍 开发环境 编译链接问题 编译 链接 接口介绍 初始化和销毁 mysql_init() 句柄 mysql_close() 链接数据库 mysql_real_connect() 参数 返回值 show processlist 给mysql下达命令 mysql_query() 参数 返回值 查询结果的获取 引入 …

基于python+dj+mysql的音乐推荐系统网页设计

音乐网站开发 如果你在学Python&#xff0c;需相关的【配套资料工具】作为研究[doge][脱单doge] 可以后台✉私信up主&#xff0c;发送&#x1f449;关键词【音乐】 本章以音乐网站项目为例&#xff0c;介绍Django在实际项目开发中的应用&#xff0c;该网站共分为6个功能模块分…

leetcode289:生命游戏

根据 百度百科 &#xff0c; 生命游戏 &#xff0c;简称为 生命 &#xff0c;是英国数学家约翰何顿康威在 1970 年发明的细胞自动机。 给定一个包含 m n 个格子的面板&#xff0c;每一个格子都可以看成是一个细胞。每个细胞都具有一个初始状态&#xff1a; 1 即为 活细胞 &am…

宝塔PHP8.1安装fileinfo拓展失败解决办法

在宝塔面板中安装PHP8.1后&#xff0c;安装fileinfo扩展一直安装不上&#xff0c;查看日志有报错&#xff0c;于是手动来安装也报错。 宝塔报错&#xff1a; 手动命令行编译安装同&#xff0c;也有报错 cd /www/server/php/81/src/ext/fileinfo/ make distclean ./configure …

sharding sphere 加解密功能 like语句 SQL 解析报错

问题描述 应用在使用 sharding sphere 来实现加密后&#xff0c;对于 like sql 语句解析抛异常&#xff0c;异常信息如下&#xff1a; sharding sphere 版本 5.3.2 xml 文件SQL 语句&#xff1a; <select id"countSchoolByStatus" parameterType"java.la…