实用指南:[Linux命令分享]日志查看 — — less

news/2025/12/7 16:47:30/文章来源:https://www.cnblogs.com/ljbguanli/p/19318368

实用指南:[Linux命令分享]日志查看 — — less

[Linux命令分享]日志查看 — — less

介绍

less 是一个功能强大的文本文件查看器,它允许用户逐页浏览大型文件内容。与 more 命令相比,less 提供了更多的导航选项和功能,可以向前或向后滚动文件内容。less 命令遵循"less is more"的理念,是Linux系统中查看文本文件的首选工具。

官方文档:https://greenwoodsoftware.com/less/

在这里插入图片描述

安装

# CentOS/RHEL系
yum install less
# Ubuntu/Debian系
apt-get install less
## 查看less版本
less --version

命令参数

显示行号(-N)

less -N zshrc

在这里插入图片描述

禁用行长截断(-S)

-S 参数用于处理长行文本,当文件中包含超过终端宽度的长行时,该参数会禁用自动换行显示。默认情况下,less 会对长行进行自动换行以适应终端宽度,使用 -S 后,长行会保持原样显示,超出部分需要通过左右滚动来查看。

案例:

# 构造测试文件
echo "2024-01-15 14:30:25.123 INFO  com.example.service.UserService - User login attempt for user ID 12345 with IP address 192.168.1.100, device info: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/98.0.4758.102 Safari/537.36, session ID: abcdef1234567890abcdef1234567890" > application.log
# 查看包含长日志行的文件。通过← → 方向键来观察超出屏幕部分的内容
less -S application.log

显示所有字符原始形式(-r)

-r 参数用于显示文件中字符的原始形式(如ANSI转义序列、颜色代码等),不进行任何处理或解释。字符会以原始形式显示在终端中,可能导致显示混乱,但保留了文件的原始内容。

案例:

# less:可能过滤或转换不可打印字符
# less -r:保留所有原始字节,不进行任何处理
less -r app.log

忽略大小写(-I)

默认情况下,less对字母的搜索是区分大小写的。如果要忽略大小写,可以使用less 命令结合-I选项

# 默认区分大小写
less test.log
# -I 忽略大小写区分
less -I test.log

在这里插入图片描述

在这里插入图片描述

自动退出(-F)

-F参数根据文件长度决定是否进入交互模式,如果文件过长,屏幕装不下时,就会进进入交互模式。如果文件很小,行数很小,则不会进入交互模式,运行完之后直接退出。

# app.log文件,记录行数很多,屏幕放不下,则会进入交互模式,支持上下翻页
less -F app.log
# test.log,一共3行,屏幕能放下,不会进入交互模式,运行完之后直接退出
less -F test.log

在这里插入图片描述
在这里插入图片描述

持续观察(+F)

less +F 命令用于持续观察文件内容的变化,类似于 tail -f 命令的功能。

# 持续观察monitor.txt文件,当monitor.txt文件有新增内容时,也会展示
less +F monitor.txt
# ctrl/control + C 停止观察,然后按q键 退出less命令交互页面

在这里插入图片描述
在这里插入图片描述
退出持续观察:
在这里插入图片描述
测试文件:

# 1. 创建初始测试文件
echo -e "Line 1: Initial content\nLine 2: Starting content\nLine 3: Base content" > monitor.txt
# 2. 执行less +F命令
less +F monitor.txt
# 3. 新增一个终端,追加文件内容
# 向文件追加新行
echo "Line 4: Added content at $(date)" >> monitor.txt
sleep 2
echo "Line 5: More content added" >> monitor.txt
sleep 2
echo "Line 6: Final test line" >> monitor.txt
# 4. ctrl/control + C 停止观察,然后按q键 退出less命令交互页面

交互参数

  1. /pattern - 向下搜索模式,也支持正则匹配
  2. ?pattern - 向上搜索模式,也支持正则匹配
  3. n - 查找下一个匹配项
  4. N - 查找上一个匹配项
  5. 空格键 或 Page Down - 向下翻页
  6. b 或 Page Up - 向上翻页
  7. 方向键↑/↓ - 向上/向下滚动一行
  8. d - 向下滚动半页
  9. u - 向上滚动半页
  10. g 或 Home - 跳转到文件开头
  11. G 或 End - 跳转到文件结尾
  12. 数字+G - 跳转到指定行号
  13. q 或 Q - 退出 less
  14. h - 显示帮助信息
  15. : - 进入命令模式
  16. v - 使用编辑器编辑当前文件

实际案例

