如何在 Linux 中使用 cat 命令(附示例)

在Linux操作系统中,操作方式与Windows和macOS存在显著差异。 用户可以同时访问图形用户界面(GUI)和命令行界面(CLI)。 虽然图形界面似乎是执行任务的简单选择,但命令行界面也具有其独特的优势。 熟练掌握重要的Linux终端命令可以显著提高工作效率。 其中,cat命令是Linux中最常用的命令之一。 它作为coreutils软件包的一部分预安装在所有Linux发行版中,并且在所有发行版中的语法都保持一致。 在本文中,我们将通过一系列实际示例来详细介绍如何使用cat命令。

Linux中的cat命令详解 (2023)

在深入探讨具体示例之前,我们先来了解一下cat命令的定义、语法和选项。 之后,我们将学习如何有效地使用cat命令来查看单个或多个文件,合并文件,对文件内容进行排序以及其他操作。

Linux中cat命令的作用

cat命令代表连接(concatenate),它是每个Linux用户工具箱中不可或缺的重要命令之一。 最初,它是为UNIX操作系统开发的,后来被Linux和macOS系统采用。 此命令的主要功能在于文件管理,它允许用户创建新文件、查看文件内容、覆盖文件、合并两个或多个文件等。

如何使用cat命令:语法和选项

在研究实际操作示例之前,我们先来了解一下Linux中cat命令的语法。 语法结构简单明了。 用户需要根据不同的任务需求,使用合适的选项和文件名。

cat [选项] [文件名]

cat命令常用的选项包括:

选项 描述
-n 显示所有行的行号
-T 显示文件中的制表符
-e 显示文件中每一行的结尾
-s 将文件结尾的多个连续空行合并为一个
-b 仅显示非空行的行号

Linux终端中cat命令的实例

查看单个文件

cat命令最常见的用途是查看单个文件的内容。 你可以使用以下语法实现这个目标:

cat [选项] [文件名]

查看多个文件

通过在cat命令后依次添加文件名,并以空格分隔(无需逗号),你也可以使用cat命令同时查看多个文件的内容。 下面是其语法:

cat [选项] [file_1] [file_2] [file_3]

显示行号

默认情况下,cat命令不会显示输出的文件内容的行号。 要显示行号,需要在cat命令后添加 -n 标志:

cat -n [文件名]

使用cat命令创建一个新文件

通常,我们会使用touch命令来创建新文件,或者使用文本编辑器来新建和编辑文件。 显然,cat命令并不能完全替代这些工具,但你可以使用cat命令进行一些简单的文件编辑操作。 通过cat命令,你可以创建一个新文件并向其中添加一些内容。 创建新文件的语法如下:

cat > [新文件名]

在这里,>被称为覆盖操作符,用于将新内容覆盖到指定的文件。 当文件是空的时候,你写入的内容就会被直接写入到该文件中。 完成写入新文件后,按“回车键”(ENTER),然后使用“CTRL + d”组合键退出提示符。

在上述示例中,你可以看到,我们使用cat命令创建了一个名为“test1.txt”的新文件,并且第二个cat命令的输出显示了该文件的内容。

将两个文件合并为一个新文件

你甚至可以使用cat命令将两个文件合并成一个文件,使用以下语法。 我们将使用追加操作符 >> 将第一个文件的内容添加到第二个文件的末尾。

cat [选项] [文件_1] >> [文件_2]

在上面的示例中,cat命令将文件“test1.txt”的内容追加到“test2.txt”的末尾。 你可以通过第二个cat命令的输出来验证新内容,我们在这里查看了第二个文件。

将一个文件的内容复制到另一个文件

你也可以使用cat命令将一个文件的内容复制到另一个文件。 这里,> 操作符被用来将`file_1`的内容覆盖到 `file_2`。

cat [文件_1] > [文件_2]

