在Linux系统中,查看文件内容是日常操作中最频繁的任务之一,无论是配置文件、日志文件还是文本数据,都需要通过合适的命令来快速定位和阅读信息,Linux提供了多种查看文件内容的命令,每种命令都有其独特的功能和适用场景,掌握这些命令能显著提升工作效率,本文将详细介绍这些命令的使用方法、核心选项及实际应用场景。

基础文件查看命令:cat
cat(concatenate)是最常用的文件查看命令,其核心功能是连续显示文件内容,适用于小文件的快速查看。
基本语法
cat [选项] 文件名
常用选项
-n:显示行号,从1开始递增;-A:显示所有字符,包括空白字符(如空格显示为,换行符显示为);-b:仅对非空行显示行号(与-n互斥);-s:连续的空行合并为单个空行;<文件1> <文件2>:同时显示多个文件内容,相当于拼接文件。
示例
# 查看并显示行号的文本文件 cat -n example.txt # 显示所有字符(包括隐藏空白字符) cat -A example.txt # 同时查看两个文件内容 cat file1.txt file2.txt
注意事项
cat会一次性加载整个文件内容到内存,因此不适用于查看大文件(如日志文件、数据库文件等),否则可能导致终端卡顿或内存占用过高。
分页查看命令:more与less 超过一屏时,cat快速刷屏,难以阅读,此时需要分页查看命令,more和less是典型代表。
more:基础分页查看
more以分页形式显示文件内容,支持向下翻页,但无法向上回退。
基本语法
more [选项] 文件名
常用操作
- 空格键/
f:向下翻一页; Enter:向下翻一行;q:退出查看;- 在文件中搜索指定关键词(搜索结果会高亮显示,按
n跳转至下一个匹配项)。
示例
# 分页查看大文件,并显示行号 more -n /var/log/syslog
less:高级分页查看
less是more的增强版,支持上下自由滚动、搜索、跳转等功能,是Linux中最推荐使用的分页查看工具。
基本语法
less [选项] 文件名
常用操作
- 上下方向键/
j/k:逐行上下滚动; PageUp/PageDown:上下翻页;- 向下搜索关键词,按
n下一个、N上一个; - 向上搜索关键词;
g:跳转至文件开头;G:跳转至文件末尾;q:退出查看。
示例
# 用less查看配置文件,支持搜索和回退 less /etc/nginx/nginx.conf # 查看二进制文件(以十六进制形式) less -m /bin/ls
对比more与less
| 特性 | more | less |
|---|---|---|
| 滚动方向 | 仅向下 | 上下自由滚动 |
| 搜索功能 | 支持(仅向下) | 支持(双向搜索) |
| 跳转功能 | 有限(仅翻页) | 支持跳转至开头/末尾 |
| 退出方式 | q |
q |
| 适用场景 | 简单分页查看 | 复杂文件阅读、搜索 |
查看文件部分内容:head与tail
有时仅需查看文件的开头或结尾部分(如日志文件的最新错误信息),此时head和tail命令更高效。
head:查看文件开头
默认显示文件前10行,可通过选项指定行数或字节数。

基本语法
head [选项] 文件名
常用选项
-n 行数:显示指定行数(如-n 5显示前5行);-c 字节数:显示指定字节数(如-c 100显示前100个字节)。
示例
# 查看系统日志文件的前20行 head -n 20 /var/log/messages # 查看文本文件的前50个字节 head -c 50 example.txt
tail:查看文件结尾
默认显示文件末尾10行,常用于实时跟踪日志更新。
基本语法
tail [选项] 文件名
常用选项
-n 行数:显示指定行数(如-n 5显示末尾5行);-c 字节数:显示指定字节数(如-c 100显示末尾100个字节);-f:实时跟踪文件变化(文件新增内容会自动显示,常用于监控日志);-F:与-f类似,但会自动跟踪被重命名的文件(如日志轮转后的新文件)。
示例
# 实时查看Web服务器的访问日志 tail -f /var/log/nginx/access.log # 查看文件末尾的3行 tail -n 3 example.txt
其他实用查看命令
tac:倒序显示文件
与cat相反,tac从文件末尾开始逐行倒序显示内容,适用于需要从后向前阅读的场景(如分析日志的先后顺序)。
示例
# 倒序显示文本文件内容 tac example.txt
nl:显示带行号的内容
nl(number lines)功能与cat -n类似,但支持自定义行号格式(如行号对齐、添加前缀等)。
基本语法
nl [选项] 文件名
常用选项
-b 模式:行号显示模式,a表示所有行,t表示非空行(默认);-w 宽度:行号宽度(如-w 3表示行号占3位,不足补空格)。
示例
# 显示行号,非空行行号右对齐,宽度为2 nl -b t -w 2 example.txt
od/hexdump:查看二进制文件
文本查看命令无法正确显示二进制文件(如可执行文件、图片等),需使用od(octal dump)或hexdump以十六进制/八进制格式输出。
od示例
# 以十六进制格式查看二进制文件(默认字节分组) od -tx1 /bin/ls # 以八进制格式显示,并显示ASCII字符 od -tc /bin/ls
hexdump示例
# 以16进制+ASCII混合格式显示 hexdump -C /bin/ls # 每行显示16字节,十六进制格式 hexdump -n 32 -e '16/1 "%02x " "n"' /bin/ls
命令选择与场景总结
不同命令适用于不同场景,以下是快速选择指南:
| 需求场景 | 推荐命令 | 原因说明 |
|---|---|---|
| 查看小文本文件 | cat | 快速连续显示,无需分页 |
| 查看大文件(需阅读) | less | 支持滚动、搜索,操作灵活 |
| 仅查看文件开头 | head | 精准定位前N行,效率高 |
| 仅查看文件结尾(含实时) | tail -f/F | 实时跟踪更新,适合日志监控 |
| 倒序查看文件 | tac | 从后向前输出,分析时序问题 |
| 查看二进制文件 | od/hexdump | 十六进制/八进制格式,避免乱码 |
相关问答FAQs
问题1:如何查看大文件的最后100行,并实时跟踪新增内容?
解答:使用tail命令的-n和-f选项组合,查看/var/log/syslog文件的末尾100行并实时更新:

tail -n 100 -f /var/log/syslog
-n 100指定显示末尾100行,-f使终端持续监听文件,新增内容会自动显示,若需跟踪被重命名的文件(如日志轮转),可将-f替换为-F。
问题2:如何查看文件中包含特定关键词的所有行,并显示行号?
解答:结合grep命令的-n选项(显示行号)和搜索功能,在example.txt中搜索包含“error”的行并显示行号:
grep -n "error" example.txt
若需忽略大小写,可添加-i选项(grep -in "error" example.txt);若需搜索多个关键词,用连接(如grep -n "error|warning" example.txt)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/27970.html