1. 程式人生 > >linux命令:cat(常用方法詳解)

linux命令:cat(常用方法詳解)

linux命令cat 

使用許可權:所有使用者(即root帳號和所有普通帳號)
使用方法:cat [引數] 檔名

說明
cat 是一個文字檔案檢視和連線工具。檢視一個檔案的內容,用cat比較簡單,就是cat 後面直接接檔名,如cat linuxyw.txt
cat --help可以檢視cat幫助資訊,如各種引數使用方法,當然也可以用man cat來檢視,建議大家養成遇到命令不懂用法時,用--help或man來檢視幫助資訊,養成好習慣。filename為檔名,即系統中需要檢視的檔名字。
與這個命令相似功能的命令有:tac,less,tail,more

引數說明: 
-A:--show-all 等價於 -vET
-b:--number-nonblank 對非空輸出行編號,即在每行前顯示所在行號
-e:等價於 -vE
-E: --show-ends 在每行結束處顯示 $
-n:--number 對輸出的所有行編號,即在每行前顯示所在行號
-s:--squeeze-blank 不輸出多行空行
-t:與 -vT 等價
-T:--show-tabs 將跳 字元顯示為 ^I
-u :(被忽略)
-v: --show-nonprinting 使用 ^ 和 M- 引用,除了 LFD 和 TAB 之外
--help 顯示此幫助資訊並離開



使用範例:(在以下的例子中,linuxyw.txt是檔案的名字)
cat linuxyw.txt檢視檔名為linuxyw.txt的內容,如下圖所示預設為三行內容:


-A 帶上引數示範:(--show-all 等價於 -vET),不常用
cat -A linuxyw.txt


-b 對非空行輸出行號:
cat -b linuxyw.txt



-e 等價於 -vE(--show-ends 在每行結束處顯示 $),不常用
cat -e linuxyw.txt



-n 對所有行顯示行號
cat -n linuxyw.txt


-s:--squeeze-blank 不輸出多行空行,其實就是當多行空格在一起的時候,只輸出一行空格。不常用,其它引數不作演示,可自行操作下,有利於自己學習。


--help
(以後對於不懂的命令或軟體安裝時,都可以用--help來獲取幫助)


cat 建立檔案或連線檔案範例:
用cat建立檔案時,需要使用EOF結束(非必須用EOF,推薦初學者只管知道用EOF就行)
如果手動用cat建立檔案時,結束時需要按Ctrl+D組合鍵。
如圖:

當輸完www.linuxyw.com後,按鍵盤Ctrl+D結束輸入,這樣檔案就被建立,檔案裡面的內容就是輸入的i love linuxyw.com和www.linuxyw.com這2行內容:


在用cat > linuxyw.com時,用到>符號,這個符號是重定向的意思,會覆蓋原來檔案的內容,沒有檔案時會自動建立。如果用>>符號,即表進追加內容,不會覆蓋原檔案內容,只會在原檔案內容下面追加你所輸入的內容。>和>>千萬別搞混了,用錯可能會出大問題的。



如果不用手動,則用EOF符號即可,如圖:
當第一行用<<EOF的時候,結束也需要用EOF,注意也可以使用>和>>,如上例。



如果你是初學者,以下內容看不懂的話,可以先略過,日後再回來。
如果在寫shell指令碼的時候,需要生成一個配置檔案,但這配置檔案帶變數,這時就需要把EOF用單引號括起來,否則變數會被解析掉。而且在寫指令碼時,EOF後面不能帶空格等其它符號,否則會出錯。
以下圖是我在寫指令碼時,要求原本不動地把cat下的內容生成到指令碼配置檔案中,如果EOF不用單引號引起來,就會使下面的${VIP}等變數被解析掉,就造成生成一個錯誤的配置檔案了。



下面這個指令碼是我需要在生成配置檔案時,在cat時去解析變數,這樣則不需要使用單引號引起來。



用個簡單的方法示例吧:
以下是寫的shell指令碼內容:上面cat是生成linux_cat1.txt檔案,下面cat是生成linux_cat2.txt檔案。

執行完指令碼後,我們cat檢視這二個檔案。





cat把一個或多個檔案合併成一個檔案:
如把檔案1,檔案2,檔案3的內容,重新合併到檔案4中。如下圖示例。