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

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

相关文章:

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

文章目录 查看日志常用命令grep 命令tail 命令head 命令cat 命令more 命令less 命令 查看日志常用命令 grep tail、head、cat、more、less grep 命令 grep [options] PATTERN filename&#xff1a;查找日志文件中的 PATTERN 关键字&#xff0c;用于过滤/搜索的特定字符。PAT…...

知识见闻 - 美国连线杂志

https://www.wired.com/ WIRED 杂志是一份月刊&#xff0c;重点关注新兴技术如何影响文化、经济和政治。在快速变革的世界中&#xff0c;它已成为信息和思想的重要来源。 WIRED magazine is a monthly publication that focuses on how emerging technologies impact culture, …...

多线程的状态及切换流程

多线程的状态及切换流程 线程状态说明&#xff1a; 初始化&#xff08;Init&#xff09;&#xff1a;该线程正在被创建。就绪&#xff08;Ready&#xff09;&#xff1a;该线程在就绪列表中&#xff0c;等待 CPU 调度。运行&#xff08;Running&#xff09;&#xff1a;该线程…...

[Python学习日记-47] Python 中的系统调用模块—— os 与 sys

[Python学习日记-47] Python 中的系统调用模块 简介 os sys 简介 os 模块和 sys 模块提供了很多允许你的程序与操作系统直接交互的功能。下面将进行逐一介绍。 os 一、os.getcwd() 得到当前工作目录&#xff0c;即当前 Python 脚本工作的目录路径&#xff08;绝对路径&#…...

Linux系统——lvm逻辑卷

Linux系统——lvm逻辑卷 一、lvm逻辑卷1、lvm操作流程2、操作指令 二、逻辑卷操作1、创建逻辑卷1.1 /dev/cloud/openstack 5G xfs /cloud/openstack1.2 /dev/cloud/docker 10G ext4 /cloud/docker 2、逻辑卷扩容2.1 扩容流程2.2 需求一&#xff1a;扩容ext4文件系统的逻辑卷2.3…...

一键快捷回复软件助力客服高效沟通

双十一临近&#xff0c;电商大战一触即发&#xff01;在这个购物狂欢的热潮中&#xff0c;客服团队的效率至关重要。今天我要和大家分享一个非常实用的快捷回复软件&#xff0c;特别是为电商客服小伙伴们准备的。这款软件能够极大地提高你的工作效率&#xff0c;让你在处理客户…...

初识Linux之指令(二)

一&#xff1a;head指令 head 与 tail 就像它的名字一样的浅显易懂&#xff0c;它是用来显示开头或结尾某个数量的文字区块&#xff0c;head 用来显示档案的 开头至标准输出中&#xff0c;而 tail 想当然尔就是看档案的结尾。 语法&#xff1a;head 【参数】 【文件】 功能&…...

在深度学习中,Epoch、迭代次数、批次大小(Batch Size)和学习速率(Learning Rate)是影响模型训练效果的重要超参数。

1. Epoch 定义&#xff1a;Epoch是指整个训练数据集被完整地用来训练一次。影响&#xff1a;增加Epoch的数量可以使模型更充分地学习数据。然而&#xff0c;过高的Epoch可能导致过拟合&#xff0c;即模型在训练集上表现良好&#xff0c;但在测试集上表现不佳。设置&#xff1a…...

研究学习的循环递进三段论

在研究学习&#xff0c;编程语言、编译器、计算机科学、类型论、集合论等多门学科及分支后&#xff0c;我貌似隐隐约约地感受到&#xff0c;研究学习的过程分为三个阶段&#xff0c;我称之为研究学习的三段论&#xff0c;其中的段&#xff0c;是阶段的意思。对应了&#xff0c;…...

Linux下如何将代码提交至Gitee

首先在gitee中创建自己的仓库. 下面是已经创建好的仓库 然后复制仓库的链接(点击上图克隆/下载) 接下来打开linux, 1.在命令行输入git clone 链接 2. 输入ll,即可看到linux-course项目仓库 3.cd linux-courses(进入项目仓库) 4.在仓库中可以随意增加文件 例如增加test.c文件…...

【MATLAB源码-第181期】基于matlab的32QAM调制解调系统频偏估计及补偿算法仿真,对比补偿前后的星座图误码率。

操作环境&#xff1a; MATLAB 2022a 1、算法描述 在通信系统中&#xff0c;频率偏移是一种常见的问题&#xff0c;它会导致接收到的信号频率与发送信号的频率不完全匹配&#xff0c;进而影响通信质量。在调制技术中&#xff0c;QPSK&#xff08;Quadrature Phase Shift Keyi…...

24年856电子线路专业课考场回忆

856考试包含了模电与数电两大部分&#xff0c;24年题型结构为14题选择与14填空&#xff0c;上去大约花了半个小时搞定&#xff0c;唯一记得有几个纠结点&#xff1a;1、开关型稳压电路中开关管怎么接是升压&#xff0c;2、字扩展与位扩展的区别。 接下来就是第三部分的分析计算…...

