cat
Linux 中的命令是什么
cat 命令代表连接, 它是每个 Linux 用户工具箱中最重要的命令之一。它最初是为 UNIX 操作系统制作的,但后来被 Linux 和 macOS 改编。该命令的主要目的是文件管理,它使用户能够创建新文件、查看文件内容、覆盖文件、合并两个或多个文件等。
如何使用 cat 命令:语法和选项
在深入研究一些实际示例之前,让我们先看看cat
Linux 中该命令的语法。语法简单明了。这是语法,您需要根据要执行的任务使用一个选项和文件名。
cat <options> <file_name(s)>
与该命令一起使用的一些常见选项cat
是:
选项 | 描述 |
---|---|
-n |
显示所有行的行号 |
-T |
显示文件中的每个制表符 |
-e |
显示文件中每一行的结尾 |
-s |
将文件末尾的连续空行合并为一个 |
-b |
仅显示非空行 |
Linux 终端中的 cat 命令示例
查看单个文件
该命令最常见的用法cat
是查看单个文件。您可以使用以下语法使用cat
命令查看单个文件:
cat <option> <file_name>
查看多个文件
通过一个接一个地添加文件名,以空格分隔,不带任何逗号,您还可以使用该cat
命令查看多个文件。检查以下语法:
cat <option> <file_1>
<file_2>
<file_3>
显示行号
默认情况下,该cat
命令不显示它输出的文件内容的行号。要显示行号,请-n
在 Linux 中使用带有 cat 命令的标志:
cat -n <file_name>
使用 cat 命令创建一个新文件
一般我们使用touch
命令创建新文件或者使用文本编辑器创建和编辑文件。显然,该cat
命令不能替代这些工具,但您可以使用该cat
命令对文件进行一些快速编辑。使用该cat
命令,您可以创建一个新文件并向其中添加一些内容。使用命令创建新文件的语法cat
是:
cat > <new_file_name>
在这里,“ >
”被称为覆盖运算符,用于用新内容覆盖任何文件。由于文件完全是空的,所以无论你写什么,都会写入文件。完成写入新文件后,按“ ENTER”,然后使用“CTRL + d"退出提示。
在上面的示例中,您可以看到使用 cat 命令创建了一个新文件“test1.txt”,文件内容由第二个命令的输出显示cat
。
将两个文件合并为一个新文件
使用下面的语法,您甚至可以使用cat
命令将两个文件合并为一个文件。我们将使用附加运算符(“ >>
”)使用以下命令将第一个文件的内容添加到第二个文件的末尾。
cat <option> <file_1> >> <file_2>
在上面的示例中,使用命令将文件“test1.txt”的内容添加到“test2.txt”的末尾cat
。可以使用第二个命令的输出来验证新内容cat
,我们在其中查看第二个文件。
将一个文件的内容复制到另一个文件
您甚至可以使用命令将一个文件的内容复制到另一个文件cat
,如下所述。这里,“>”用于覆盖file_1
to的内容file_2
。
cat <file_1> > <file_2>
在上面的示例中,我们使用覆盖运算符将文件“test1.txt”的内容覆盖为文件“test2.txt”的内容。
显示不可见字符
默认情况下,cat 命令在打印文件内容时不标记行结束符。要显示行尾,请使用-E
标志和命令:
cat -E <file_name>
这将用符号标记每一行的结尾"$"
。要打印制表符而不是四个空格,请-T
按照以下语法使用标志:
cat -T <file_name>
这会将所有制表符打印为“ ^I
”。要打印所有其他不可见字符,请将-v
标志与 cat 命令一起使用,如以下语法所示:
cat -v <file_name>
正如您在上面的示例中看到的,所有行结尾都标有“$”符号,制表符标有“^I”字符。
将多个空行合并为一个
有时文件中可能有一些您不想打印的空行。要将所有空行合并为一个,请将-s
标志与原始 cat 命令一起使用。
cat -s <file_name>
以相反顺序查看文件内容(tac 命令)
通常,该cat
命令以自上而下的格式显示文件内容。但是,在存储一些实时流数据或查看一些大型日志文件时,最新数据会附加在最后,并且很难滚动浏览巨大的文本块。在这种情况下,您可以使用tac
Linux 中的命令,该cat
命令的替代版本,它以相反的顺序打印文件内容。使用该tac
命令的语法是:
tac <file_name>
对文件的输出内容进行排序
在 Linux 中,您可以在 shell 重定向器的帮助下组合两个或多个命令。它们将一个命令的输出重定向到下一个命令的输入。您可以使用覆盖运算符 (>) 和追加运算符 (>>),它们被称为 I/O shell 重定向器。
还有第二种类型的 shell 重定向器,称为 shell 管道,用于同时运行两个或多个命令。这意味着一个命令的输出将作为输入重定向到下一个命令。由于命令执行遵循明确的结构,因此这种结构或概念被称为管道。管道运算符 ( | )为这些命令创建一个管道以按确定的顺序执行。
到目前为止,您一定很清楚该cat
命令打印文件内容的顺序与它们存储在文件中的顺序相同。顾名思义,该sort
命令按升序或降序对输出进行分类。cat
但是通过管道运算符将命令的输出发送到sort
命令,您可以获得按所需排序顺序排列的最终输出。这听起来可能令人困惑和复杂,但下面的示例将清除所有内容。使用管道运算符使用这两个命令的语法是:
cat <options> <file_name> | sort
在上面的示例中,cat 命令没有打印文件“test3.txt”的内容,而是将内容发送给排序命令,然后排序命令根据字母顺序对其进行排序,最后打印排序后的输出。
使用 cat 命令查看大文件
有时,即使是规格很高的系统在显示大文件的内容时也会卡顿。对于这么大的文件,你应该使用less
command 和cat
command 连同管道操作符。由于该less
命令一次只加载文件的一部分,因此不会消耗大量资源。您可以使用箭头键向上或向下滚动以访问文件的其他部分。less
将命令与命令一起使用的语法cat
是:
cat <big_file_name> | less
在上面的示例中,当您按照上述语法执行命令时,文件不会在同一终端提示符下打印出来,而是在新的终端视图中显示文件内容,如第二张图片所示。您可以在此处使用箭头键滚动浏览文本。要到达文本的底部,请使用“GG”,要到达文本的顶部,请使用“gg”。要退出新的终端视图,请按“q”。