Linux大文件日志查看神器:less与more命令详解 很多运维场景里最让人头疼的不是服务挂了而是服务日志动辄几个 GB用 cat 一次刷屏到死用 vim 打开直接卡住半天。遇到这种情况Linux 自带的 more 和 less 这两个分页查看命令就是最实用的救场工具。这次我们把 less 和 more 从用法到实际排障场景完整过一遍重点解决一个问题大文件怎么快速定位关键信息。LESS 和 MORE 是 Linux 下最基础的文本分页查看命令。more 是老牌命令功能简单只能往下翻less 是增强版可以上下翻、搜索、跳转、高亮日常使用中 less 频率远高于 more。两者都不需要额外安装几乎任何 Linux 发行版都内置也不需要 GUI纯命令行操作适合服务器远程排查场景。这篇文章会演示 less 和 more 的核心参数、快捷键、日志定位方法、多文件查看方式以及在大文件场景下的资源占用对比。如果你正在学 Linux 常用命令或者经常需要在服务器上翻日志、看配置、排查问题这篇文章可以直接收藏。1. more 和 less 核心能力速览能力项moreless定位老牌分页查看命令POSIX 标准落地方案more 的增强替代品现代 Linux 默认推荐启动方式终端直接执行more 文件名终端直接执行less 文件名向内翻页支持按空格或回车支持按空格、PgDn、方向键往回翻页不支持支持按 b、PgUp、方向键关键字搜索支持向前搜索按/支持向前和向后搜索按/和?行号显示支持-N启动参数支持-N启动参数跳转到指定行不支持支持输入数字后按G跳转到文件开头/结尾不支持支持按g和G实时查看日志不支持支持按F类似 tail -f适合场景简单文件快速翻看、老系统兼容大日志分析、代码阅读、配置文件排查批量操作管道可作为分页器接入管道可作为分页器接入管道资源占用较低逐屏读取较低逐屏读取不像 cat 打满内存从表里可以看出来less 基本是 more 的超集。实际工作中很多运维默认 alias 把 more 映射成了 less原因就在这里。2. 适用场景与使用边界2.1 适合谁用less 和 more 适合这几类人刚接触 Linux 命令行的初学者想用最小成本查看系统日志和配置文件。运维工程师需要远程到服务器上排查 Nginx、Nginx、Java、Python 应用日志。开发人员在服务器上查看应用输出、错误堆栈、接口请求日志。嵌入式开发工程师在串口终端或精简 Linux 环境中无法使用图形化编辑器时用 less 快速浏览内核日志。2.2 能解决什么问题核心解决四个问题大文件打开卡死问题。cat会把整个文件读入终端大文件直接刷屏less 和 more 只按屏幕加载。日志定位问题。日志文件动辄几十万行less 提供了搜索和跳转能快速定位关键字。终端环境限制问题。没有 GUI 的服务器、SSH 连接环境只能用命令行工具。临时查看问题。只想快速看一眼配置内容不想用 vim 编辑避免误改。2.3 不适合什么场景需要编辑文件内容时用 vim、nano不要用 less。需要按时间范围精确过滤日志时优先用 grep、awk、sed。需要统计日志行数、关键字出现次数时用 wc、grep -c。需要实时持续监控日志并做统计时用 tail -f 结合管道处理或者用专门的日志工具。2.4 使用边界与注意事项涉及服务器日志时注意日志中可能包含用户隐私、密钥、Token不要在公开平台直接粘贴原始日志。查看敏感配置文件时避免用截图方式外传。某些精简的嵌入式 Linux 系统可能只提供 more没有 less需要先用which less确认。3. 环境准备与前置条件3.1 操作系统要求less 和 more 几乎支持所有 Linux 发行版CentOS / RHEL / Rocky LinuxUbuntu / DebianopenEuler 等国产 Linux 发行版嵌入式 Linux / BusyBox 环境3.2 检查命令是否存在登录服务器后先确认命令可用which less which more如果输出路径比如/usr/bin/less说明已经安装。如果没有输出说明系统没有安装。3.3 安装命令Ubuntu / Debian 系sudo apt update sudo apt install lessCentOS / RHEL 系sudo yum install less注意嵌入式 Linux 环境可能没有包管理器这时更稳妥的方式是直接用 BusyBox 自带的 more 或 less 精简版。3.4 准备测试文件为了方便练习先创建一个有内容的测试文件# 生成一个 100 万行的测试文件每行包含行号和随机文本 for i in $(seq 1 1000000); do echo line $i: some test data for less and more done /tmp/test.log查看文件大小ls -lh /tmp/test.log从材料实践来看这个文件大约 40MB 左右适合用来测试翻页和搜索。4. 启动与服务访问方式less 和 more 不是常驻服务不需要后台启动直接在终端执行命令即可。4.1 基础启动less /tmp/test.log执行后进入分页界面。此时整个屏幕显示文件开头部分底部会有高亮的文件名和当前行号提示。more /tmp/test.logmore 同样进入分页界面但底部显示的是--More--(17%)这样的进度百分比。4.2 启动时带参数# 显示行号 less -N /tmp/test.log # 搜索并高亮关键字 less -p error /tmp/test.log # 退出后恢复屏幕内容 less -X /tmp/test.log # 以原始模式输出不换行截断 less -S /tmp/test.logmore 也支持部分参数more -N /tmp/test.log more -d /tmp/test.log其中-d会在底部显示操作提示。4.3 进程残留问题虽然 less 不是服务但如果终端异常断开less 进程可能残留。排查残留进程ps -ef | grep less如果发现残留进程可以使用 kill 结束kill -9 进程PID5. 功能测试与效果验证5.1 基本翻页测试测试目的验证 less 和 more 是否支持正常向上和向下翻页。操作步骤启动 lessless /tmp/test.log按键测试按键less 效果more 效果空格向下翻一屏向下翻一屏回车向下翻一行向下翻一行b向上翻一屏不支持PgUp向上翻一屏不支持方向上键向上翻一行不支持方向下键向下翻一行不支持判断标准less 可以自由前后翻页more 只能向下回翻时 more 会显示明显的“无法回翻”行为。5.2 关键字搜索测试测试目的在大文件中快速定位关键字这是日志排查最核心的功能。在 less 中按/输入要搜索的关键字然后回车/error搜索后 less 会跳到第一个匹配位置。如果文件中没有匹配项底部会显示Pattern not found。继续搜索下一个匹配项n跳到下一个匹配N跳到上一个匹配less 还支持向后搜索按?加关键字?errormore 也支持/搜索但搜索结果不可回退查看实用性较低。实际操作时建议先搜索后翻看比如# 直接查看 error 位置 less -N -p error /tmp/test.log5.3 跳转测试测试目的快速定位文件头部、尾部、指定行号。在 less 中按g跳转到文件第一行。按G跳转到文件最后一行。输入行号后按G比如输入500000然后按G跳转到第 500000 行。按百分比跳转输入50%后回车跳到文件中间位置。按行号查看当前位置信息按或CtrlG显示当前行号和进度。more 没有这些能力。5.4 实时日志跟踪测试测试目的less 是否支持类似 tail -f 的实时查看效果。操作步骤less /tmp/test.log在 less 中按大写F此时 less 进入类似 tail -f 的模式会跟随文件尾部实时刷新。按CtrlC退出跟随模式。这个功能在排查线上日志时很有用。如果不想用 less传统方式tail -f /tmp/test.log两者差别tail -f 可以配合 grep 使用比如tail -f /tmp/test.log | grep ERRORless 的F模式则不支持同时过滤。5.5 多文件查看测试测试目的less 和 more 同时查看多个文件。less /tmp/test.log /var/log/messages more /tmp/test.log /var/log/messages在 less 多文件模式下:n跳到下一个文件。:p跳到上一个文件。:d删除当前文件列表中的文件。按:files查看当前文件列表。5.6 管道分页测试测试目的其他命令输出较长时用 less 分页显示。# 查看 ls 输出 ls -l /etc | less # 查看 dmesg 内核日志 dmesg | less # 查看系统启动日志 journalctl -xe | less这里 less 的作用是接管管道输出避免输出内容过多时终端滚动丢失信息。more 同样可以接入管道但功能较弱。6. less 和 more 在 Linux 命令批量任务中的使用6.1 批量查看多个配置文件在实际运维中我们常常需要同时查看多个配置文件。此时可以用通配符一次打开less /etc/nginx/conf.d/*.conf打开后按:n和:p在文件之间切换。如果只想每次查看当前文件的一部分多次执行for file in /etc/nginx/conf.d/*.conf; do echo $file less $file done6.2 日志分片与筛选后查看日志文件过大时先过滤关键内容再交给 less 查看# 筛选包含 ERROR 的行 grep ERROR /tmp/test.log | less # 筛选某个时间段的日志 sed -n /2025-01-01 00:00:00/,/2025-01-01 01:00:00/p app.log | less # 用 awk 提取指定列再查看 awk {print $1, $2, $5} app.log | less # 去重后查看 sort access.log | uniq -c | sort -rn | less这是最常用的模式先缩小数据范围再通过 less 翻看。6.3 less 与 vim 联动需要查看后又想编辑时可以直接从 less 中打开 vim在 less 中按vless 会调用系统默认编辑器打开当前文件。默认编辑器可以通过环境变量配置export EDITORvim6.4 进度控制与大型任务批量查看超大日志时不要在命令执行完成后才去查看更推荐流式处理。比如# 实时查看日志中异常数据 tail -f /var/log/app.log | grep -E ERROR|WARN | less注意这句话管道中加 less 后如果处理的数据量太大less 会按页显示需要手动翻页。更稳妥的做法是先用 grep 限制输出量。7. 资源占用与性能观察7.1 less vs cat 内存占用先说结论cat 会把整个文件内容输出到终端但 cat 本身是用于输出重定向或拼接文件场景查看大日志时非常低效。对比方法# 观察内存占用 ps -eo pid,rss,cmd | grep -E cat|less|more大文件场景下cat 启动后终端被刷屏即使用cat /tmp/test.log本地终端缓冲区会暴涨而 less 和 more 只按屏幕加载内存占用相对稳定。7.2 less 如何避免打开大文件卡顿less 是逐段读取文件不是一次性读入内存。即使文件有几个 GBless 也能快速打开到第一屏。这就是为什么日志分析首选 less 而不是 vim。vim 打开大文件时也可能出现卡顿一方面是因为 vim 内部结构复杂另一方面是语法高亮和 undo 机制会拖慢响应。less 没有这些问题。7.3 显存与 GPU 不适用本主题不涉及显存、GPU、AI 模型推理等内容。less 和 more 是纯 CPU 文本处理命令CPU 单核性能足够不需要关注显卡配置。7.4 降低终端负载的技巧不要用cat 大文件 | less直接用less 大文件。防止长行换行导致性能下降使用less -S。不需要语法高亮的场景不要开-N行号会消耗一点性能和屏幕宽度。使用-f参数强制打开非普通文件时注意文件类型。8. less 和 more 常见问题与排查方法问题现象可能原因排查方式解决方案which less无输出系统未安装 less检查包管理器安装 less 或使用 more 代替more 按 b 无法回滚more 本身不支持向上翻页查看 more 帮助改用 lessless 显示乱码文件编码不是 UTF-8file 文件名查看编码改用 iconv 转换编码后查看less 打开文件显示不换行终端宽度限制或使用了 -S确认参数去掉 -S 参数less 搜索中文无结果编码不匹配或关键字包含特殊符号确认终端编码为 UTF-8重新设置终端编码大文件打开较慢文件行数极大且开启了 -N观察启动时间去掉行号使用-S按 F 没有进入实时跟踪当前 less 版本较老less --version查看版本升级 less管道命令输出被截断less 分页导致后续命令被阻塞检查管道逻辑如果不需要交互改用 grep 直接输出less 中按 v 无法打开编辑器未设置 EDITOR 环境变量echo $EDITOR设置export EDITORvim终端退格键无效终端类型不兼容echo $TERM确认使用export TERMxterm-256color部分精简 Linux 无 lessBusyBox 环境缺少 lessls /usr/bin/less直接使用 busybox more8.1 常见错误cat 大文件导致终端卡死排查步骤# 先杀掉卡住的 cat 或 tail 进程 ps -ef | grep cat kill -9 进程PID # 重新用 less 查看 less /tmp/test.log8.2 常见错误less 搜索失败less 中按/输入关键字后提示Pattern not found。可能原因是关键字中包含正则特殊字符需要用\转义。文件编码和终端编码不一致。关键字存在但不在当前视图范围内先试?向后搜索。8.3 常见错误less 打开目录报错直接执行less /etc/nginxless 会提示是一个目录。正确做法less /etc/nginx/nginx.conf8.4 常见错误日志文件被 rotateless 打开旧文件日志滚动后旧的日志文件可能被改名或压缩。先确认文件路径ls -lh /var/log/app*.log zcat /var/log/app.log.1.gz | less9. less 和 more 最佳实践与使用建议从实际使用经验来看可以总结出几条可复用的原则。9.1 第一天就记住的短命令建议先形成一个条件反射只要终端输出可能超过一屏就习惯性加上| less。比如ls -l /etc | less cat /etc/nginx/nginx.conf | less dmesg | less注意cat 文件 | less不是最优写法直接less 文件更省资源。但如果你已经习惯管道思路两者都能用。9.2 服务器日志分析的最小工作流遇到线上日志有问题时可以用以下顺序# 第一步确认文件位置和大小 ls -lh /var/log/你的应用.log # 第二步统计关键词出现次数 grep -c ERROR /var/log/你的应用.log # 第三步提取关键词上下文 grep -n ERROR /var/log/你的应用.log | head # 第四步用 less 定位具体行 less -N -p ERROR /var/log/你的应用.log这个工作流比直接打开文件在 less 中搜索更高效因为 grep 可以快速确定 error 分布密度。9.3 大文件搜索优先用 grep如果只是为了统计和过滤不要打开 less 慢慢翻。比如# 统计每个 IP 的访问次数 awk {print $1} access.log | sort | uniq -c | sort -rn | less # 提取 500 错误日志 grep 500 access.log | less9.4 日志文件按时间切分在正式项目中日志文件通常按日期或大小自动切分。部署应用时建议配置 logrotate/var/log/myapp/*.log { daily rotate 30 compress delaycompress missingok notifempty copytruncate }这样大文件问题能从根源上缓解less 查看单个文件时也更轻松。9.5 监控脚本中避免交互式命令在 crontab 或 CI 脚本中不要直接使用 less因为需要手动交互。应该用 grep、awk、sed 等非交互命令。如果确实需要分页展示在交互式终端里手动使用 less不要在非交互脚本中使用。9.6 隐私与授权查看服务器日志时日志中可能包含用户 ID、手机号、Token、内部 IP。在博客、技术文章或工单中贴日志前务必对敏感信息做脱敏处理。涉及设备或系统的操作权限确保是在公司授权范围内进行测试和排查。9.7 把 less 配置固化可以创建一个.lesskey文件来定制 less 的按键习惯但日常使用默认键位就足够。真正需要记住的配置项是export LESS-N -S -i含义-N显示行号-S截断超长行不换行-i搜索时忽略大小写写进~/.bashrc后每次 less 都会带上这些参数。10. 总结与下一步这次把 more 和 less 完整过了一遍。最值得记住的结论是less 是 more 的增强替代品日常直接使用 less遇到大文件不要用 cat用 less要搜索定位日志关键字时先用 grep 缩小范围再用 less 分页查看less 支持向前翻页、搜索、跳转、多文件切换功能上完全覆盖 more。建议你最先验证三个能力用 less 打开你服务器上目前最大的一个日志文件观察打开速度。在 less 中按G跳转到文件尾部确认能快速看最后几行。按/搜索一个真实存在的关键字练习n和N前后切换。最容易踩的坑也有三个在极小终端窗口里使用-S导致看不到超长行内容。在自动化脚本中误用 less 导致脚本挂起等待输入。用 grep 过滤后再用 less 时忘记 grep 本身会输出大量内容需要通过 head 或 tail 限制行数。后续可以继续扩展的方向结合tail -F做多文件实时跟踪结合sed做时间窗口切片结合awk做关键字段统计甚至可以写一个简单的 shell 脚本把日志定位全流程串起来。如果想再看其他 Linux 常用命令比如find、grep、du、df、netstat的用法可以继续关注这个系列。

