查看文件内容

前面小节介绍了文件和目录相关的操作,本小节介绍如何使用 filecatmoretail 命令在不同场景下去查看文件相关信息和内容。

1. file 查看文件类型

file 命令可以用来查看文件类型,还能查看文件的编码格式,下面列举一些 file 命令的参数:

file 命令参数名称 功能与作用描述
-b 表示 --brief,显示查看结果时,不显示文件名
-c 表示 --checking-printout,显示指令执行过程
-f 表示 --files-from FILE,列出文件中文件名的文件类型
-F 表示 --separator STRING,使用指定符号替换输出文件名后的默认的
-i 输出 mime 类型的字符串
-L 表示 --dereference,查看对应软链接对应文件的文件类型
-z 表示 --uncompress,尝试查看压缩文件信息

1.1 查看文件类型

这里还是以 /home 目录里面的文件为例,命令如下:

cd /home

ls

file a.txt

file new_dir

cd study/

file alltxt.tar

file alltxt.tar.gz

file alltxt.tar.bz2

file alltxt.tar.Z

执行结果如下图:

图片描述

Tips:如图所示,使用 file 命令可以看到文件的编码、文件类型。

1.2 查看文件时不显示文件名称

file 命令后面跟上一个 -b 参数重复一次上面的流程,命令如下:

cd /home

ls

file -b a.txt

file -b new_dir

cd study/

file -b alltxt.tar

file -b alltxt.tar.gz

file -b alltxt.tar.bz2

file -b alltxt.tar.Z

执行结果如下图:

图片描述

Tips:如图所示使用 -b 参数查看的文件信息时没有打印出文件名。

1.3 查看压缩包信息

进入到 /home/study,使用 -z 参数去查看压缩包信息,命令如下:

cd /home/study

ls

file -z alltxt.tar.gz

file -z alltxt.tar.bz2

file -z alltxt.tar.Z

执行结果如下图:

图片描述

Tips:如图所示,展示了压缩包相关的信息。

2. cat 查看文件内容

cat 命令可以用来查看文件内容,下面列举一些 cat 命令的参数:

cat 命令参数名称 功能与作用描述
-A 表示 --show-all,展示所有内容
-b 表示 --number-nonblank,对查看的内容的非空行,对其行数编号
-n 表示 --number,对查看的内容行数编号输出
-v 表示 --show-nonprinting,使用^ 和M- 引用,除了LFD和 TAB 之外
-E 表示 --show-ends,在每行的最后展示KaTeX parse error: Expected 'EOF', got '符' at position 1: 符̲号;就是无论你输入了什么,屏幕…符号结尾
-e -vE
-s 表示 --squeeze-blank,抑制空行输入,就是如果你有多行连续的空行,他会压缩成一行输出
-T 表示 --show-tabs,将跳格字符显示为^I
-t -VT

2.1 查看文件所有内容

这里以之前小节配置过的 /etc/sysconfig/network-scripts/ifcfg-ens160 文件为例,使用如下命令查看其中的内容:

cd /etc/sysconfig/network-scripts

ls

cat ifcfg-ens160

执行结果如下图:

图片描述

Tips:在输入路径或者文件名称的时候可以使用 Tab 键来补全。

2.2 对查看内容编排

命令如下:

cat -b ifcfg-ens160

cat -n ifcfg-ens160

执行结果如下图:

图片描述

Tips-b 表示排除掉空行的内容,然后对其输出编号,会后会补上一行空行展示出来。

3. more 命令查看文件内容

more 命令也用来查看文件内容,下面列举一些 more 命令的参数:

more 命令参数名称 功能与作用描述
+n 从第 n 行开始显示
-n 定义屏幕大小为 n 行
+/pattern 在每个档案显示前搜寻该字串 pattern,然后从该字串前两行之后开始显示
-c 从顶部清屏,然后显示
-d 提示 Press space to continue,'q' to quit(按空格键继续,按q键退出),而禁用响铃功能
-l 忽略 Ctrl+l(换页) 字符
-p 通过清除窗口而不是滚屏来对文件进行换页,与 -c 选项相似
-s 把连续的多个空行显示为一行
-u 把文件内容中的下画线去掉

这里以查看 /etc/mtools.conf 文件内容为例,命令如下:

cd /etc

more mtools.conf

执行结果如下图:

图片描述

Tips : 如图中所示,可以按空格键继续浏览剩下内容,也可以按 q 键结束浏览。

4. tail 命令查看文件内容

tail 命令也用来查看文件内容,下面列举一些 tail 命令的参数:

tail 命令参数名称 功能与作用描述
-f 表示 --follow[={name|descriptor}],该参数用于监听文件新增内容。
-c 表示 --bytes=[+]NUM,从 num 字节位置读取指定文件
-n 表示 --lines=[+]NUM,从 num 行位置读取指定文件。
-F -f
-q 表示 --quiet,从不输出给出文件名的首部
-s 表示 --sleep-interval=N,与-f合用,表示在每次反复的间隔休眠S秒

4.1 查看文件最后几行内容

/etc/mtools.conf 文件为例,如要查看最后 6 行内容,命令如下:

cd /etc

tail -5 mtools.conf

执行结果如下图:

图片描述

Tips:使用如图所示的命令可以查看 mtools.conf 文件的最后 5 行内容。

4.2 查看指定行数的内容

/etc/mtools.conf 文件为例,如要从第 45 行开始显示内容,命令如下:

tail -n +45 mtools.conf

执行结果如下图:

图片描述

Tips:使用如图所示的命令可以查看 mtools.conf 文件的第 45 行开始的内容。

4.3 监听日志文件

在实际工作中,经常会使用 -f 去监听日志新增内容,达到开发者调试的目的,这里为了演示方便,需要打开之前安装过的 MobaXterm,按照之前第 7 小节的步骤,打开两个登录窗口,示例如下:

图片描述

首先进入 /home 目录,新建一个日志文件 access.log,命令如下:

cd /home

ls

touch access.log

执行结果如下图:

图片描述

接下来使用 tail 命令跟上 -f 参数对 access.log 日志文件监听,命令如下:

tail -f access.log

执行结果如下图:

图片描述

接下来在新打开的窗口中,进入 /home 目录,向 access.log 文件写入内容:

cd /home

echo "这是第一条测试内容(time=2020-05-05 18:00)" >> access.log

echo "这是第二条测试内容(time=2020-05-05 19:00)" >> access.log

echo "这是第三条测试内容(time=2020-05-05 20:00)" >> access.log

执行结果如下图:

图片描述

Tips:这种监听日志的方法经常用在后端程序开发调试工作中。

此时模拟日志数据输入完成,接着打开原来的监听窗口,如下图所示:

图片描述

5.小结

本小节介绍了如何使用 filecatmoretail 去查看文件内容,读者根据不同场景来选择合适的命令查看文件内容,其中 tail -f 命令经常用于后端开发日志监听,来调试代码的作用,也能帮助快速捕捉到程序异常,提升修复问题的效率。