前言
在嵌入式领域不管是新人还是经验丰富的人员linux内核,每天都会和文件打交道嵌入式linux驱动程序设计从入门到精通,每天都会查看文件,我接下来汇总一下在Linux系统中都可以通过哪些方式查看文件。并且我会将相关指令的基础用法和一些高级用法都分享给大家哈。
1、一次性查看整个文件
我们首先介绍一次性查看整个文件的指令,这个适用于查看小文件的场景。
1.1 cat命令
这个cat命令是我们最常见最熟悉的命令了,也是最常用的指令了,大家平常是不是只用 cat + 文件名 的形式去查看文件例如:cat sata.c

cat命令常用的示例截图
只会这个 cat + 文件名 还远远不够,接下来我在分享几个 cat 命令的高级用法哈
1.1.1 cat -n 文件名(显示行号)
这个指令执行完能将文件中对应的行号进行显示出来,只写出命令没有什么意思,我还附带上自己的实操截图以及和原始的 cat sata.c的对比图,这样大家会更清晰。
cat -n sata.c

cat -n sata.c
cat -A sata.c(显示文件所有字符)
cat -A 是 Linux/Unix 系统里 cat 命令的一个显示所有字符选项,核心作用是:把文件里看不见的特殊字符(换行、空格、制表符等)显示成可见符号
-A 等价于 -vET 三个选项的组合:
简单说:-A = 显示文件里所有隐藏的格式符号。
文件描述的可能不够直观,直接展示相关指令的对比图如下:

指令对比图
1.2 tac 倒序查看(从最后一行往上)
在实际工作中 Linux一些运行日志 都是最新内容在最后 直接翻到底太累,tac 直接最新日志放最上面,排查报错、看最新报错首选。
或者将 有序文本反转行顺序 比如时间序列、序号列表倒排。
或者 有些导出文件行顺序颠倒,直接tac转正
tac 文件名

1.3 nl 带行号打印
这个时候你可能会有疑问了,前面不是已经介绍了 cat -n + 文件名就能输出行号了吗,这里为啥还要介绍另外一个命令呢。其实nl指令和 cat -n 指令还是有区别的,这次我先不解释有啥区别,直接给大家一个对比图,大家先观察一下哈linux系统错误日志,看看是否能找出差异。
nl 文件名

nl和cat -n指令的对比图
cat -n 不管有没有内容,每行都打行号 。 空白行、纯空行全部编号
nl 纯空行不显示行号。只有有字符的行才编号
一句话总结:
cat -n:所有行全都编号,空行也编。
nl:默认只给非空行编号,纯空行不编。
2、分页查看(大文件首选)
我们已经掌握了查看小文件的场景了linux系统错误日志,那么我们遇到大文件的时候,如果用cat命令查看的话,整个屏幕放不下,只能在屏幕上展示文件的最后的信息,这个时候,我们就需要更换查看命令了。
2.1 more 分页浏览
more 文件名
# 空格下一页,回车下一行,q退出


more + 文件里之后的效果
或者执行 more -d 文件名 这个指令会在 屏幕底部会显示:--更多--(下一行:回车,下一屏:空格,退出:q,帮助:h)
2.1.1 more + 数字 (按照指定的行数进行切页显示)
在执行 more 查看大文件的时候 执行 空格的话,是直接整个屏幕直接切换到下一页了,举个例子,你的显示器能显示 10行,more 查看的时候 在屏幕上展示文件的 1到10行,当你按照 空格键的时候 屏幕直接显示 11到20行了。这个时候你可能会感觉有些跳跃,这个时候你是不是在思考 是否能 在我按下空格的时候 每 5行 的进度进行展示呢。答案是可以的哈,接下来的 more + 数字就是介绍这个的哈
more -5 README

对应的操作指令
2.2 less 最强分页查看(推荐)
前面介绍的more只是开胃菜,less才是完美指令
more:只能往下翻,功能弱
less:上下随便翻,功能最全,日常优先用 less
less 文件名
# 上下箭头翻页,/搜索,q退出

less指令
2.2.1 less -N 文件名

less指令显示文件行号
less的汇总
1. 翻页
2. 快速跳转(超级好用)
3.搜索(工作最常用)
向下搜索
/你要搜的内容
向上搜索
?你要搜的内容
n 跳到下一个匹配
N 跳到上一个匹配
3.只看头部 / 尾部
大文件有时候,我们只需要查看文件的前10行即可或者 尾部的10即可
3.1 head 查看开头
head 文件名 # 默认前10行
head -n 20 文件名 # 前20行

head 文件名 # 默认前10行

head -n 20 文件名 # 前20行
如果我们想让打开的文件带上对应的行号
这个时候就可以执行
head -n 20 文件名 | cat -n
例如
head -20 README | cat -n

展示行号
3.2 tail 查看结尾
tail 文件名 # 默认后10行
tail -n 20 文件名 # 后20行
tail -f 文件名 # 实时监控日志(最常用)
tail -F 文件名 # 跟踪文件改名续读

如果我们想让打开的文件带上对应的行号
这个时候就可以执行
tail -n 20 文件名 | cat -n
例如
tail -20 README | cat -n

展示行号
4、筛选查看(过滤内容)

如何查询文件中的关键字呢,可以执行下面这些指令,今天就不详细介绍了,先让大家有一个概念知道这个grep指令是进行搜索查询的,等后续会专门介绍grep命令的用法
grep 关键词 文件名
grep -n 关键词 文件名 # 显示匹配行号
grep -v 关键词 文件名 # 排除含关键词行
5、查看文件属性 / 类型 / 编码5.1 file 查看文件类型
file 文件名

查看可执行程序

查看软连接

查看压缩包

查看普通的文件
5.2 od 二进制 / 十六进制查看
od 文件名 # 八进制
od -x 文件名 # 十六进制

5.2 hexdump 十六进制查看文件
hexdump 文件名
6、统计类(也算查看内容信息)6.1 wc 统计行数、单词、字节
wc -l 文件名 # 统计行数
wc -w 文件名 # 单词数
wc -c 文件名 # 字符数

wc -l

wc -w

wc -c
最后
在Linux系统中大家还知道有哪些命令可以查看文件呢,或者大家一般都喜欢用什么命令进行查看文件呢,在评论区聊一聊,向小伙伴们展示一下 高超的 查看文件的技巧哈。
