如何在 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,這是另一個基于過濾器的程序,可在終端中生成彩虹色文本。