当前位置: 首页 > 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;⾃⼰注册⼀些…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

DockerHub与私有镜像仓库在容器化中的应用与管理

哈喽&#xff0c;大家好&#xff0c;我是左手python&#xff01; Docker Hub的应用与管理 Docker Hub的基本概念与使用方法 Docker Hub是Docker官方提供的一个公共镜像仓库&#xff0c;用户可以在其中找到各种操作系统、软件和应用的镜像。开发者可以通过Docker Hub轻松获取所…...

多场景 OkHttpClient 管理器 - Android 网络通信解决方案

下面是一个完整的 Android 实现&#xff0c;展示如何创建和管理多个 OkHttpClient 实例&#xff0c;分别用于长连接、普通 HTTP 请求和文件下载场景。 <?xml version"1.0" encoding"utf-8"?> <LinearLayout xmlns:android"http://schemas…...

前端开发面试题总结-JavaScript篇(一)

文章目录 JavaScript高频问答一、作用域与闭包1.什么是闭包&#xff08;Closure&#xff09;&#xff1f;闭包有什么应用场景和潜在问题&#xff1f;2.解释 JavaScript 的作用域链&#xff08;Scope Chain&#xff09; 二、原型与继承3.原型链是什么&#xff1f;如何实现继承&a…...

Unit 1 深度强化学习简介

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

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析

Java求职者面试指南&#xff1a;Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问&#xff08;基础概念问题&#xff09; 1. 请解释Spring框架的核心容器是什么&#xff1f;它在Spring中起到什么作用&#xff1f; Spring框架的核心容器是IoC容器&#…...

scikit-learn机器学习

# 同时添加如下代码, 这样每次环境(kernel)启动的时候只要运行下方代码即可: # Also add the following code, # so that every time the environment (kernel) starts, # just run the following code: import sys sys.path.append(/home/aistudio/external-libraries)机…...

Web中间件--tomcat学习

Web中间件–tomcat Java虚拟机详解 什么是JAVA虚拟机 Java虚拟机是一个抽象的计算机&#xff0c;它可以执行Java字节码。Java虚拟机是Java平台的一部分&#xff0c;Java平台由Java语言、Java API和Java虚拟机组成。Java虚拟机的主要作用是将Java字节码转换为机器代码&#x…...

算术操作符与类型转换:从基础到精通

目录 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 算术操作符超级详解 算术操作符&#xff1a;、-、*、/、% 赋值操作符&#xff1a;和复合赋值 单⽬操作符&#xff1a;、--、、- 前言&#xff1a;从基础到实践——探索运算符与类型转换的奥秘 在先前的文…...