导读:本期聚焦于小伙伴创作的《linux中cat命令怎么用?新手必看的基础用法与实用技巧》,敬请观看详情。刚接触Linux环境时,面对零散的文本文件常常不知道如何快速浏览内容。cat作为最基础的文件操作命令,直接把目标文件内容输出到终端,不仅能查看还能合并多个文件。它的参数虽少,但配合重定向符号可以实现日志汇总、配置拼接等任务。理解cat读取文件的底层逻辑后,就能避免大文件刷屏、二进制乱码等尴尬情况。本文从最简单的单文件输出讲起,逐步覆盖行号显示、空行压缩、文件连接等真实场景下的用法,并给出常见误用带来的性能隐患与替代方案。

在Linux系统里,cat命令是最常被使用的文件处理工具之一,它的名字来自concatenate(连接),最基础的能力是把一个或多个文件的内容连续输出到标准输出设备,也就是终端屏幕。掌握它不仅能查看文本,还能在脚本里完成文件合并与内容传递。

linux中cat命令怎么用?新手必看的基础用法与实用技巧

一、cat命令的基本语法

cat命令的通用格式非常简单,通常由命令本身、可选参数以及一个或多个文件参数组成。如果不加任何参数,直接写cat后面跟文件名,系统就会打开该文件并把内容全部打印出来。这种设计让它成为排查配置文件、查看日志的首选。

需要注意的是,cat并不是分页器,它会一次性把所有内容抛到屏幕上。如果文件很大,终端会快速滚动,用户根本看不清开头。因此cat更适合中小文件,或者配合其他命令如more、grep来使用。下面是最直接的一个调用示例:

# 查看单个文件内容
cat /etc/hostname

# 同时查看多个文件
cat file1.txt file2.txt

二、常用参数详解

1. 显示行号 -n 与 -b

在排查代码或日志时,行号能帮我们快速定位。参数-n会为每一行编号,包括空行;而-b只给非空行编号,忽略空白行。这两个参数在对比文件差异、引用具体行时非常实用。

例如查看脚本时只想看有效代码行数,用-b更清爽。但如果需要严格对应文件物理行,就得用-n。示例如下:

# 所有行显示编号
cat -n config.conf

# 仅非空行编号
cat -b script.sh

2. 压缩连续空行 -s

很多配置文件或程序输出会包含成片空白行,影响阅读。参数-s可以把多个相邻空行压缩成单独一行,让版面更紧凑。它不改变文本内容,只是减少视觉干扰。

这个参数常和-n组合使用,既压缩空行又显示编号。对于从Windows传到Linux的文档,常因换行符问题出现怪异空白,此时-s能稍微缓解阅读压力,但根本解决还需dos2unix工具。

# 压缩空行并编号
cat -sn log.txt

3. 显示特殊字符 -A

当文件出现莫名格式错乱,可能是隐藏的制表符或回车符作怪。参数-A等价于-vET,会把行尾的换行显示为$,制表符显示为^I,其他非打印字符也可见。这能帮我们揪出脚本里混用的空格与Tab。

比如Shell脚本若用空格代替Tab写在了该用Tab的地方,执行会报错。用cat -A一眼就能看出。示例如下:

# 显示所有特殊符号
cat -A deploy.sh

三、cat的文件合并与重定向

cat真正的威力在于连接。把多个文件依次传给cat,它会按参数顺序拼接输出。配合Shell的重定向符号>>>,就能生成新文件或追加内容。这在日志归档、配置整合时极高效。

但要注意,使用>会覆盖目标文件,操作前务必确认。若想安全合并,可先预览再写入。以下示例把三个日志按时间顺序合并:

# 合并三个文件到 all.log
cat jan.log feb.log mar.log > all.log

# 追加而不是覆盖
cat extra.log >> all.log

四、常见误区与替代方案

1. 用cat打开大文件

有人习惯直接cat几十兆的日志,结果终端卡死。因为cat不加区分地全量读取,对大文件极不友好。正确做法是用less或more分页,或者用tail看末尾。

如果非要用cat处理大文件,也应配合管道过滤,例如只取含错误的行:

# 过滤大文件中的ERROR行
cat huge.log | grep ERROR

2. 误把cat当编辑器

cat本身不能编辑,网上有些用cat配合重定向“修改”文件的方法,实则先覆盖再写,容易清空原内容。小规模改动请用sed或vim,避免数据丢失。

若仅想在文件头加一行说明,可用临时文件中转,而非冒险用cat直接重写:

# 安全地在文件前加注释
echo "# generated by script" | cat - old.conf > new.conf

五、在脚本中的实际运用

在自动化任务里,cat常用来把模板文件内容读入变量,或把多段配置拼成最终文件。结合Here Document还能在脚本内嵌文本块,提升可维护性。

下面例子展示用cat读取模板并替换占位符,生成最终Nginx配置。这种方式比一行行echo更直观:

#!/bin/bash
DOMAIN="ipipp.com"
cat > site.conf <<EOF
server {
    listen 80;
    server_name $DOMAIN;
    root /var/www/$DOMAIN;
}
EOF

通过上述用法可以看出,cat虽简单,却贯穿了Linux日常操作的方方面面。理清参数差异、规避误用场景,才能让它成为顺手而非添乱的工具。

linuxcat命令文件查看修改时间:2026-08-05 05:18:27

免责声明:​ 已尽一切努力确保本网站所含信息的准确性。网站内容多为原创整理与精心编撰,观点力求客观中立。本站旨在免费分享,内容仅供个人学习、研究或参考使用。若引用了第三方作品,版权归原作者所有。如内容涉及您的权益,请联系我们处理。
内容垂直聚焦
专注技术核心技术栏目,确保每篇文章深度聚焦于实用技能。从代码技巧到架构设计,为用户提供无干扰的纯技术知识沉淀,精准满足专业提升需求。
知识结构清晰
覆盖从开发到部署的全链路。AI、前端、编程、数据库、服务器、建站、系统层层递进,构建清晰学习路径,帮助用户系统化掌握开发与运维所需的核心技术。
深度技术解析
拒绝泛泛而谈,深入技术细节与实践难点。无论是数据库优化还是服务器配置,均结合真实场景与代码示例进行剖析,致力于提供可直接应用于工作的解决方案。
专业领域覆盖
精准对应开发生命周期。从前端界面到后端编程,从数据库操作到服务器运维,形成完整闭环,一站式满足全栈工程师和运维人员的技术需求。
即学即用高效
内容强调实操性,步骤清晰、代码完整。用户可根据教程直接复现和应用于自身项目,显著缩短从学习到实践的距离,快速解决开发中的具体问题。
持续更新保障
专注既定技术方向进行长期、稳定的内容输出。确保各栏目技术文章持续更新迭代,紧跟主流技术发展趋势,为用户提供经久不衰的学习价值。