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,这是另一个基于过滤器的程序,可在终端中生成彩虹色文本。