查看文件内容
前面小节介绍了文件和目录相关的操作,本小节介绍如何使用 file、cat、more、tail 命令在不同场景下去查看文件相关信息和内容。
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 文件为例,如要查看最后 5 行内容,命令如下:
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.小结
本小节介绍了如何使用 file、cat、more、tail 去查看文件内容,读者根据不同场景来选择合适的命令查看文件内容,其中 tail -f 命令经常用于后端开发日志监听,来调试代码的作用,也能帮助快速捕捉到程序异常,提升修复问题的效率。