admin 管理员组文章数量: 1184232
查看文件内容是最基础也最频繁的需求之一——无论是查看配置文件、日志文件,还是代码文件,都需要依赖专门的文件查看命令。其中,cat、more和less是最常用的三个工具,它们各有特点:cat适合快速查看短文件,more支持分页浏览长文件,less则在more的基础上增加了更灵活的交互功能。对于刚接触Linux的同学来说,掌握这三个命令的用法与差异,不仅能提高文件查看效率,更是理解Linux“命令行交互逻辑”的关键。
cat 命令
cat命令的全称为“concatenate”(拼接),其核心功能是“连接多个文件并输出内容”,但在实际使用中,它最常用的场景是“快速查看短文件内容”——由于命令简单、执行速度快,当需要查看几十行以内的文件(如配置文件、脚本代码)时,cat是首选工具。
1. 基础用法:查看单个文件与拼接文件
cat命令的基本语法非常简洁:
cat [选项] 文件名
(1)查看单个文件内容
直接执行cat 文件名,即可在终端中输出文件的全部内容。例如查看当前目录下的test.txt文件:
cat test.txt
执行后,终端会一次性显示test.txt的所有内容——如果文件内容较少(如10行以内),内容会完整保留在终端界面中,方便阅读;但如果文件较长(如几百行),内容会“瞬间滚动”,仅能看到最后几行,其余内容会被覆盖,这也是cat的局限性之一。
(2)拼接多个文件并输出
cat的原始功能是“拼接文件”,可以同时指定多个文件名,将它们的内容按顺序拼接后输出。例如将file1.txt和file2.txt的内容拼接后显示:
cat file1.txt file2.txt
若希望将拼接结果保存到新文件中(而非直接输出到终端),可使用“重定向符号>”,例如:
cat file1.txt file2.txt > combined.txt
这会创建combined.txt文件(若已存在则覆盖),并将file1.txt和file2.txt的内容按顺序写入其中,实现文件内容的快速合并。
2. 核心选项:增强文件查看体验
cat命令的选项不多,但几个常用选项能显著提升使用体验,尤其在查看代码或配置文件时非常实用:
(1)-n:显示行号
添加-n选项(n即“number”),cat会在输出内容的每一行前添加“行号”,便于定位特定行的内容。例如查看nginx.conf配置文件并显示行号:
cat -n nginx.conf
执行后,终端会输出类似“1 worker_processes 1;”“2 events {”的内容,行号清晰可见——当需要修改配置文件中的某一行(如第20行的端口设置)时,用cat -n快速定位行号,再用编辑器打开修改,效率会大大提高。
(2)-A:显示隐藏字符
Linux文件中的“隐藏字符”(如制表符Tab、换行符\n、文件结束符EOF)通常无法直接查看,而-A选项(A即“all”)可以将这些字符显示出来:
- 制表符
Tab会显示为^I; - 换行符
\n会显示为$; - 文件结束符会显示为
^D。
例如查看包含制表符的script.sh文件:
cat -A script.sh
该选项在排查脚本格式错误时非常有用——比如Shell脚本中若将“空格缩进”误写为“制表符缩进”,可能导致脚本执行报错,用cat -A能快速发现这类隐藏问题。
(3)-s:压缩空行
如果文件中存在大量连续的空行(如手动编辑的文档),-s选项(s即“squeeze”)可以将“多个连续空行”压缩为“单个空行”,让输出内容更简洁。例如查看格式杂乱的notes.txt文件:
cat -s notes.txt
执行后,原本连续的5个空行会变成1个,避免空行过多导致内容分散。
more 命令
more命令的核心功能是“分页显示文件内容”,它解决了cat命令查看长文件时“内容滚动过快”的问题——通过“一屏一屏”显示文件内容,支持基本的翻页操作,让长文件查看更可控。more的使用逻辑接近“阅读纸质书”,只能“从前往后翻页”,无法自由跳转,适合对交互需求不高的场景。
1. 基础用法:启动分页与基本操作
more命令的基本语法为:
more [选项] 文件名
(1)启动分页查看
直接执行more 文件名,即可进入分页浏览模式。例如查看长日志文件access.log:
more access.log
执行后,终端会显示文件的第一屏内容,屏幕底部会出现一个“状态提示”(如--More--(10%)),表示“当前显示了文件的10%”,同时等待用户输入操作指令。
(2)核心交互操作
在more的分页模式下,用户需要通过快捷键进行操作,常用指令如下(无需输入回车,按下按键即生效):
- 空格键:翻到“下一页”(显示下一屏内容);
- Enter键:翻到“下一行”(逐行查看,适合精读内容);
- b键:翻到“上一页”(仅部分版本支持,早期
more版本可能不支持); - q键:退出
more模式(返回终端命令行,这是最常用的退出方式); - /字符串:在当前文件中“向下搜索指定字符串”(例如输入
/error,会跳转到下一个包含“error”的行); - =键:显示当前所在的“行号”(便于定位内容位置)。
例如在查看access.log时,按下空格键会显示下一屏日志,按下/404会搜索并跳转到包含“404”(页面不存在错误)的日志行,按下q则退出查看。
2. 常用选项:优化分页体验
more命令的选项较少,主要用于调整分页显示的初始状态:
(1)-num:指定每页显示的行数
默认情况下,more会根据终端窗口的高度自动调整每页显示的行数(如终端高度为24行,则每页显示24行)。若需要固定每页显示的行数,可使用-num选项(num为具体数字)。例如设置每页显示10行:
more -10 access.log
执行后,每屏仅显示10行内容,适合在小窗口或需要逐段精读的场景使用。
(2)+num:从指定行号开始显示
若不需要从文件开头查看,而是直接跳转到某一行开始分页,可使用+num选项。例如从access.log的第50行开始查看:
more +50 access.log
该选项适合已知目标内容大致位置的场景(如之前查看过文件,知道关键内容在第50行附近)。
(3)+/字符串:从包含指定字符串的行开始显示
与+num类似,+/字符串选项可以直接跳转到“第一个包含指定字符串的行”开始显示。例如查看nginx.conf时,直接从包含“listen”(端口配置)的行开始:
more +/listen nginx.conf
执行后,more会自动搜索“listen”并从该行开始显示第一屏内容,省去了手动搜索的步骤。
less 命令
less命令可以看作是more命令的“增强版”,它保留了more的分页功能,同时增加了大量灵活的交互操作——支持自由跳转、双向搜索、实时更新等功能,几乎能满足所有长文件查看的需求,是Linux运维和开发中最常用的文件查看工具之一。less的名称本身也带有“更灵活”的含义(“less is more”的反向调侃),其功能丰富度远超more。
1. 基础用法:启动与核心交互
less命令的基本语法与more一致:
less [选项] 文件名
(1)启动分页查看
直接执行less 文件名,即可进入less的分页模式。例如查看长代码文件app.py:
less app.py
执行后,终端会显示文件的第一屏内容,屏幕底部没有固定的状态提示(仅在操作时显示临时信息),交互操作比more更自由。
(2)核心交互操作(高频使用)
less的交互指令非常丰富,以下是最常用的操作(同样无需回车,按键即生效):
- 翻页操作:
- 空格键/
f键:下一页; b键:上一页;Ctrl+F:下一页(与空格键一致);Ctrl+B:上一页(与b键一致)。
- 空格键/
- 换行操作:
Enter键/j键:下一行;k键:上一行(这是less比more更灵活的地方,支持向上逐行滚动)。
- 跳转操作:
g键:跳转到文件“开头”;G键:跳转到文件“结尾”(查看日志文件时常用,直接看最新日志);num+G键:跳转到指定“行号”(如输入100G,跳转到第100行);Ctrl+G:显示当前“行号、总行数、百分比”(如“line 50 of 500 (10%)”)。
- 搜索操作:
/字符串:“向下搜索”指定字符串(如/def,搜索函数定义),按n键跳转到“下一个匹配项”,按N键跳转到“上一个匹配项”;?字符串:“向上搜索”指定字符串(如?error,从当前位置向上找错误信息),同样用n/N跳转;&字符串:仅显示“包含指定字符串的行”(过滤无关内容,如&404,仅显示404错误日志)。
- 退出与其他操作:
q键:退出less模式;v键:在less中直接调用默认编辑器(如vim)打开当前文件(修改文件时无需退出less,非常高效);F键:进入“实时监控模式”(类似tail -f,适合查看实时更新的日志文件,按Ctrl+C退出该模式)。
例如在查看access.log时,按下G键可直接跳转到最新日志行,输入/500可搜索服务器错误(500状态码)的日志,按下v键可直接用vim编辑日志文件,操作非常灵活。
2. 常用选项:定制查看模式
less的选项丰富,以下是几个实用选项,能进一步提升查看效率:
(1)-N:显示行号
与cat -n类似,-N选项(N即“number”)会在每一行内容前显示行号,便于定位特定行。例如:
less -N app.py
执行后,每行代码前都会显示行号,在查看代码文件时,方便讨论“第XX行的逻辑问题”。
(2)-i:忽略搜索时的大小写
默认情况下,less的搜索是“大小写敏感”的(如搜索“Error”无法匹配“error”),添加-i选项(i即“ignore case”)可忽略大小写。例如:
less -i access.log
此时输入/error,会同时匹配“Error”“ERROR”“error”等所有大小写组合,搜索更全面。
(3)-m:显示百分比进度
-m选项会在屏幕底部显示“当前查看进度的百分比”(类似more的状态提示),例如“50% of 1000 lines”,便于了解当前查看的位置。例如:
less -m access.log
适合需要大致掌握文件长度的场景。
版权声明:本文标题:每天一个 Linux 知识:查看文件内容的命令 cat、more 和 less 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1762891237a3198475.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论