在以上示例中,我们使用了覆盖操作符,将文件 “test1.txt” 的内容覆盖到了文件 “test2.txt” 中。

显示不可见字符

默认情况下,cat命令在打印文件内容时不会标记行尾字符。 要显示行尾,可以将-E标志与命令一起使用:

cat -E [文件名]

这会在每行的末尾标记一个“$”符号。 要打印制表符而不是四个空格,请使用 -T 标志,语法如下:

cat -T [文件名]

这会将所有制表符打印为“^I”。 要打印所有其他不可见字符,请将-v标志与cat命令一起使用,如下所示:

cat -v [文件名]

正如你在上面的示例中看到的,所有行尾都用“$”符号标记,制表符用“^I”字符标记。

将多个空行合并为一个

有时文件中可能会有一些你不想显示的空行。 要将多个连续的空行合并为一个空行,请将-s标志与原始的cat命令一起使用。

cat -s [文件名]

以相反顺序查看文件内容 (tac命令)

通常情况下,cat命令按照从上到下的顺序显示文件内容。 然而,在处理实时数据流或大型日志文件时,最新的数据通常会被追加到文件的末尾,因此滚动浏览大量的文本会很困难。 在这种情况下,你可以使用tac命令,它是cat命令的一个替代版本,可以以相反的顺序打印文件内容。 使用tac命令的语法如下:

tac [文件名]

对文件的输出内容进行排序

在Linux系统中,你可以通过shell重定向器将两个或多个命令组合使用。 它们可以将一个命令的输出重定向到下一个命令的输入。 你可以使用覆盖操作符(>)和追加操作符(>>),它们也被称为I/O shell重定向器。

还有一种类型的shell重定向器,称为shell管道,用于同时执行两个或多个命令。 这意味着一个命令的输出将被作为输入重定向到下一个命令。由于命令执行遵循一个明确的结构,这种结构或概念被称为管道。 管道操作符(|)为这些命令创建管道,以按照确定的顺序执行。

到目前为止,你一定很清楚cat命令打印文件内容的顺序与它们存储在文件中的顺序相同。 顾名思义,sort命令会按升序或降序对输出进行排序。 通过管道操作符将cat命令的输出传递给sort命令,你可以获得按照所需排序顺序排列的最终输出。 这听起来可能令人困惑和复杂,但是下面的示例将会解释清楚。 使用管道操作符将这两个命令组合使用的语法如下:

cat [选项] [文件名] | sort

在上面的示例中,cat命令并没有直接打印文件 “test3.txt” 的内容,而是将内容传递给了排序命令,然后排序命令根据字母顺序对其进行排序,最后打印排序后的输出。

使用cat命令查看大文件

有时,即使是配置很高的系统在显示大文件的内容时也会出现卡顿。 对于如此大的文件,你应该使用less命令和cat命令,并配合使用管道操作符。 由于less命令一次只加载文件的一部分,因此不会消耗大量资源。 你可以使用箭头键向上或向下滚动以访问文件的其他部分。 将less命令与cat命令一起使用的语法如下:

cat [大文件名] | less

在上面的示例中,当你按照上述语法执行命令时,文件内容不会在同一终端提示符下打印出来,而是在新的终端视图中显示文件内容,如第二张图片所示。 你可以在此处使用箭头键滚动浏览文本。 要到达文本的底部,请使用“GG”命令,要到达文本的顶部,请使用“gg”命令。 要退出新的终端视图,请按“q”键。

cat命令的实际应用

cat命令和tac命令的结合使用,极大地简化了习惯使用Linux终端的用户的文件管理工作。 通过选项和额外的操作符,cat命令能够极大地帮助简化你的工作流程。 在本文中,我们分享了一些关于如何在Linux系统上使用cat命令创建、追加和查看文件的实际示例。 如果你想了解更多关于cat命令的信息,请访问其官方手册页。 如果你在使用此命令时遇到任何问题,请在下面的评论区告诉我们。