如何在 Linux 上正确使用 cat 命令

系统 Linux
下面介绍如何在 Linux 上使用 cat 命令,以及何时不使用它。

cat 可能是您将在 Linux 上首先学习的命令之一。以下是在 Linux 上使用 cat 的正确方法(和错误方法)。

您将在 Linux 上使用的最基本的命令之一是 cat。乍一看似乎很神秘,但实际上使用起来很简单。

下面介绍如何在 Linux 上使用 cat 命令,以及何时不使用它。

什么是 cat?

cat 是一个非常古老的实用程序,可以追溯到 Unix 的原始实现。这个名字可能看起来很奇怪,但它是“连接 concatenate”的缩写。这是将一堆东西粘在一起的花哨术语。在这种情况下,“东西”是指文件。cat 是将一堆文本文件粘在一起的实用程序。大多数人使用它将文件打印到屏幕或另一个文件中。

GNU 实现是大多数 Linux 发行版上默认安装的 coreutils 软件包的一部分,但 BusyBox 上也有一个在小型或实时发行版上很常见的版本。

将 cat 与标准 I/O 一起使用

cat 对标准输入和输出进行操作。这意味着它将接受来自键盘或使用 I/O 重定向的其他程序的文本输入,并且您可以使用管道将其输出与另一个程序一起使用:

cat | some_program

请记住,许多其他 Linux 命令也接受标准 I/O,因此您可能不需要在管道中实际使用 cat。稍后再谈。

它还接受来自命令行的文件作为参数。您可以使用以下命令将整个文件打印到终端:

cat file.txt

您还可以使用 cat 打印多个文件:

cat file1 file2

这是 cat 的“连接”部分。

自行调用, cat 将等待您输入文本并按Enter,然后回显您在终端输入的任何内容,直到您按Ctrl + D。您还可以使用重定向运算符将文本重定向到文件中:

cat > some_file

cat 的低效率使用

鉴于 cat 是一个如此基本的实用程序,很容易将它与管道一起使用。Randal Schwartz 是以 Perl 编程方面的杰出贡献而闻名的人,他创建了Useless use of cat (UUOC)“奖”(如Era Eriksson 的主页上所见),并且偶尔会在 Usenet 上分发它们。

如果脚本中使用 cat 命令的代码可以用”重定向”代替,你就可以称其为UUOC。因为重定向的效率要比运行一个外部命令要高。比如:

cat file | tr -d 'xyz'

象cat file | somecommand这种用法,现被称为UUOC,是一种效率低的用法。

UUOC 的主要条件是使用 cat 将输出通过管道传输到已经将标准输入或文件作为参数的命令。由于有这么多 Unix 和 Linux 命令这样做,使用 cat 管道标准输出或单个文件是浪费时间。您应该查看手册页以了解您想要使用的任何命令,并确保它接受标准输入,这样您就不会“赢得”这个奖项。

如果您要查看长文件,最好使用像 Most或文本编辑器这样的阅读工具。

cat:一个基本但不可或缺的 Linux 工具

cat 可能是一个基本命令,但就像许多基本的 Linux 工具一样,它可以方便地打印文本文件并将输出发送到其他程序。如果您想在终端中添加更多颜色,您可能需要考虑 lolcat,这是另一个基于过滤器的程序,可在终端中生成彩虹色文本。

责任编辑:华轩 来源: Linux迷
相关推荐

2020-08-24 12:37:54

Linuxxargs命令

2018-04-25 10:46:05

Linux命令行日历

2018-08-06 09:30:00

LinuxPbcopyPbpaste

2019-11-26 16:58:51

Linuxpkgsrc

2019-01-07 09:50:06

Linuxtarball命令

2023-01-17 07:40:59

LinuxAppImage应用程序

2023-07-23 19:26:18

Linuxcat 命令

2010-06-24 11:16:17

Linux Cat命令详解

2014-06-05 15:06:29

2021-10-02 10:10:47

LinuxBusyBox命令

2014-06-09 10:23:20

2022-08-12 08:38:52

FFmpegLinux命令

2022-10-25 09:07:28

Linuxxargs命令

2016-01-04 15:17:50

Linux命令行硬件

2020-05-28 08:45:21

Arch LinuxLinuxKDE Plasma

2022-11-18 10:16:26

Linuxwc 命令

2018-06-26 09:15:24

Linux命令history

2018-05-16 10:32:06

Linux命令find

2010-01-15 19:37:36

Linux命令

2010-01-05 16:49:34

点赞
收藏

51CTO技术栈公众号