嵌入式设备所用的Linux系统,为节省硬件资源、减少系统冗余开销、提升运行稳定性和安全性,默认不搭载图形界面,所有文件查看、系统运维、程序调试等操作,均依托黑底白字的命令行终端完成。这类纯命令行Linux系统无多余可视化进程占用资源,更适配长期稳定运行的服务端和嵌入式设备场景。
一、常用查看文件命令
在无图形界面的Linux命令行环境中,你可以通过以下几类常用命令来查看文件内容。表1列出了常用查看命令。
表 1 常用查看命令
| 分类 | 命令 | 核心作用 |
| 查看完整文件 | cat | 一次性输出文件全部内容,可加行号、显示隐藏符号 |
| tac |
倒序输出文件内容(从末尾到开头) |
|
| 分页浏览大文件 | more | 单向分页,仅支持向下翻阅 |
| less | 双向翻页、支持关键词搜索高亮 | |
| 查看局部内容 | head | 查看文件开头 N 行 |
| tail | 查看文件末尾 N 行,-f 实时追踪新增日志 |
二、cat命令
cat 的全称是concatenate,本意是“连接、串联”。在Linux里,它可以把文件所有内容,从头到尾一次性全部输出到屏幕上,也可以把多个文件合并到一个文件里。
基础语法
cat [选项] [文件1 文件2 ...]
语法说明
[选项]:可选,控制输出格式(行号、隐藏字符等),不写则默认原样输出文本,选项参数见表2;
[文件]:可选,可单个/多个文件,省略文件则读取键盘输入;
执行逻辑:按顺序打印所有文件内容至终端。
表 2 cat命令参数表
| 参数 | 功能说明 |
| -n | 所有行显示行号 |
| -b | 仅给非空行加行号,空行不编号 |
| -A | 显示所有不可见字符 |
| -E | 每行末尾显示 $ 标记换行符 |
| -T | Tab 制表符显示为 ^I |
| -v | 显示除 Tab、换行外的不可见控制字符 |
| -s | 连续多行空行压缩为1行空行输出 |
很多人认为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,也是运维排查日志的主流命令。
基础语法
less [选项] [文件1 文件2 ...]
语法说明
[选项]:可选,用于控制行号显示、匹配高亮、分页规则等输出效果;不写则默认分页查看文件内容。
[文件]:可选,支持单个文件查看,也可多文件连续查看;支持日志、脚本、配置文件等所有文本格式。
执行逻辑:不会一次性加载全部内容,以交互分页模式打开文件,支持上下滚动、检索搜索、快速跳转,退出后不会残留文件内容在终端屏幕。
表 3 less命令参数表
| 参数 | 功能描述 |
| -N | 全程显示每行绝对行号 |
| -i | 搜索时忽略大小写 |
| -s | 压缩连续空行 |
| -m | 显示读取进度百分比 |
| -f | 强制打开特殊文件 |
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命令,可以快速截取文件尾部的关键片段。如输入下面的命令:
tail -n 50 test.log
命令执行后,会显示test.log文件的末尾 50 行,可快速定位最近报错信息。
2、实时监控日志
在系统或程序运行、接口请求处理或服务崩溃排查等动态场景中,静态地查看日志往往滞后且低效。我们需要的是像听诊器一样,实时捕捉系统的每一次心跳,在该场景下,可以应用下面的命令:
tail -f test.log
命令执行后,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 产生的日志它将完全看不到。如需长期实时监控日志文件,需要使用下面的命令:
tail -F test.log
五、查看命令小结
Linux 主流文件查看命令按功能可划分为全量查看、分页查看、局部查看三类,适配不同业务场景。
cat 是全量输出命令,可一次性输出文件全部内容,支持标注行号、压缩空行、可视化隐藏字符,还能实现多文件合并,适合小文件、配置文件快速查看。但该命令无法分页,查看超大日志会造成终端刷屏,难以定位问题。
less 采用按页加载的交互模式,用于解决 cat 大文件刷屏问题。支持上下翻页、关键词搜索高亮、查看阅读进度。是日常排查大中型日志、超长配置文件的首选工具,退出后不会残留终端内容。
tail 专注查看文件尾部内容,默认展示最后10行,可自定义查看行数。主要优势是实时监控日志,-f 可实时追踪文件新增内容,适合临时调试,长期监控需用 -F,可适配日志切割场景,文件重建后仍能持续监听。
总的来说,小文件用 cat、大文件检索用 less、实时日志监控用 tail,三者配合可覆盖 Linux 所有文件查看与日志排查场景。