接下来主要介绍我个人的习惯用法,仅供参考,毕竟合适自己的才是最好的。

  1. 大型日志文件中查找最近发生的特定事件,比如用户最近的操作、错误或警告信息。可以使用下面一系列命令:
# 查看日志
less -r app.log
# ---------- 从下往上搜索(找最近一次的请求) --------------
#跳到文件末尾
shift + G
# 查找zhangsan最近一次的请求
?zhangsan
# 然后通过n/N控制查找上一个匹配项还是下一个匹配项
n - 查找下一个匹配项
N - 查找上一个匹配项
  • less -r app.log打开日志文件,并通过shift + G跳转到文件末尾
    在这里插入图片描述
  • ?zhangsan搜索zhangsan出现的位置
    在这里插入图片描述
  • 回车,我们就找到了zhangsan最后出现的位置
    在这里插入图片描述
  • 接着如果我们还想寻找zhangsan倒数第二次出现在文件中的位置(即向上寻找),按n键即可(注意区分大小写)
    在这里插入图片描述
  • 如果此时,我们向上找的太多,又想向下寻找,那么按N键即可(注意区分大小写)
    在这里插入图片描述
    最后效果:
    在这里插入图片描述
  • 有时,我们可能也需要定位到文件开始,找最早一次zhangsan出现的位置,那么只需要按g键即可定位到文件开始为止,然后通过/zhangsan向下搜索,通过n/N键控制上下寻找即可(注意区分大小写)
    在这里插入图片描述
    在这里插入图片描述

PS:

  1. G键 + ?zhangsan 向上搜索zhangsan (通过G键跳转到文件末尾,然后向上搜索)
  2. g键 + /zhangsan 向下搜索zhangsan(通过g键跳转到文件开头,然后向下搜索)

测试文件:

# 创建一个模拟的应用日志文件 app.log
cat > app.log << 'EOF'
2024-01-15 08:12:34 INFO  UserService - User login attempt for user ID 12345
2024-01-15 08:15:22 DEBUG OrderService - Processing order #ORD-78945 for customer lisi
2024-01-15 08:18:45 WARN  PaymentService - Payment timeout for transaction TXN-12345
2024-01-15 08:22:17 ERROR DatabaseService - Connection pool exhausted, max connections reached
2024-01-15 08:25:33 INFO  EmailService - Sent notification email to user wangwu@example.com
2024-01-15 08:30:15 DEBUG CacheService - Cache hit ratio: 87.5% for region USER_PROFILE
2024-01-15 08:35:42 INFO  UserService - User profile updated for user ID 98765
2024-01-15 08:40:28 WARN  SecurityService - Failed login attempt from IP 192.168.1.100 for user zhangsan
2024-01-15 08:45:13 ERROR AuthService - Authentication failed for user zhangsan due to invalid credentials
2024-01-15 08:50:56 INFO  AuditService - User zhangsan accessed resource /api/users/profile
2024-01-15 08:55:24 DEBUG LoggingService - Log level changed from INFO to DEBUG
2024-01-15 09:00:37 INFO  NotificationService - Push notification sent to device ID DEV-55555 for user lisi
2024-01-15 09:05:48 WARN  FileService - Disk space usage reached 85% on volume /data
2024-01-15 09:10:15 INFO  ReportService - Generated daily report for 2024-01-14 with 1250 records
2024-01-15 09:15:32 ERROR EmailService - Failed to send email to zhangsan@company.com, SMTP timeout
2024-01-15 09:20:44 DEBUG MonitoringService - CPU usage spike detected: 92% at 09:20:43
2024-01-15 09:25:17 INFO  BackupService - Starting daily backup process for database PROD_DB
2024-01-15 09:30:29 WARN  NetworkService - High latency detected on interface eth0, avg: 156ms
2024-01-15 09:35:55 INFO  UserService - User zhangsan successfully logged in from IP 192.168.1.105
2024-01-15 09:40:12 DEBUG SessionService - Session timeout extended for user zhangsan, new expiry: 2024-01-15 10:40:12
2024-01-15 09:45:38 ERROR PaymentService - Payment processing failed for user zhangsan, order #ORD-99999
2024-01-15 09:50:25 INFO  APIService - API rate limit increased to 5000 req/min for premium users
2024-01-15 09:55:47 WARN  CacheService - Cache eviction triggered for region PRODUCT_CATALOG, 15% items removed
2024-01-15 10:00:13 INFO  UserService - Password reset requested for user zhangsan
2024-01-15 10:05:29 DEBUG SearchService - Indexed 2500 documents in 3.2 seconds, avg: 781 docs/sec
2024-01-15 10:10:44 ERROR NotificationService - Failed to send SMS to user zhangsan, gateway timeout
2024-01-15 10:15:18 INFO  AuditService - User zhangsan modified settings in admin panel
2024-01-15 10:20:33 WARN  SecurityService - Multiple failed login attempts detected for user zhangsan
2024-01-15 10:25:56 INFO  AnalyticsService - Generated user activity report for zhangsan, 45 actions recorded
2024-01-15 10:30:22 DEBUG DatabaseService - Connection pool utilization: 78% (39/50 connections)
2024-01-15 10:35:47 ERROR AuthService - Session expired for user zhangsan, token invalid
2024-01-15 10:40:15 INFO  UserService - User zhangsan logged out, session duration: 2 hours 15 minutes
EOF
  1. 查看多个文件
