在linux中,cat命令可以用于查看文件的內(nèi)容,而不需要在任何文本編輯器中打開它,也可以把幾個(gè)文件內(nèi)容附加到另一個(gè)文件中,即連接合并文件。查看文件內(nèi)容時(shí),如果在包含文件的同一目錄中,則語法為“cat [option] [filename]…”;如果在其他目錄下,則語法為“cat [option] [path/to/file]…”。
程序員必備接口測試調(diào)試工具:立即使用
Apipost = Postman + Swagger + Mock + Jmeter
Api設(shè)計(jì)、調(diào)試、文檔、自動(dòng)化測試工具
后端、前端、測試,同時(shí)在線協(xié)作,內(nèi)容實(shí)時(shí)同步
本教程操作環(huán)境:Ubuntu 18.04系統(tǒng)、Dell G3電腦。
linux中cat命令介紹
Cat命令(concatenate的縮寫)是Linux操作系統(tǒng)中使用最廣泛的命令行實(shí)用工具之一。它是一個(gè)標(biāo)準(zhǔn)的Linux實(shí)用程序,用于查看文件的內(nèi)容,而不需要在任何文本編輯器中打開它。cat命令的另一個(gè)主要用法是將多個(gè)文件串聯(lián)到一個(gè)文件中。在Linux中還有其他幾種cat命令的用法,我們將在本文中討論這些用法,以便您了解它在不同場景中的工作方式。
以下是cat命令的一些基本功能:
- 顯示文件內(nèi)容
- 創(chuàng)建新文件
- 合并文件
- 復(fù)制文件內(nèi)容
注意,我們使用Ubuntu 18.04 LTS操作系統(tǒng)來演示本文中提到的命令和過程。
基本語法
使用Cat命令的基本語法是:
cat [option] [filename]...
如果您在包含文件的同一目錄中,請(qǐng)使用上面的命令。否則,如果你在其他目錄下,請(qǐng)按如下說明該文件的路徑:
cat [option] [path/to/file]...
如果想要連接合并文件
cat filename1 filename2 > filename3
cat 命令常用選項(xiàng)及含義
選項(xiàng) | 含義 |
---|---|
-A | 相當(dāng)于 -vET 選項(xiàng)的整合,用于列出所有隱藏符號(hào); |
-E | 列出每行結(jié)尾的回車符 $; |
-n | 對(duì)輸出的所有行進(jìn)行編號(hào); |
-b | 同 -n 不同,此選項(xiàng)表示只對(duì)非空行進(jìn)行編號(hào)。 |
-T | 把 Tab 鍵 ^I 顯示出來; |
-V | 列出特殊字符; |
-s | 當(dāng)遇到有連續(xù) 2 行以上的空白行時(shí),就替換為 1 行的空白行。 |
注意,cat 命令用于查看文件內(nèi)容時(shí),不論文件內(nèi)容有多少,都會(huì)一次性顯示。如果文件非常大,那么文件開頭的內(nèi)容就看不到了。不過 Linux 可以使用PgUp+上箭頭
組合鍵向上翻頁,但是這種翻頁是有極限的,如果文件足夠長,那么還是無法看全文件的內(nèi)容。
cat命令的使用示例
顯示文件內(nèi)容
cat命令最常見和最基本的用法是顯示文件內(nèi)容。 為了將文件內(nèi)容顯示到終端,只需鍵入cat和文件名,如下所示:
[linuxmi@linux:~/linuxmi迷]$ cat linuxmi.txt
一個(gè)示例是顯示 /etc/hostname文件的內(nèi)容。 在這種情況下,命令將是:
[linuxmi@linux:~/linuxmi迷]$ cat /etc/hostname
顯示所有文件的內(nèi)容
要顯示當(dāng)前目錄中的所有文件,請(qǐng)?jiān)赾at命令中使用通配符,如下所示:
[linuxmi@linux:~/linuxmi迷]$ cat *
要僅顯示目錄中文本文件的內(nèi)容,請(qǐng)輸入以下命令:
[linuxmi@linux:~/linuxmi迷]$ cat *.txt
一次顯示多個(gè)文件
您還可以使用cat命令在終端中組合并顯示多個(gè)文件的內(nèi)容。 要同時(shí)顯示多個(gè)文件,請(qǐng)使用以下語法:
[linuxmi@linux:~/linuxmi迷]$ cat /etc/hostname /etc/resolv.conf linuxmi1.txt
一個(gè)示例是在終端中查看所有三個(gè)文件/etc/hostname、/etc/resolv.conf、linuxmi1的輸出,如以下屏幕快照所示:
將一個(gè)文件的輸出復(fù)制到另一個(gè)文件
它還可以用于將一個(gè)文件的輸出復(fù)制到另一文件。如果目標(biāo)文件不存在,它將首先創(chuàng)建它,否則將覆蓋目標(biāo)文件。
要將源文件的輸出復(fù)制到另一個(gè)文件,請(qǐng)使用以下語法:
$ Cat [源文件] > [目標(biāo)文件]
例如,將一個(gè)linuxmi1.txt的輸出復(fù)制到另一個(gè)名為linuxmi2.txt的文件中,如下所示:
$ cat linuxmi1.txt > linuxmi2.txt
此命令將首先創(chuàng)建文件linuxmi2.txt,然后將linuxmi1.txt的內(nèi)容復(fù)制到該文件。
將文件輸出附加到另一個(gè)文件
除了在上面的示例中覆蓋目標(biāo)文件的輸出外,還可以使cat命令附加輸出。以下語法可用于此目的:
$ cat [源文件] >> [目標(biāo)文件]
如果目標(biāo)文件尚不存在,它將創(chuàng)建目標(biāo)文件,否則將附加輸出。
將多個(gè)文件復(fù)制到另一個(gè)文本文件/拼接文件
cat命令的另一個(gè)主要用途是可以將多個(gè)文件拼接為一個(gè)文件。可以使用以下語法來拼接linuxmi1,linuxmi2和linuxmi3并將它們保存到另一個(gè)名為linuxmi4.txt的文件中。
$ cat [linuxmi1] [linuxmi2] [linuxmi3] > [linuxmi4]
例如,我們要將/etc/hostname、/etc/resolv.conf和/etc/hosts文件的輸出連接到另一個(gè)名為linuxmi.txt的文件。以下命令可用于此目的:
$ cat /etc/hostname /etc/resolv.conf /etc/hosts > linuxmi.txt
在文件中顯示行號(hào)
要顯示文件輸出的行號(hào),只需使用–n標(biāo)志即可:
$ cat -n linuxmi.py
表的文件,則可以使用–n標(biāo)志顯示帶有數(shù)字的項(xiàng)目。請(qǐng)記住,空行也已編號(hào),如以下屏幕截圖所示:
如果您不想給空行編號(hào),請(qǐng)使用–b標(biāo)志,如下所示:
$ cat –b linuxmi.py
建立檔案
您還可以使用cat命令創(chuàng)建文件。以下語法可用于此目的:
$ cat > linuxmi
輸入上述命令后,輸入要存儲(chǔ)在文件中的文本。完成后,使用Ctrl + D保存并退出。之后,可以在終端中執(zhí)行以下命令來查看新創(chuàng)建文件的內(nèi)容:
$ cat linuxmi
如下圖:
排序輸出
您還可以將sort與cat命令結(jié)合使用,以按字母順序?qū)敵鲞M(jìn)行排序,如下所示:
$ cat linuxmi | sort
同樣,在有多個(gè)文件的情況下,可以按字母順序?qū)⑤敵鲞B接到一個(gè)文件中:
$ cat [linuxmi1] [linuxmi2] | sort > [linuxmi3]
刪除連續(xù)的空行
有時(shí)文件包含您不想打印的連續(xù)的空行。 Cat命令允許合并那些連續(xù)的空行,并將它們顯示為一個(gè)空行。
使用以下命令語法刪除重復(fù)的空行:
$ cat –s [linuxmi]
例如,我們有以下文件,其中包含連續(xù)的空行。
通過使用-s標(biāo)志,您將看到區(qū)別。
顯示制表符
$ cat –t [linuxmi]
使用-t選項(xiàng)可以顯示的查看內(nèi)容中哪些地方使用了tab制表符,有制表符的地方會(huì)顯示為^I
打印文件輸出
cat命令的另一種流行用法是在文檔的打印內(nèi)容中。例如,要將文件的輸出打印到名為/dev/lp的打印設(shè)備上,將使用以下語法:
$ cat [linuxmi] > /dev/lp