简介
欢迎参加这个 Linux 文件操作实践实验!如果你刚接触 Linux,不用担心,我们会逐步指导你完成每个步骤。在本实验中,你将学习如何查看文件内容、查看文件的特定部分,以及比较文件。这些都是使用和理解 Linux 文件系统所需的基础技能。
输出文件内容
首先,在桌面上打开终端,或者切换到实验环境中的终端标签页。

打开终端后,你应该能看到命令提示符,通常以 $ 符号结尾。你将在这里输入命令。
现在使用 cat 命令显示文件内容:
- 在终端中输入以下命令,然后按 Enter 键:
cat /tmp/hello
这里,/tmp/hello 是要查看的文件路径。/tmp 是系统中的一个目录,hello 是该目录中的文件名。
- 按 Enter 键后,你应该能看到文件内容:
Hi,
I am Labby!
这就是 /tmp/hello 文件中的全部内容。cat 命令会将这些内容显示在终端中。
显示带行号的文件内容
现在再次使用 cat 命令,不过这次要为输出内容添加行号。
- 在终端中输入以下命令,然后按 Enter 键:
cat -n /tmp/hello
这里的 -n 称为选项或标志。它会让 cat 为所有输出行添加行号。
- 现在你应该能看到带行号的文件内容:
1 Hi,
2 I am Labby!
处理较长的文件并需要引用特定行时,这个功能非常有用。
输出文件的开头几行
接下来使用 head 命令。顾名思义,head 用于查看文件的开头部分,也就是文件的「头部」。
- 在终端中输入以下命令,然后按 Enter 键:
head -n1 /tmp/hello
这里的 -n1 选项告诉 head 只显示第一行。你可以将 1 改为其他数字,以显示相应数量的行。
- 你应该能看到以下输出:
Hi,
这只是文件的第一行。如果不使用 -n1 选项,head 默认会显示文件的前 10 行。
查看文件开头的几个字节
现在再次使用 head 命令,不过这次查看文件开头指定数量的字节。
- 在终端中输入以下命令,然后按 Enter 键:
head -c1 /tmp/hello
-c1 选项告诉 head 只显示文件的第一个字节(字符)。与 -n 类似,你可以将 1 改为其他数字,以查看相应数量的字节。
- 你应该能看到以下输出:
H
这只是文件的第一个字符。在文本文件中,每个字符通常占用一个字节。
输出文件的末尾几行
现在学习 tail 命令。正如你可能猜到的,tail 与 head 相反,用于显示文件的末尾部分。
- 在终端中输入以下命令,然后按 Enter 键:
tail -n1 /tmp/hello
与 head 一样,-n1 选项告诉 tail 只显示一行,这里显示的是文件的最后一行。
- 你应该能看到以下输出:
I am Labby!
这就是文件的最后一行。如果不使用 -n1 选项,tail 默认会显示文件的最后 10 行。
查看文件末尾的几个字节
与使用 head 的方法类似,你也可以使用 tail 显示文件末尾指定数量的字节。
- 首先尝试查看最后一个字节。在终端中输入以下命令,然后按 Enter 键:
tail -c1 /tmp/hello
你可能看不到任何输出。这是因为最后一个字符很可能是换行符,而换行符不可见。
- 接下来尝试查看最后两个字节。输入以下命令,然后按 Enter 键:
tail -c2 /tmp/hello
- 现在你应该能看到:
!
-c2 选项告诉 tail 显示文件最后 2 个字节(字符)。在本例中,显示的是感叹号,它是文件中最后一个可见字符。
比较文件
现在学习如何使用 diff 命令比较两个文件,并查看它们之间的差异。
- 首先确认当前位于正确的目录中。在终端中输入以下命令,然后按 Enter 键:
cd ~/project
这会将当前目录切换到主目录中的「project」目录。~ 符号是主目录的快捷表示。
- 现在比较两个文件。输入以下命令,然后按 Enter 键:
diff file1 file2
该命令会让 diff 比较 file1 和 file2 的内容。
- 你应该能看到类似以下的输出:
1c1
< this is file1
---
> this is file2
下面解释这段输出的含义。diff 命令会输出一组说明,描述需要进行哪些更改,才能让第一个文件与第二个文件完全一致。无论哪个文件先创建或修改,结果都不受影响;diff 只比较执行命令时两个文件的内容。
1c1:表示需要将第一个文件的第 1 行更改为与第二个文件的第 1 行一致。< this is file1:<符号表示这一行来自第一个文件(file1)。---:这是file1和file2内容之间的分隔符。> this is file2:>符号表示这一行来自第二个文件(file2)。
简单来说,diff 显示了两个文件第 1 行的内容不同。要让 file1 与 file2 一致,就需要将「this is file1」替换为「this is file2」。
比较目录
最后,使用 diff 命令比较整个目录。
- 在终端中输入以下命令,然后按 Enter 键:
diff -r ~/Desktop ~/Code
-r 选项告诉 diff 递归比较子目录。~/Desktop 和 ~/Code 是要比较的两个目录的路径。
- 你可能会看到类似以下的输出:
Only in /home/labex/Desktop: code.desktop
Only in /home/labex/Desktop: gedit.desktop
Only in /home/labex/Desktop: gvim.desktop
Only in /home/labex/Desktop: xfce4-terminal.desktop
该输出表示 Desktop 目录中有 4 个文件不在 Code 目录中。
总结
恭喜你完成了「文件内容与比较」实验。下面回顾你学到的内容:
- 使用
cat查看文件的全部内容。 - 学习使用
cat -n查看带行号的文件内容。 - 使用
head按行和按字节查看文件开头的内容。 - 使用
tail按行和按字节查看文件末尾的内容。 - 学习使用
diff比较文件内容。 - 最后,使用
diff -r比较整个目录。
这些命令是 Linux 中的基础工具。在继续使用 Linux 的过程中,你会经常使用它们来检查和比较文件及目录。
如果忘记了某个命令的用法,可以输入 man,后面跟命令名称(例如 man cat),查看该命令的手册页。手册页会详细介绍该命令支持的所有选项。
继续在不同的文件和目录上练习这些命令,逐渐熟悉它们。使用得越多,操作起来就会越自然!



