CentOS 文本查看命令
一、文件内容快速预览:cat 命令
(一)基础功能与核心特性
cat 命令使用时,可以先使用 cat --help 查看帮助文档。
cat命令的主要职责是将文件的内容 “搬运” 到终端屏幕上展示出来。它能迅速将文件里的每一个字符,从第一行到最后一行,依次呈现在你眼前,就像把文件内容直接平铺展开一样。
假设你有一个记录日常工作安排的文本文件,使用cat命令,就能立刻看到今天要完成的任务、会议时间等内容,一目了然。它特别适合快速查看一些内容较少的小文件,比如简单的配置文件,几秒钟就能掌握其中的关键信息,高效又便捷。
(二)常用参数与典型场景
(三)实战示例
1.查看文件内容并显示行号:当你需要调试一个程序的配置文件,想快速定位某一行内容时,-n参数就派上用场了。比如有个config.txt配置文件,执行cat -n config.txt,命令执行后,每一行内容前都会清晰地显示出行号,方便你精准找到需要修改或查看的那一行。
# 示例命令
cat -n config.txt2.仅对非空行显示行号:对于一些包含大量空行的文件,只想关注有实际内容的行,使用-b参数最合适不过。比如有个记录数据的文件,中间有很多空行作为分隔,运行cat -b data.txt,这时,只有那些包含有效数据的非空行才会被标上行号,让你更专注于关键信息,避免被大量空行干扰。
# 示例命令
cat -b data.txt3.压缩连续空行为单个空行:在处理日志文件时,经常会遇到连续的空行,影响查看效率。利用-s参数就能轻松解决这个问题。假设你有一个app.log日志文件,执行cat -s app.log,文件中原本连续出现的多个空行就会被合并成一个,整个日志文件看起来更加简洁规整,便于你快速定位重要的日志信息。
# 示例命令
cat -s app.log4.显示所有隐藏字符:当你怀疑文件存在一些特殊格式问题,比如奇怪的换行或者 Tab 缩进错误时,-A参数能帮你一探究竟。比如有个格式不太正常的report.txt文件,运行cat -A report.txt,文件中的换行符会显示为$,Tab 键显示为^I ,这样你就能清楚看到文件中隐藏的格式细节,从而准确找出并解决格式问题。
# 示例命令
cat -A report.txt二、大文件分页利器:less 命令
(一)核心优势与模式特性
当面对几百 MB 甚至更大的日志文件时,cat命令会一次性将整个文件内容加载到终端,不仅可能导致终端卡顿,而且查找特定信息犹如大海捞针。而less命令就像是为大文件量身定制的 “分页阅读器”,它的出现完美解决了这些问题。
less命令支持分页浏览,每次只加载一屏的内容到内存中,大大降低了内存占用,即使是处理 GB 级别的大文件,也能轻松应对,不会让系统因为内存不足而 “罢工”。它还提供了强大的关键词搜索功能,无论是正向搜索还是反向搜索,都能快速定位到你需要的信息,就像在一本厚厚的词典中快速查找某个单词一样方便。在操作上,less命令允许用户通过上下箭头、PageUp、PageDown 等按键自由地在文件中前后滚动,查看不同位置的内容 ,这种灵活性是cat命令所不具备的。
(二)常用参数与操作快捷键
(三)实战示例
1.查看日志文件并显示行号:执行less -N access.log命令,打开网站的访问日志文件,并显示行号。这样在后续查找问题时,能够更准确地定位到相关信息所在的位置。
# 示例命令
less -N access.log2.查看日志文件不显示行号:我们线上日志文件有时可能会达到1G或者更大,如果有时使用less命令查看最近的日志,比如 less info.log,然后使用 G 跳转到日志结尾,这时我们可以看到命令行会输出Calculating line numbers...,表示正在计算行号,我们可以执行less -n info.log命令,这样不仅不会显示行号,也不会去计算行号。
# 示例命令
less -n access.log3.在日志中搜索关键词:如果你怀疑是 “out of memory”(内存不足)错误导致的问题,那么可以在less命令中输入/out of memory,按下回车键后,less会自动在日志文件中向下搜索包含该关键词的行,并将其高亮显示。找到第一个匹配项后,通过按n键可以快速跳转到下一个匹配项,方便查看所有相关的日志记录。
# 在less命令中执行搜索
/out of memory4.实时监控日志更新:当你想要实时查看日志文件的更新情况,了解网站的最新运行状态时,可以使用less +F access.log命令。这个命令会使less进入实时监控模式,自动滚到底部显示最新添加到文件中的内容,就像使用tail -f命令一样。如果需要停止实时监控,按Ctrl + C组合键即可,之后还可以通过按F键重新开启实时监控。
# 实时监控日志更新
less +F access.log5.仅显示匹配行(过滤功能):当你想要只查看过滤出的文件内容,不匹配的行被隐藏,类似grep的效果,可以使用 &pattern进行过滤。若需要取消过滤,恢复显示所有行,输入& 后直接按回车即可(即&空模式)。
# 查看日志文件
less access.log
# 执行过滤,只显示Exception行
&Exception三、文本搜索王者:grep 命令
(一)正则驱动的精准匹配
在 CentOS 系统的文本处理领域,grep命令基于强大的正则表达式引擎,能在茫茫的文本海洋中精准地找到你需要的信息。无论是单个文件还是整个目录下的多个文件,它都能迅速展开搜索,不放过任何一个可能的线索。在代码审查中,它可以帮助开发人员快速定位到特定函数、变量的使用位置,提高代码维护效率;在日志分析时,通过grep命令能快速筛选出关键的错误信息、用户行为记录等,为系统优化和故障排查提供有力支持。
(二)核心参数与正则应用
(三)实战示例
1.搜索日志文件中异常信息:执行grep -i exception access.log命令,搜索日志文件中所有包含异常的信息。也可以使用管道结合sed 10q命令只检索出前10行。
# 检索access.log中包含exception的前10行日志
grep -i exception access.log | sed 10q2.过滤无关日志信息:当我们使用grep检索出日志后,但是有部分数据想过滤掉,可以使用-v参数参数反向匹配。
# 检索出包含exception的日志,但是不显示NullPointException的日志
grep -i exception access.log | grep -v NullPointException3.在日志目录中递归搜索:当我们有多个日志文件,可以使用递归搜索命令。
# 在logs目录中递归检索所有包含Exception的日志信息
grep -r Exception ./logs/
# 如果目录只有一层,也可以使用通配符,检索所有.log结尾的文件
grep Exception *.log4.统计异常数据数量:当我们需要根据日志信息来做一些统计,比如统计某个日志信息打印了多少次,就可以使用-c参数进行统计。
# 统计日志信息中,一共有多少提交短信任务异常的日志数量
grep -c "提交短信任务异常" info.log
# 也可以使用管道操作,使用wc -l命令来统计
grep "提交短信任务异常" info.log | wc -l四、文件头尾快速定位:head & tail 命令
(一)功能互补的前后截取
head和tail命令在文件内容查看方面,各自发挥着独特的作用,一个专注于文件开头,一个聚焦于文件末尾,两者相辅相成,为我们提供了便捷的文件局部内容查看方式。
head命令的主要职责是快速展示文件的开头部分,默认情况下,它会将文件的前 10 行内容清晰地呈现在你眼前。在查看系统日志文件时,日志的开头部分通常记录着关键的时间戳、启动信息等,使用head命令,就能快速获取这些重要的起始信息,帮助你了解日志产生的背景和初始状态,就像翻开一本书,先看前言和目录,对整体内容有个初步的了解。
tail命令则恰恰相反,它主要用于查看文件的末尾部分,默认展示文件的最后 10 行。在实时监控系统日志时,最新产生的日志信息会不断追加到文件末尾,通过tail命令,特别是搭配-f参数使用时,你可以实时追踪文件的新增内容,仿佛拥有了一双 “实时监控眼”,能够第一时间捕捉到系统运行过程中的最新动态和异常情况,及时发现并解决问题。
(二)常用参数对比
(三)实战示例
1.使用 head 查看文件前几行:假设你有一个记录员工信息的employees.csv文件,文件内容较多,你只想快速查看文件的表头信息,了解数据的字段结构。这时,就可以使用head命令的-n参数,执行head -n 1 employees.csv ,命令执行后,终端会显示文件的第一行内容,也就是表头信息,让你清楚知道每个字段所代表的含义,方便后续对数据的处理和分析。
# 示例命令
head -n 1 employees.csv2.结合管道操作:head命令更多时候会结合管道操作,对输出内容进行截取。
# 检索error.log中的系统异常,然后只输出前10行
grep 系统异常 error.log | head -n 103.使用 tail 查看文件后几行:在一个电商网站的运营过程中,orders.log日志文件记录着每一笔订单的详细信息,包括订单时间、用户 ID、商品信息等。当你想要快速了解最近的订单情况时,使用tail命令的-n参数就能轻松实现。执行tail -n 5 orders.log,命令会显示日志文件的最后 5 行内容,也就是最近的 5 笔订单记录,让你及时掌握最新的订单动态。
# 示例命令
tail -n 5 orders.log4.使用 tail 实时跟踪文件新增内容:在一个 Web 应用的开发和运维过程中,app.log日志文件记录着应用的运行状态和各种事件信息。为了及时发现应用运行过程中的异常情况,你可以使用tail -f app.log命令实时监控日志文件的更新。当应用有新的日志信息产生时,终端会实时显示这些新增内容,一旦出现错误信息或异常事件,你就能第一时间察觉并进行处理,确保应用的稳定运行。
# 示例命令
tail -f app.log五、结构化文本处理:awk 命令
(一)字段级处理的编程能力
在 CentOS 系统的文本处理工具中,awk命令的字段级处理能力和强大的编程特性,在处理结构化文本数据时表现得淋漓尽致。它能够对文本数据进行细致入微的剖析和处理,将复杂的数据处理任务变得轻松简单 。
(二)核心语法与典型参数
(三)实战示例
假设你有一个记录网站访问日志的access.log文件,日志格式如下:
192.168.1.1 - - [10/Jan/2025:14:00:01] "GET index.html HTTP/1.1" 200 233
192.168.1.2 - - [10/Jan/2025:14:05:01] "POST login HTTP/1.1" 200 512
192.168.1.3 - - [10/Jan/2025:14:10:01] "GET about.html HTTP/1.1" 404 1281.提取 IP 地址:使用awk命令提取日志中的 IP 地址,执行awk '{print $1}' access.log ,命令执行后,会输出每一行日志的第一个字段,也就是 IP 地址。
# 示例命令
awk '{print $1}' access.log2.统计状态码出现次数:想要统计不同 HTTP 状态码出现的次数,可以执行awk '{codes[$9]++} END {for (code in codes) print code, codes[code]}' access.log 。这个命令利用awk的数组特性,将状态码作为数组的键,出现的次数作为值进行统计,最后在END块中输出统计结果,让你清楚了解每种状态码的出现频率,为网站的性能分析和故障排查提供有力的数据支持。
# 示例命令
awk '{codes[$9]++} END {for (code in codes) print code, codes[code]}' access.log六、文本高效编辑:vim 命令
(一)基础功能与核心特性
vim 命令的核心是启动多模式文本编辑器,支持从基础文本修改到代码编写的全场景编辑。它通过「普通模式、插入模式、末行模式」的切换,实现复制、删除、查找替换等高效操作,无需鼠标即可完成所有编辑动作。
它特别适合修改 CentOS 系统配置文件(如 /etc/profile)、编写脚本或代码,既能通过快捷键提升编辑速度,又能通过参数自定义启动方式,兼顾便捷性和功能性。使用前可通过 vim --help 查看完整参数说明。
(二)常用参数与典型场景
模式切换(核心基础)
光标移动(普通模式)
编辑操作(普通模式)
查找与替换(末行模式)