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
grep
从service.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:查找日志文件中的 PATTERN 关键字,用于过滤/搜索的特定字符。PAT…...
知识见闻 - 美国连线杂志
https://www.wired.com/ WIRED 杂志是一份月刊,重点关注新兴技术如何影响文化、经济和政治。在快速变革的世界中,它已成为信息和思想的重要来源。 WIRED magazine is a monthly publication that focuses on how emerging technologies impact culture, …...

多线程的状态及切换流程
多线程的状态及切换流程 线程状态说明: 初始化(Init):该线程正在被创建。就绪(Ready):该线程在就绪列表中,等待 CPU 调度。运行(Running):该线程…...

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

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 需求一:扩容ext4文件系统的逻辑卷2.3…...

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

初识Linux之指令(二)
一:head指令 head 与 tail 就像它的名字一样的浅显易懂,它是用来显示开头或结尾某个数量的文字区块,head 用来显示档案的 开头至标准输出中,而 tail 想当然尔就是看档案的结尾。 语法:head 【参数】 【文件】 功能&…...
在深度学习中,Epoch、迭代次数、批次大小(Batch Size)和学习速率(Learning Rate)是影响模型训练效果的重要超参数。
1. Epoch 定义:Epoch是指整个训练数据集被完整地用来训练一次。影响:增加Epoch的数量可以使模型更充分地学习数据。然而,过高的Epoch可能导致过拟合,即模型在训练集上表现良好,但在测试集上表现不佳。设置:…...
研究学习的循环递进三段论
在研究学习,编程语言、编译器、计算机科学、类型论、集合论等多门学科及分支后,我貌似隐隐约约地感受到,研究学习的过程分为三个阶段,我称之为研究学习的三段论,其中的段,是阶段的意思。对应了,…...

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

【MATLAB源码-第181期】基于matlab的32QAM调制解调系统频偏估计及补偿算法仿真,对比补偿前后的星座图误码率。
操作环境: MATLAB 2022a 1、算法描述 在通信系统中,频率偏移是一种常见的问题,它会导致接收到的信号频率与发送信号的频率不完全匹配,进而影响通信质量。在调制技术中,QPSK(Quadrature Phase Shift Keyi…...
24年856电子线路专业课考场回忆
856考试包含了模电与数电两大部分,24年题型结构为14题选择与14填空,上去大约花了半个小时搞定,唯一记得有几个纠结点:1、开关型稳压电路中开关管怎么接是升压,2、字扩展与位扩展的区别。 接下来就是第三部分的分析计算…...

el-table表格里面有一条横线
表格里面 有一条横线, 出现原因:是自定义了表格头.使用了固定列(fixed),定宽。就很难受。。。 添加样式文件: <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中的数据可视化艺术:用Matplotlib和Seaborn讲故事 数据可视化不仅仅是图表的绘制,更是通过视觉形式传达复杂信息的一种艺术。使用Python中的两个强大的库——Matplotlib和Seaborn,可以将数据转化为清晰、优美的图表,帮助我…...
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), 用于查看: 数字图…...

如何针对项目中的技术难点准备面试?——黑马点评为例
最核心的,包装和准备 个人项目,怎么包装?一定要写出代码才可以吗? 你可以在系统A中实现就可以,了解其中实现的细节,怎么跟面试官对线等等,这些话术到位了之后,再把它融入到系统B&a…...

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

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

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

centos 7 部署awstats 网站访问检测
一、基础环境准备(两种安装方式都要做) bash # 安装必要依赖 yum install -y httpd perl mod_perl perl-Time-HiRes perl-DateTime systemctl enable httpd # 设置 Apache 开机自启 systemctl start httpd # 启动 Apache二、安装 AWStats࿰…...

vscode(仍待补充)
写于2025 6.9 主包将加入vscode这个更权威的圈子 vscode的基本使用 侧边栏 vscode还能连接ssh? debug时使用的launch文件 1.task.json {"tasks": [{"type": "cppbuild","label": "C/C: gcc.exe 生成活动文件"…...

关于iview组件中使用 table , 绑定序号分页后序号从1开始的解决方案
问题描述:iview使用table 中type: "index",分页之后 ,索引还是从1开始,试过绑定后台返回数据的id, 这种方法可行,就是后台返回数据的每个页面id都不完全是按照从1开始的升序,因此百度了下,找到了…...
条件运算符
C中的三目运算符(也称条件运算符,英文:ternary operator)是一种简洁的条件选择语句,语法如下: 条件表达式 ? 表达式1 : 表达式2• 如果“条件表达式”为true,则整个表达式的结果为“表达式1”…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...
Python实现简单音频数据压缩与解压算法
Python实现简单音频数据压缩与解压算法 引言 在音频数据处理中,压缩算法是降低存储成本和传输效率的关键技术。Python作为一门灵活且功能强大的编程语言,提供了丰富的库和工具来实现音频数据的压缩与解压。本文将通过一个简单的音频数据压缩与解压算法…...
数据库正常,但后端收不到数据原因及解决
从代码和日志来看,后端SQL查询确实返回了数据,但最终user对象却为null。这表明查询结果没有正确映射到User对象上。 在前后端分离,并且ai辅助开发的时候,很容易出现前后端变量名不一致情况,还不报错,只是单…...

【1】跨越技术栈鸿沟:字节跳动开源TRAE AI编程IDE的实战体验
2024年初,人工智能编程工具领域发生了一次静默的变革。当字节跳动宣布退出其TRAE项目(一款融合大型语言模型能力的云端AI编程IDE)时,技术社区曾短暂叹息。然而这一退场并非终点——通过开源社区的接力,TRAE在WayToAGI等…...

表单设计器拖拽对象时添加属性
背景:因为项目需要。自写设计器。遇到的坑在此记录 使用的拖拽组件时vuedraggable。下面放上局部示例截图。 坑1。draggable标签在拖拽时可以获取到被拖拽的对象属性定义 要使用 :clone, 而不是clone。我想应该是因为draggable标签比较特。另外在使用**:clone时要将…...