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也⽀持让开发者,⾃⼰注册⼀些…...
web vue 项目 Docker化部署
Web 项目 Docker 化部署详细教程 目录 Web 项目 Docker 化部署概述Dockerfile 详解 构建阶段生产阶段 构建和运行 Docker 镜像 1. Web 项目 Docker 化部署概述 Docker 化部署的主要步骤分为以下几个阶段: 构建阶段(Build Stage):…...
JavaScript 中的 ES|QL:利用 Apache Arrow 工具
作者:来自 Elastic Jeffrey Rengifo 学习如何将 ES|QL 与 JavaScript 的 Apache Arrow 客户端工具一起使用。 想获得 Elastic 认证吗?了解下一期 Elasticsearch Engineer 培训的时间吧! Elasticsearch 拥有众多新功能,助你为自己…...
iPhone密码忘记了办?iPhoneUnlocker,iPhone解锁工具Aiseesoft iPhone Unlocker 高级注册版分享
平时用 iPhone 的时候,难免会碰到解锁的麻烦事。比如密码忘了、人脸识别 / 指纹识别突然不灵,或者买了二手 iPhone 却被原来的 iCloud 账号锁住,这时候就需要靠谱的解锁工具来帮忙了。Aiseesoft iPhone Unlocker 就是专门解决这些问题的软件&…...
【ROS】Nav2源码之nav2_behavior_tree-行为树节点列表
1、行为树节点分类 在 Nav2(Navigation2)的行为树框架中,行为树节点插件按照功能分为 Action(动作节点)、Condition(条件节点)、Control(控制节点) 和 Decorator(装饰节点) 四类。 1.1 动作节点 Action 执行具体的机器人操作或任务,直接与硬件、传感器或外部系统…...
Nginx server_name 配置说明
Nginx 是一个高性能的反向代理和负载均衡服务器,其核心配置之一是 server 块中的 server_name 指令。server_name 决定了 Nginx 如何根据客户端请求的 Host 头匹配对应的虚拟主机(Virtual Host)。 1. 简介 Nginx 使用 server_name 指令来确定…...
基于Docker Compose部署Java微服务项目
一. 创建根项目 根项目(父项目)主要用于依赖管理 一些需要注意的点: 打包方式需要为 pom<modules>里需要注册子模块不要引入maven的打包插件,否则打包时会出问题 <?xml version"1.0" encoding"UTF-8…...
C# 类和继承(抽象类)
抽象类 抽象类是指设计为被继承的类。抽象类只能被用作其他类的基类。 不能创建抽象类的实例。抽象类使用abstract修饰符声明。 抽象类可以包含抽象成员或普通的非抽象成员。抽象类的成员可以是抽象成员和普通带 实现的成员的任意组合。抽象类自己可以派生自另一个抽象类。例…...
NLP学习路线图(二十三):长短期记忆网络(LSTM)
在自然语言处理(NLP)领域,我们时刻面临着处理序列数据的核心挑战。无论是理解句子的结构、分析文本的情感,还是实现语言的翻译,都需要模型能够捕捉词语之间依时序产生的复杂依赖关系。传统的神经网络结构在处理这种序列依赖时显得力不从心,而循环神经网络(RNN) 曾被视为…...
Unit 1 深度强化学习简介
Deep RL Course ——Unit 1 Introduction 从理论和实践层面深入学习深度强化学习。学会使用知名的深度强化学习库,例如 Stable Baselines3、RL Baselines3 Zoo、Sample Factory 和 CleanRL。在独特的环境中训练智能体,比如 SnowballFight、Huggy the Do…...
【开发技术】.Net使用FFmpeg视频特定帧上绘制内容
目录 一、目的 二、解决方案 2.1 什么是FFmpeg 2.2 FFmpeg主要功能 2.3 使用Xabe.FFmpeg调用FFmpeg功能 2.4 使用 FFmpeg 的 drawbox 滤镜来绘制 ROI 三、总结 一、目的 当前市场上有很多目标检测智能识别的相关算法,当前调用一个医疗行业的AI识别算法后返回…...
