嵌入式设备所用的Linux系统,为节省硬件资源、减少系统冗余开销、提升运行稳定性和安全性,默认不搭载图形界面,所有文件查看、系统运维、程序调试等操作,均依托黑底白字的命令行终端完成。这类纯命令行Linux系统无多余可视化进程占用资源,更适配长期稳定运行的服务端和嵌入式设备场景。
在无图形界面的Linux命令行环境中,你可以通过以下几类常用命令来查看文件内容。表1列出了常用查看命令。
表1 常用查看命令
cat命令
cat 的全称是concatenate,本意是“连接、串联”。在Linux里,它可以把文件所有内容,从头到尾一次性全部输出到屏幕上,也可以把多个文件合并到一个文件里。
【基础语法】
【语法说明】
[选项]:可选,控制输出格式(行号、隐藏字符等),不写则默认原样输出文本,选项参数见表2;
[文件]:可选,可单个/多个文件,省略文件则读取键盘输入;
[执行逻辑]:按顺序打印所有文件内容至终端。
表2 cat命令参数表
很多人认为cat命令就是一个查看文本文件的工具,这种理解是片面的。在实际的工程实践和运维过程中,cat 配合不同的参数,能够高效地解决行号定位、排版规整以及隐藏字符排查等棘手问题。下面通过几个关键应用场景,来具体说明cat命令的用法。
1、精准定位
在处理日志或配置文件时,我们往往需要知道某一行具体在哪里。这里有两个核心参数,它们的适用场景截然不同:
全量标号 -n
当你面对一份报错日志,需要精确定位到第几行出现错误时,使用 -n 是最稳妥的选择,因为它保证了行号的绝对连续性,不会因空行而中断计数。
有效标号 -b
在统计文档或配置文件的有效行数时,这个参数非常实用。它能帮你忽略那些为了美观而存在的空白行,仅对非空行(即包含有效内容的行)标记行号。
2、清理冗余空行
压缩空行 -s
可以将文件中连续出现的多个空行压缩为单个空行,它不会删除所有空行,而是消除“冗余”,保留必要的段落间隔,使文档看起来更加美观易读。
3、深度排查
很多时候,脚本执行报错、跨平台文件乱码,往往是肉眼看不见的特殊字符(如 Windows 的换行符、Tab 键、不可见控制符等)导致的。cat 提供了一套组合参数应对这些问题:
行尾标记 -E
在每一行的末尾显示一个 $ 符号,你可以直观地看到换行位置,轻松排查行尾是否有多余的空格,或者换行符是否正常。
Tab 可视化 -T
将 Tab 制表符显示为 ^I,可以容易观察到哪些位置用到了Tab键。
控制字符展示 -v
当你在 Linux 下打开从 Windows 传输过来的文件出现乱码,或者脚本行为异常时,使用 -v 可以找出那些不可见的控制字符,修复因控制字符不兼容引发的一些问题。
4、全能排查 -A
它是 -vET 三个参数的集合体。当你完全不知道文件出了什么问题,面临未知报错时,直接使用 -A。它会同时展示控制字符、Tab 和行尾标记,是文本问题排查的有利工具。
less命令
less命令是 Linux 中分页查看文本文件的核心工具。cat 是一次性把文件全部输出到屏幕,适合小文件;而 less 采用分页加载逻辑,不会一次性刷屏,超大日志、配置文件查看效率远高于 cat,也是运维排查日志的主流命令。
【基础语法】
【语法说明】
[选项]:可选,用于控制行号显示、匹配高亮、分页规则等输出效果;不写则默认分页查看文件内容。
[文件]:可选,支持单个文件查看,也可多文件连续查看;支持日志、脚本、配置文件等所有文本格式。
[执行逻辑]:不会一次性加载全部内容,以交互分页模式打开文件,支持上下滚动、检索搜索、快速跳转,退出后不会残留文件内容在终端屏幕。
表3 less命令参数表
cat和less都是查看文件的命令,cat适合查看内容量小的日志或配置文件。如果文件特别大,如几个G的运行日志,你一跑cat,整个终端瞬间就被海量内容刷屏,半天都停不下来,你想找里面某一行报错信息,翻都翻不到,完全抓瞎。
less命令的核心逻辑交互式分页查看,不会一下子把整个大文件加载输出,而是只把当前屏幕能装下的内容展示出来,你可以用上下键翻行、用PageUp和PageDown翻页,还能直接输入关键词进行快速检索,快速定位关键词所在的位置。特别适合排查系统故障,面对动辄几十上百兆的服务日志,用less来精准定位报错、检索关键内容,效率要比cat高多了。
下面通过几个关键应用场景,来具体说明less命令的用法。
1、精准定位报错行
日常排查大型日志、超长配置文件时,cat 输出全部内容后,终端信息杂乱,很难锁定报错位置。使用 less -N 文件名,分页展示完整行号,支持上下滚动逐行核对,行号固定显示,不会因刷屏丢失定位信息,满足日志报错行排查需求。
2、检索关键词
less内置了搜索功能。在终端输入 less filename.log 打开文件后,按下 / 键,光标会跳到屏幕底部等待输入,输入你要查找的关键词,less会让所有匹配到的关键词高亮显示,此时按下n键会跳转到下一个匹配项,按下N键,会跳转到上一个匹配项,若忽略大小写,可以使用命令参数-i。
3、查看文件打开进度
使用 less -m 打开文件,终端底部会实时显示阅读进度百分比,随着掌握文件的阅读进度。
4、交互快捷键
less命令还提供了快捷键操作,提升文件查看效率。
空格:向下翻一页
回车:向下翻一行
b:向上翻一页
g:跳转到文件开头
G:跳转到文件末尾
/关键词:正向搜索匹配内容
q:退出 less 查看模式。
tail命令
tail 本意是 “尾部、末尾”,核心作用是读取文件末尾内容。cat 会一次性输出全文,适合完整阅读;tail 聚焦文件末尾,是线上实时日志排查的核心工具,既能查看文件尾部片段,也能持续监听文件新增输出。
【基础语法】
tail [选项] [文件 1 文件 2 ...]
【语法说明】
[选项]:可选,控制输出行数、实时追踪、空行压缩等展示规则,不写参数默认打印文件最后 10 行;
[文件]:可选,支持单个、多个文件;省略文件时读取管道标准输入;
[执行逻辑]:默认读取文件末尾内容输出至终端,搭配追踪参数可持续捕获文件新写入内容。
表4 tail命令参数表
| |
-n | 指定输出文件末尾多少行,可自定义行数 |
-f | 实时跟踪文件新增内容,日志实时刷新输出 |
-F | 持续追踪文件,文件被删除重建后仍能正常监听 |
-s | 搭配 - f 使用,设置内容刷新间隔秒数 |
-q | 多文件查看时,不输出文件名称头部信息 |
-v | 多文件查看时,强制显示每个文件名称标题 |
很多人误以为 tail 只能简单看最后几行日志,这种理解是错误的。运维排查报错、线上监控程序输出时,tail 配合不同参数,可快速截取尾部关键日志、实时监听程序运行输出、适配日志切割场景,下面结合实际工作场景讲解tail命令的用法。
1、截取末尾指定行数
程序或系统出现异常,报错信息大多出现在最新写入的日志末尾,应用 tail命令,可以快速截取文件尾部的关键片段。如输入下面的命令:
命令执行后,会显示test.log文件的末尾 50 行,可快速定位最近报错信息。
2、实时监控日志
在系统或程序运行、接口请求处理或服务崩溃排查等动态场景中,静态地查看日志往往滞后且低效。我们需要的是像听诊器一样,实时捕捉系统的每一次心跳,在该场景下,可以应用下面的命令:
命令执行后,test.log文件每新增一行内容,tail就会立刻将新增加的内容同步打印到屏幕,操作者可以实时捕捉程序运行动态输出。
3、-f 与 -F 的区别
在实际生产环境中,有一个必须注意的“坑”:日志轮转(Log Rotation)。Linux 系统通常会定期切割日志(例如每天凌晨将 app.log 重命名为 app.log.2026-06-29,并创建一个新的 app.log),用于防止单个日志文件无限膨胀占满磁盘。
tail -f 默认是基于文件描述符跟踪的。如果原文件被重命名,tail -f 仍然会盯着那个旧文件(现在叫 app.log.2026-06-29)的新增内容,而新的 app.log 产生的日志它将完全看不到。如需长期实时监控日志文件,需要使用下面的命令:
查看命令小结
Linux 主流文件查看命令按功能可划分为全量查看、分页查看、局部查看三类,适配不同业务场景。
cat 是全量输出命令,可一次性输出文件全部内容,支持标注行号、压缩空行、可视化隐藏字符,还能实现多文件合并,适合小文件、配置文件快速查看。但该命令无法分页,查看超大日志会造成终端刷屏,难以定位问题。
less 采用按页加载的交互模式,用于解决 cat 大文件刷屏问题。支持上下翻页、关键词搜索高亮、查看阅读进度。是日常排查大中型日志、超长配置文件的首选工具,退出后不会残留终端内容。
tail 专注查看文件尾部内容,默认展示最后10行,可自定义查看行数。主要优势是实时监控日志,-f 可实时追踪文件新增内容,适合临时调试,长期监控需用 -F,可适配日志切割场景,文件重建后仍能持续监听。
总的来说,小文件用 cat、大文件检索用 less、实时日志监控用 tail,三者配合可覆盖 Linux 所有文件查看与日志排查场景。