# 同时查看多个文件
less file1.txt file2.txt file3.txt
# 使用 :n 切换到下一个文件
# 使用 :p 切换到上一个文件
# 使用 :q 退出

在这里插入图片描述
输入:n查看下一个文件:
在这里插入图片描述
在这里插入图片描述
输入:p查看上一个文件:
在这里插入图片描述

在这里插入图片描述
如果不想查看了,输入:q退出查看:
在这里插入图片描述
在这里插入图片描述
测试文件:

# 创建第一个测试文件
echo -e "This is the content of file 1.\nIt has multiple lines.\nEnd of file 1." > file1.txt
# 创建第二个测试文件
echo -e "Content of file 2 is here.\nThis file contains different text.\nFile 2 ends here." > file2.txt
# 创建第三个测试文件
echo -e "Finally, this is file 3.\nThe last file in our example.\nGoodbye from file 3." > file3.txt
  1. 翻看历史命令

有时,可能一段很长的命令,但是我们不记得整个怎么写了,只记得部分,那么就可以通过下面命令来定位

# 翻看最近两百条历史命令,并通过管道传递给less命令
history -n 200 | less
# 然后就可以通过n/N键通过搜索关键字快速定位到整行的命令
  1. 查看系统日志
# 查看内核日志并启用行号显示
dmesg | less -N
  1. 实时监控文件变化
# 方式一:tail命令配合less
tail -f logfile.txt | less
# 方式二:直接通过+F参数
less +F logfile.txt
  1. 正则匹配

进入交互模式后,通过/pattern或者?pattern 输入正则表达式,进行正则匹配搜索

# 向后搜索包含 "content" 的行
?content
# 使用正则表达式搜索
?file$    # 匹配以 "file" 结尾的行

在这里插入图片描述
在这里插入图片描述
测试文件:

echo -e "Line 1: Start of file\nLine 2: Contains number 123\nLine 3: Another line\nLine 4: End of file" > test_pattern.txt

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/991587.shtml

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

相关文章

论文分享 |Spark-TTS:用解耦语音令牌实现高效可控的语音合成 - 实践

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

昆明黄金推荐排行

昆明黄金推荐排行引言在昆明这个繁华的城市,黄金市场琳琅满目,消费者在选择黄金时往往会感到困惑。本文将为您提供一份昆明黄金推荐排行,帮助您在众多品牌中找到适合自己的黄金产品。一、品牌实力昆明廖金匠昆明廖金…

NOIP2025反思--杨芮溪

NOIP2025反思--杨芮溪NOIP2025反思

2025深圳/惠州组装线供应商TOP5评测!装配线/生产线/老化线/输送线等五大主流厂家推荐,技术创新+行业经验权威榜单发布,赋能工业自动化升级

随着制造业智能化转型加速,组装线、装配线及生产线设备作为工业生产的核心基础设施,其技术先进性与适配性直接影响企业生产效率与产品质量。本榜单基于技术实力、行业覆盖、服务能力三大维度,结合国内制造业协会数据…

一个很好的观察案例:成功究竟是因为我们比较牛,还是仅仅因为运气

雪球上一个热帖,喜提人生第一个100万作者在藏格上挣到100万,志得意满,分享喜悦。下面都是炫富大会,低于100w的都不好开口。我买过藏格,不过卖飞了,所以看到这个帖子难免心痛。。。不过除了商业互吹,还有个争论很…

AD24中快速添加网络标签的方法

AD24中快速添加网络标签的方法今天在画tc264的核心板,该芯片为144pin封装的芯片,需要引出的芯片引脚偏多,通过结合excel和ad自带的智能粘贴实现对网络标签的快速添加tc264核心板如上,接下来是步骤 (一)直接新建一个exc…

终极揭秘:8大免费AI论文神器,一键极速生成,毕业/期刊/职称论文全覆盖!

