前言
整理下 Linux 中常用的文件显示的命令。
实现
tail
命令说明:
tail
命令的功能是用于查看文件尾部内容,例如默认会在终端界面上显示出指定文件的末尾十行。 如果指定了多个文件,则会在显示的每个文件内容前面加上文件名来加以区分。
语法格式: tail [参数] 文件名
常用参数:
-f
:持续显示文件尾部最新内容。-n
:设置显示文件尾部的行数。
参考示例:
# 显示指定文件的后5行
tail -n 5 access.log
# 持续刷新显示指定文件尾部的后5行内容
tail -f -n 5 access.log
拓展:显示行号
# 在tail命令的输出上增加行号
tail -f -n 5 access.log | cat -n
cat
命令说明:
cat
命令来自英文词组 concatenate files and print
的缩写,其功能是用于在终端设备上显示文件内容。在 Linux 系统中有很多用于查看文件内容的命令,例如 more
、tail
、head
……等等,每个命令都有各自的特点。cat
命令适合查看内容较少、纯文本的文件。
语法格式: cat [参数] 文件名
常用参数:
-b
:显示行数(空行不编号)。-n
:显示行数(空行也编号)。
参考示例:
cat -n access.log
拓展:tac
命令说明:
tac
命令的功能是用于反向显示文件内容,即常见的查看文件内容命令 cat
的反写形式。也就是说,当我们使用 tac
命令查看文件内容时,最先显示的是最后一行,倒数第二行,倒数第三行,以此类推到最后显示原本文件的第一行内容。
语法格式: tac [参数] 文件名
more
命令说明:
more
命令的功能是用于分页显示文本文件内容。如果文本文件中的内容较多较长,使用 cat
命令读取后则很难看清,这时使用 more
命令进行分页查看就更加合适了,可以把文本内容一页一页地显示在终端界面上。
- 按一次空格:下一页内容。
- 按一次回车:下一行内容。
- 按一次b键:上一页。b键,back 的缩写。
语法格式: more [参数] 文件名
常用参数:
-c
:不滚屏,先显示内容再清除旧内容。-f
:计算行数时,以实际上的行数,而非自动换行过后的行数(有些单行字数太长的会被扩展为两行或两行以上)。-p
:先清除屏幕再显示文本文件的剩余内容。-s
:将多个空行压缩成一行显示。-数字
:设置每屏显示的最大行数。+数字
:设置从第N行开始显示内容。+/关键词
:从指定关键词开始前两行显示文件内容 。
参考示例:
more +5 -5 access.log
接下来我们为了更好地看出效果,我们使用 touch
命令创建一个测试文件,并使用 vim
写入一些内容。
more +/"这是一个" -5 text.txt
more +/"这是.*文件" -5 text.txt
grep
命令说明:
grep
来自英文词组 global search regular expression and print out the line
的缩写,意思是用于全面搜索的正则表达式,并将结果输出。我们通常会将 grep
命令与正则表达式搭配使用,参数作为搜索过程中的补充或对输出结果的筛选,命令模式十分灵活。
语法格式: grep [参数] 文件名
常用参数:
-i
:忽略大小写进行匹配。-n
:显示匹配行的行号。-r
:递归查找子目录中的文件。-B 2
:显示查找到的内容及前2行。-A 2
:显示查找到的内容及后2行。-C 2
:显示查找到的内容及前2行和后2行。-o
:仅显示匹配的内容。
参考示例:
# 查找包含指定内容的行
grep langjia text.txt
# 查找以指定内容开头的行
grep ^第 text.txt
# 显示包含查找的内容行及后两行
grep -A 2 '入' test.txt
# 显示包含查找的内容行及前两行
grep -B 2 '入' test.txt
# 显示包含查找的内容行及前两行和后两行
grep -C 2 '入' test.txt
# 仅显示需要匹配的字符
grep -o '相思' test.txt
# 可配合 管道符 | 和 wc -l 命令对匹配到的字符进行计数
grep -o '相思' test.txt | wc -l
拓展
以上命令前加一个 z
可用于在 .gz
压缩文件中查找内容。
例如:
# zcat用法
zcat test.txt.gz
# zgrep用法
zgrep 花落花开 test.txt.gz
总结
整理下 Linux 中常用的文件显示的命令。