相关新闻

最新新闻

用CH341编程器变身I2C调试工具:从驱动到EEPROM读写全攻略

用CH341编程器变身I2C调试工具:从驱动到EEPROM读写全攻略

简介:CH341-i2c工具是一套基于CH341芯片的USB转I2C总线调试软件,面向嵌入式开发者、硬件工程师以及对I2C协议有调试需求的爱好者,在学习和工程应用中均能派上用场。它将个人电脑与采用SDA、SCL两线通信的设备连接起来,支持总线扫描…

2026/9/2 3:22:56
基于YOLOv8与PySide6的PCB缺陷检测系统实战

基于YOLOv8与PySide6的PCB缺陷检测系统实战

用YOLOv8/YOLOv5做PCB印制板缺陷检测,再用PySide6套一个桌面界面,是很多做视觉检测的人会走的完整路线。它解决的问题不是把模型训练出来就结束,而是让检测能力变成现场人员真正能用的工具。这篇文章适合刚入门YOLO、准备做检测小系统&#x…

2026/9/2 3:22:56
Codex项目实战:修复2010款MacBook Pro显卡驱动,让老设备在Linux上重生

Codex项目实战:修复2010款MacBook Pro显卡驱动,让老设备在Linux上重生

这次我们来看一个非常实用的开源项目:Codex。它不是一个AI代码生成工具,而是一个专门用于解决老旧MacBook Pro(特别是2010年款)显卡驱动问题的内核补丁工具。如果你手头还有一台“老古董”MacBook Pro,因为系统升级后显…