毕业论文是校园生活的难题,不少同学为此苦恼。不过,随着AI技术发展,有了更高效的写作伙伴。本文揭秘8大免费AI论文神器,包括鲲鹏智写、SciSpace等,覆盖毕业、期刊、职称论文。如鲲鹏智写能30分钟生成5万字初稿,支…

GitHub更新:垃圾账户通知现可准确隐藏,清理近600万条记录

GitHub改进了通知处理机制,当用户或仓库被标记为垃圾信息源时,其触发的所有通知(包括历史提及)将被可靠隐藏,不再计入未读计数。此次更新清理了约600万条相关通知,使通知体验更清晰、可操作。垃圾账户触发的通知…

MATLAB基于CNN的图像超分辨率重建实现

一、系统概述 本系统在MATLAB平台上实现了基于CNN的图像超分辨率重建,支持SRCNN、EDSR、RCAN等主流模型架构,包含数据预处理、模型训练、性能评估全流程。系统采用Deep Learning Toolbox构建网络,支持GPU加速训练,…

英语_阅读_School activities

选词/句填空 School is more than a place to learn; it is also an opportunity to make friends and explore new activities. As the school year progresses, there are many ways to 66 the activities offered b…

使用spaCy与spacy-llm构建知识图谱实战

本文详细介绍了如何利用spaCy库的预训练模型进行实体识别,并整合spacy-llm调用大语言模型进行关系抽取,从而从非结构化文本中自动构建结构化的知识图谱。文章包含具体的配置、代码示例和构建自定义任务的方案。概述 …

软件质量保障的未来:基于 LLM 多智能体的白盒化演进

软件质量保障的未来:基于 LLM 多智能体的白盒化演进冬令时北京时间夜晚 11:00 点,美股开盘已经半个小时,你整备搂着媳妇刷刷手机结束这充实的一天,但是手机通知中心疯狂的消息推送划破寂静。你盯着屏幕上毫不留情的…

polarCTF冬季个人挑战赛除webpwn外个人题解

Crypto 高位攻击 完全用不到pq高位信息,因为d大概是n的0.2544次幂,所以直接套boneh donfee板子就可 # SageMath 9.3 N = 283841986252343110240555915087605458597725579626167050580871345703137660782463394328107…

Vue 3 Props 响应式深度解析:从原理到最佳实践 - 教程

Vue 3 Props 响应式深度解析:从原理到最佳实践 - 教程pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas&q…

VSc一些问题解决_杂记自用版

在VS Code里要删除这个“再谈MA”相关的内容,看界面这是当前打开的编辑器标签/资源,按以下步骤操作: 步骤1:关闭对应的编辑器标签 看界面上方“打开的编辑器”区域,找到“再谈MA”对应的标签页,点击标签页左侧的…

有名的大型工厂车间降温工业冷风机厂商,汽车制造车间通风降温/橡胶车间通风降温/焊装车间通风降温/电炉车间通风降温工业冷风机企业口碑排行

在工业制造领域,车间环境温度的控制不仅关乎员工的身心健康与工作效率,更直接影响到生产设备的稳定运行与产品的最终品质。随着全球对节能减排要求的日益提高,以及企业降本增效需求的持续增长,如何为大型工厂车间寻…

分库分表的门槛与代价——分片键、跨分片查询与全链路一致性的挑战清单

分库分表不是性能银弹,而是用架构复杂性换取扩展能力的艰难权衡在数据量持续增长的现代系统中,分库分表从可选项逐渐变为必选项。这一架构变革远非简单的数据分布调整,而是涉及数据访问路径重构、事务边界重新定义及…

【完结13章】Dify AI 赋能,零基础构建商业级 AI 应用与工作流

【完结13章】Dify AI 赋能,零基础构建商业级 AI 应用与工作流 学习地址:……/s/1MH5rEInciv9HgmvG1fLiPA 提取码:mzpv 我们正站在一个历史性转折点上:构建复杂AI应用的门槛,正从需要博士学位的专业编程能力,降低…

LaTeX参考文献系统指南

LaTeX参考文献系统完全指南(BibLaTeX + BibTeX) 1. 基本概念 文件结构 your-paper.tex # 主文档 references.bib # 参考文献数据库(纯文本)引用工作流程 .tex文件 → LaTeX编译 → 生成.aux文件 → BibTeX处…

Windows 下 LaTeX 安装与 VSCode 配置攻略(自用备忘版)

Windows 下 LaTeX 安装与 VSCode 配置攻略(自用版)为了避免每次重装时到处找攻略,特此记录...1. 安装 LaTeX 发行版:二选一 主流的发行版有 TeX Live 和 MiKTeX,它们的对比和选择如下:特性 MiKTeX TeX Live安装大…