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

news2024/10/22 17:12:02

文章目录

    • 查看日志常用命令
      • 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。

  • 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 filename

      zgrep “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 | 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.coloradmin.cn/o/2220939.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

亚马逊测评自养号技术及采购下单成功率揭秘

在亚马逊测评中&#xff0c;自养号面临砍单、买家号关联等问题时&#xff0c;需要采取一系列策略和技术手段来提高采购下单的成功率。以下是一些具体的解决方案&#xff1a; 一、解决砍单问题 1.确保硬件参数独立 每个账号应使用具有独特硬件标识的设备&#xff0c;如IMEI、…

【大模型实战篇】大模型分词算法WordPiece分词及代码示例

继《大模型数据词元化处理BPE(Byte-Pair Encoding tokenization)》之后&#xff0c;我们针对大模型原始数据的分词处理&#xff0c;继续分享WordPiece分词技术【1】。 1. 原理分析 WordPiece 是 Google 开发的分词算法&#xff0c;用于预训练 BERT。此后&#xff0c;它被多个基…

uni-app中添加自定义相机(微信小程序+app)

一、微信小程序中 微信小程序中可以直接使用camera标签&#xff0c;这个标签不兼容app&#xff0c;官方文档 <cameradevice-position"back"flash"off":style"{ height: lheight px, width: lwidth px }"class"w-full"></c…

vue3【实战】 渲染 md 文件(markdown语法 .md后缀的文件)

1. 安装相关插件 npm i unplugin-vue-markdown markdown-it-prism prism unhead/vue2. 添加配置 src/main.ts // 给 md 文件创建头部 import { createHead } from unhead/vue // md 文件中代码高亮的样式 import prismjs/themes/prism.css // 自定义 md 文件的样式 import /as…

【JAVA面试题】什么是Springboot的自动配置以及注意事项

文章目录 强烈推荐核心概念&#xff1a;自动配置的关键特点&#xff1a;示例&#xff1a; 需要注意的点1.默认配置可能不适合所有场景2.Bean 冲突与覆盖3.应用启动慢的问题4.过度依赖自动配置5.安全性问题6.依赖冲突与版本兼容7.过多不必要的自动配置8.调试困难 专栏集锦 强烈推…

.net framework 3.5sp1安装错误卡住不动怎么解决

解决 .NET Framework 3.5 SP1 安装错误卡住的问题&#xff0c;可以尝试以下几种方法&#xff1a; 1.使用 DISM 工具&#xff1a; 将下载的 NetFx3.cab 文件放置在 C:\Windows 文件夹下。 以管理员身份打开命令提示符&#xff0c;输入以下命令&#xff1a; dism /online /En…

【web前端设计】jquery图标动画特效

学习目标 学习web前端设计技术&#xff08;HTML、css、JavaScript、jQuery等&#xff09;&#xff0c;综合运用技术&#xff0c;将其与HTML元素结合&#xff0c;设计样式、监听事件、添加动画等&#xff0c;给用户呈现出更好的视觉交互效果。本文主要学习分页按钮自动放大、元…

HCIP-HarmonyOS Application Developer 习题(十二)

&#xff08;多选&#xff09;1、声明式开发范式的转场动画包含以下哪几种类型? A、页面间转场 B、应用间转场 C、共享元素转场 D、组件内转场 答案&#xff1a;ACD 分析&#xff1a; &#xff08;多选&#xff09;2、公共事件服务为应用程序提供哪些能力。 A、取消发布公共…

IPMA能力基础线是什么?项目管理工具有哪些应用场景?

作为资深团队管理者&#xff0c;常常面临如何提升团队项目管理能力的挑战。其实在现代的项目管理世界中&#xff0c;有许多标准和模型帮助我们更好地理解项目的复杂性&#xff0c;IPMA&#xff08;International Project Management Association&#xff09;能力基础线就是其中…

iOS静态库(.a)及资源文件的生成与使用详解(Swift版本)

引言 在 iOS 开发中&#xff0c;开发者常常需要将一些功能模块封装成可重用的库&#xff0c;以便在多个项目中共享使用。除了常见的Framework&#xff08;动态库/静态库&#xff09;&#xff0c;静态库&#xff08;.a文件&#xff09;也是一种非常实用的封装方式。静态库在编译…