2026/9/2 3:22:56
Apache Ozone生命周期配置详解:S3兼容自动过期与存储分层实践

Apache Ozone生命周期配置详解:S3兼容自动过期与存储分层实践

这是一篇可以直接发布的 Apache Ozone 生命周期配置技术长文。全文约 6000 字,从功能定位、部署准备、配置格式、测试验证到接口调用和排查清单都覆盖了,适合作为 CSDN 技术博客发布。1. 核心能力速览Apache Ozone 是 Apache 软件基金会下面的分布式对象…

2026/9/2 3:22:56
Python实战练习指南:从基础语法到文件与数据处理

Python实战练习指南:从基础语法到文件与数据处理

在实际编程学习过程中,很多人掌握了Python基础语法后,却不知道如何将这些知识点串联起来解决实际问题,或者面对一个稍复杂的需求时感到无从下手。这种“知道但不会用”的困境,往往需要通过大量、有针对性的练习来突破。本文旨在提…

2026/9/2 3:22:56
Filemon V4.33使用指南:文件系统监控与排障实战

Filemon V4.33使用指南:文件系统监控与排障实战

简介:这是一份面向系统管理员、开发者和IT运维人员的经典系统文件监控工具资源。filemon V4.33 可实时跟踪系统中每个进程对文件及注册表的访问行为,覆盖打开、读取、写入、关闭、重命名、删除等操作,并能显示进程名、文件路径、返回值等详细…

2026/9/2 3:17:56