Linux 中 cat 命令是文本处理领域最基础且功能强大的工具之一,其名称来源于 “concatenate”(连接)的缩写,最初设计用于合并文件内容,经过多年的发展,cat 已成为 Linux/Unix 系统管理员和开发者的必备工具,不仅能高效显示文件内容,还具备多种实用功能,本文将从基本用法、核心功能、高级技巧及实际应用场景四个维度,全面解析 cat 命令的使用方法。

基本用法:快速查看文件内容
cat 命令最核心的功能是显示文件内容,其基本语法为 cat [选项] 文件名,若不指定选项,直接输入 cat 文件名 即可输出文件的全部内容到终端,查看当前目录下的 example.txt 文件,只需执行 cat example.txt,系统会逐行显示文件中的文本内容。
对于多个文件,cat 会按顺序连接并显示所有文件内容。cat file1.txt file2.txt 会先输出 file1.txt 的内容,紧接着输出 file2.txt 的内容,最终合并为一个连续的文本流,这种特性使得 cat 在需要快速对比或合并多个小文件时非常便捷。
若未指定文件名,cat 会从标准输入(stdin)读取数据并输出到标准输出(stdout),通过管道()将其他命令的输出传递给 cat:ls -l | cat,cat 的作用等同于直接显示 ls -l 的结果,虽然看似多余,但在需要结合 cat 选项处理数据时十分有用。
核心功能详解:选项与参数
cat 命令的丰富功能主要通过选项实现,以下为常用选项及其作用:
| 选项 | 全称 | 功能描述 | 示例 |
|---|---|---|---|
-n |
--number |
为所有输出的行添加编号 | cat -n example.txt |
-b |
--number-nonblank |
仅对非空行编号,空行保持原样 | cat -b example.txt |
-A |
--show-all |
显示所有字符,包括不可见字符(如制表符显示为 ^I,行尾显示为 ) |
cat -A example.txt |
-E |
--show-ends |
在每行结尾显示 符号 | cat -E example.txt |
-T |
--show-tabs |
将制表符(Tab)显示为 ^I |
cat -T example.txt |
-s |
--squeeze-blank |
合并连续的空行为一行 | cat -s example.txt |
-v |
--show-nonprinting |
显示非打印字符(除换行符和制表符外) | cat -v example.txt |
示例说明:
- 使用
-n选项时,编号从 1 开始,即使文件开头有空行也会被编号;而-b选项会跳过空行,仅对包含内容的行编号,适合查看代码或日志时定位具体行。 -A选项是调试文本文件的利器,能直观显示隐藏字符,例如检查文件中是否包含多余的空格、制表符或 Windows 行尾符(\r\n会被显示为^M)。
高级技巧:结合管道与重定向
cat 命令虽功能单一,但通过与其他命令结合,可发挥强大的文本处理能力。

创建或覆盖文件
使用重定向符号 > 可将 cat 的输出写入文件。cat > newfile.txt 后,终端会进入输入模式,用户输入的内容会直接保存到 newfile.txt,按 Ctrl+D 结束输入,若文件已存在,> 会覆盖原内容;若需追加内容,则使用 >> 符号,如 cat >> newfile.txt。
结合管道处理数据
cat 可作为数据流的“中转站”,将文件内容传递给其他命令。
cat example.txt | grep "keyword":在example.txt中搜索包含 “keyword” 的行;cat example.txt | wc -l:统计example.txt的行数;cat example.txt | sort:对文件内容进行排序。
合并文件并添加分隔符
若需合并多个文件并添加标题或分隔线,可通过 cat 的多文件特性实现:
cat header.txt data1.txt data2.txt footer.txt > combined.txt
合并后的文件会按顺序包含 header.txt、data1.txt、data2.txt 和 footer.txt 的内容,适合生成报告或日志汇总。
实际应用场景
查看配置文件
在 Linux 系统中,许多配置文件(如 /etc/passwd、/etc/hosts)需要直接查看内容,使用 cat /etc/passwd 可显示系统用户列表,结合 grep 可快速筛选特定用户:cat /etc/passwd | grep "root"。
调试脚本或代码
开发过程中,使用 cat -n script.sh 可为脚本添加行号,便于定位错误;若怀疑脚本包含隐藏字符,可通过 cat -A script.sh 检查,例如发现 Windows 行尾符时,需用 dos2unix 命令转换格式。

实时监控日志
虽然 tail 命令更适合实时监控日志,但 cat 可用于一次性查看完整的日志文件,cat /var/log/syslog 显示系统日志,结合 less 命令可实现分页浏览:cat /var/log/syslog | less。
生成简单的文本报告
通过 cat 合并多个文本片段,可快速生成报告,将标题、正文和页脚分别存为不同文件后,使用 cat title.txt content.txt footer.txt > report.txt 合并为完整报告。
注意事项
- 大文件处理:cat 会一次性加载整个文件到内存,若文件过大(如几十 GB),可能导致终端卡顿或内存溢出,此时应使用
less、more或head/tail命令分页查看。 - 二进制文件:cat 不适合直接查看二进制文件(如图片、可执行文件),因为会输出大量乱码,可能破坏终端显示,推荐使用
hexdump或xxd命令以十六进制格式查看。 - 权限问题:若文件无读取权限,cat 会报错 “Permission denied”,需使用
sudo提升权限或修改文件权限。
cat 命令虽看似简单,却是 Linux 文本处理的基石,通过掌握其基本用法、选项功能及与其他命令的协作方式,用户可以高效完成文件查看、内容编辑、数据合并等多种任务,无论是系统管理员排查日志,还是开发者编写代码,cat 都以其简洁高效的特点,成为 Linux 生态中不可或缺的工具,熟练使用 cat,不仅能提升日常工作效率,更能为深入学习 Linux 文本处理技巧打下坚实基础。