Java全栈经典面试题剖析4】JavaSE高级 -- 包装类,String, 类方法

目录 面试题3.1 什么是自动装箱与拆箱&#xff1f;用什么方式来装箱与拆箱&#xff1f; 面试题3.2 int和Integer有什么区别&#xff1f; 面试题3.3 Integer常量池 面试题3.4 字符串常量池 面试题3.5 这句代码创建了几个对象? String str1 new String("xyz");…

前端拦截302重定向

背景: 根据业务场景需要拦截302做后续的逻辑处理 尝试一: : axios拦截 、、、、、async created() {// 获取302请求返回的location后手动修改video的src路径let targetSrc;try {await axios.get(this.video).then((res) > {const { headers, status } res;const { locat…

Android 图片相识度比较(pHash)

概述 在 Android 中&#xff0c;要比对两张 Bitmap 图片的相似度&#xff0c;常见的方法有基于像素差异、直方图比较、或者使用一些更高级的算法如 SSIM&#xff08;结构相似性&#xff09;和感知哈希&#xff08;pHash&#xff09;。 1. 基于像素的差异比较 可以逐像素比较…

学习笔记——Test.pwn

前言&#xff1a;笔者也才接触Pwn&#xff0c;写这篇wp&#xff0c;记录目前所得感悟、思考、理解等。 存在错误&#xff0c;或者解释不通的地方&#xff0c;还请提出&#xff0c;已补足笔记的缺陷。 Pwn是什么&#xff1f; 我Pwn掉了你的电脑、我Pwn掉了你的设备…… 通俗的…

重庆大学软件工程考研,难度如何?

C哥专业提供——计软考研院校选择分析专业课备考指南规划 重大软件专业可谓是最好上岸的985院校&#xff01;重庆大学24考研各大学院复试录取情况已出&#xff0c; 我们先说学硕部分&#xff1a; 招生人数&#xff1a; 重庆大学软件工程学硕近几年计划统招人数都不多&#xf…

入选ECCV 2024!浙江大学联合微软亚洲研究院提出统一医学图像预训练框架UniMedI,打破医学数据异构化藩篱

让 AI 在某些条件下具备类似人类的反应能力&#xff0c;从而代替人类高效地从事特定工作&#xff0c;是 AI 领域研究人员孜孜不倦的追求。正如在医学图像和人工智能的交叉领域&#xff0c;基于视觉语言预训练的深度模型 (Visual-Language Pre-training, VLP) 凭借其自动化的特点…

Docker本地镜像发布到阿里云镜像服务的简易指南

1 阿里云容器镜像服务 阿里云容器镜像服务&#xff08;Alibaba Cloud Container Registry&#xff0c;简称ACR&#xff09;是一个为容器镜像、Helm Chart等云原生资产提供安全托管及高效分发的平台。它支持多架构容器镜像&#xff0c;包括Linux、Windows、ARM等&#xff0c;以…

心觉:感恩日记:每天5分钟,重新定义你的人生

​Hi&#xff0c;我是心觉&#xff0c;与你一起玩转潜意识、脑波音乐和吸引力法则&#xff0c;轻松掌控自己的人生&#xff01; 挑战每日一省写作207/1000天 你是否觉得生活节奏太快&#xff0c;总是有做不完的事、解决不完的问题&#xff1f; 有一个简单的方法&#xff0c;…

DEPT_ DECOMPOSED PROMPT TUNING FOR PARAMETER-EFFICIENT FINE-TUNING

论文汇总 当前的问题 (1)Prompt Tuning通常收敛缓慢&#xff0c;并且对初始化敏感&#xff1b; (2)Prompt Tuning延长了输入序列的总长度&#xff0c;从而加剧了计算需求(即训练/推理时间和内存成本)&#xff0c;这是由于Transformer的二次复杂度(Vaswani et al, 2017)。 解…

机器视觉系统硬件组成之工业相机篇

工业相机是一种非常重要的机器视觉器件&#xff0c;它能够将被采集的图像信息通过电路转换成电信号&#xff0c;再通过模数转换器&#xff08;ADC&#xff09;将其转化为数字信号&#xff0c;最后以标准的视频信号输出。工业相机在机器视觉领域得到了广泛应用&#xff0c;包括质…