Logo

郎哥编程

文件查看命令

2026-07-07 173

嵌入式设备所用的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 所有文件查看与日志排查场景。

评论区

登录 后发表评论
暂无评论