el-table表格里面有一条横线

表格里面 有一条横线&#xff0c; 出现原因&#xff1a;是自定义了表格头.使用了固定列&#xff08;fixed&#xff09;&#xff0c;定宽。就很难受。。。 添加样式文件&#xff1a; <style lang"scss" scoped>::v-deep {.el-table__fixed-right {height: 100%…...

QT通过QLocalSocket和QSharedMemory实现进程间通信

文章目录 QLocalSocket和QLocalServer客户端服务端QSharedMemory加载数据到共享内存从共享内存中读取数据进程间通信(Inter-Process Communication, IPC)是指在不同进程之间进行数据交换和消息传递的机制。由于不同进程之间在内存和资源使用上的隔离,IPC 是操作系统提供的一种…...

Python中的数据可视化艺术:用Matplotlib和Seaborn讲故事

Python中的数据可视化艺术&#xff1a;用Matplotlib和Seaborn讲故事 数据可视化不仅仅是图表的绘制&#xff0c;更是通过视觉形式传达复杂信息的一种艺术。使用Python中的两个强大的库——Matplotlib和Seaborn&#xff0c;可以将数据转化为清晰、优美的图表&#xff0c;帮助我…...

python机器学习(手写数字识别)

# 导包 import matplotlib.pyplot as plt import pandas as pd from sklearn.model_selection import train_test_split from sklearn.neighbors import KNeighborsClassifier import joblib from collections import Counter # 1. 定义函数 show_digit(idx), 用于查看: 数字图…...

如何针对项目中的技术难点准备面试?——黑马点评为例

最核心的&#xff0c;包装和准备 个人项目&#xff0c;怎么包装&#xff1f;一定要写出代码才可以吗&#xff1f; 你可以在系统A中实现就可以&#xff0c;了解其中实现的细节&#xff0c;怎么跟面试官对线等等&#xff0c;这些话术到位了之后&#xff0c;再把它融入到系统B&a…...

ARP欺骗的多种手法

学习参考&#xff1a; ARP欺骗的各种d玩法-CSDN博客 https://juejin.cn/post/7383702153892954164 一、什么是ARP欺骗 1.什么是ARP&#xff1f; ARP (Address Resolution Protocol) 是一种网络层协议&#xff0c;用于将 IP 地址转换为物理地址&#xff08;MAC 地址&#xff0…...

HCIA——one

推荐电影&#xff1a;《模仿游戏》《黑客帝国》《头号玩家》 图灵机每秒五千次计算&#xff0c;当今计算机4080ti算力每秒21万亿次的计算。 OSI七层模型 应用层&#xff1a;人机交互&#xff0c;将抽象语言转换成编码 表示层&#xff1a;将编码转换成二进制 介质访问控制层…...

【vue】⾃定义指令+插槽+商品列表案例

代码获取 07-⾃定义指令插槽商品列表案例 ⼀、⾃定义指令 1. 基本使⽤ 1.1 指令介绍 内置指令&#xff1a;v-model、v-for、v-bind、v-on… 这都是Vue给咱们内置的⼀些指令&#xff0c;可以直接使⽤ ⾃定义指令&#xff1a;同时Vue也⽀持让开发者&#xff0c;⾃⼰注册⼀些…...

web vue 项目 Docker化部署

Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段&#xff1a; 构建阶段&#xff08;Build Stage&#xff09;&#xff1a…...

JavaScript 中的 ES|QL:利用 Apache Arrow 工具

作者&#xff1a;来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗&#xff1f;了解下一期 Elasticsearch Engineer 培训的时间吧&#xff01; Elasticsearch 拥有众多新功能&#xff0c;助你为自己…...

iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版​分享

平时用 iPhone 的时候&#xff0c;难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵&#xff0c;或者买了二手 iPhone 却被原来的 iCloud 账号锁住&#xff0c;这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...

【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表

1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...

Nginx server_name 配置说明

Nginx 是一个高性能的反向代理和负载均衡服务器&#xff0c;其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机&#xff08;Virtual Host&#xff09;。 1. 简介 Nginx 使用 server_name 指令来确定…...

基于Docker Compose部署Java微服务项目

一. 创建根项目 根项目&#xff08;父项目&#xff09;主要用于依赖管理 一些需要注意的点&#xff1a; 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件&#xff0c;否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...

C# 类和继承(抽象类)

抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...

NLP学习路线图(二十三):长短期记忆网络(LSTM)

在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...

Unit 1 深度强化学习简介

Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库&#xff0c;例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体&#xff0c;比如 SnowballFight、Huggy the Do…...

【开发技术】.Net使用FFmpeg视频特定帧上绘制内容

目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法&#xff0c;当前调用一个医疗行业的AI识别算法后返回…...