Linux 常用命令 | head 详解
Linux 命令行工具提供了足够丰富的命令用于管理服务器上的文件和目录。其中最常用的命令之一是 head
,它允许我们只查看文件的前几行内容,这在查看超大文件(文件大小为几个 GB 以上)时尤其有用。在这篇博文中,我们将详细讨论该命令的使用说明、注意事项、技巧窍门等,以充分利用该命令。
使用说明
head
命令用于显示一个文件的前几行。要使用该命令,只需输入 head
和你想查看的文件名即可。例如,要查看一个名为 example.log 的文件的前10行,你可以输入以下命令:
1 | head -n 10 example.log |
其中,-n
选项用于指定要查看的行数。如果不指定数字,它将默认为 10 行。还可以使用 -
号来表示除了文件最后多少行外输出所有行内容。例如,要查看文件的所有行,但不包括最后的 11 行,可以输入以下命令:
1 | head -n -11 example.log |
注意事项
在使用 head
命令时,有两个地方需要注意:
首先,注意不要使用 >
操作符意外覆盖原来的文件。例如,执行以下命令会导致 example.log 文件被其前 10 行的内容覆盖,相当于 example.log 文件只保留了前 10 行内容,其他所有内容被抹去。
1 | head -n 10 example.log > example.log |
其次,要注意 head
不会以任何方式修改文件。如果要编辑该文件,则需要使用文本编辑器或其他命令行工具。
技巧窍门
以下这些提示和技巧,可帮助我们最大限度地使用 head
命令:
- 查看多个文件时,使用
-q
选项隐藏文件名; - 查看多个文件时,使用
-v
选项显示文件名; - 使用
-c
选项查看文件的前几个字节而不是前几行; - 使用
-f
选项可以在添加新行时实时查看文件的前几行。
示例
在使用 head
命令之前,我们先创建两个演示的日志文件。本示例是在 /mnt/e/linux-commands/head 目录下,创建两个文件 a.log 和 b.log,文件行数都为 15 行,内容如下:
a.log
1 | a_1 |
b.log
1 | b_1 |
我们可以使用 Linux 命令 echo
和 for 循环来生成这两个日志文件,如生成 a.log 文件的命令如下所示:
1 | for v in {1..15} |
接下来,开始执行 head
命令来查看不同参数下的执行效果。
1、直接使用 head
命令,不带其他选项,则默认输出文件前 10 行:
1 | ➜ head a.log |
2、输出文件 a.log 前 5 行:
1 | ➜ head -n 5 a.log |
3、将文件 a.log 前三行内容输出到 c.log 文件:
1 | ➜ head -n 3 a.log >> c.log |
查看文件 c.log 内容:
1 | ➜ head cat c.log |
4、使用 -v
选项,输出文件 a.log 前三行,并输出文件名称:
1 | ➜ head -v -n 3 a.log |
-v
选项在处理多个文件的时候可以区分内容是由哪个文件输出的,例如,分别输出文件 a.log 和 b.log 前 3 行:
1 | ➜ head -v -n 3 a.log b.log |
5、如果在处理多个文件时不想输出文件名称,则可以使用 -q
选项,例如:
1 | ➜ head -q -n 3 a.log b.log |
6、如果想输出文件除了最后 n 行外的其他所有行,这时 -n
选项的参数可以传负数。如以下示例输出文件 a.log
除了最后 11 行之外的其他所有行:
1 | ➜ head -n -11 a.log |
小结
总之,head
命令是快速查看文件前几行的强大工具。为最大限度使用此命令,简化在 Linux 命令行上的文件管理任务,本文详细讨论该命令的使用说明、注意事项、技巧窍门等,同时还通过列举一些使用示例来加深对该命令理解。
(END)