常用命令 ---tail-cat
常用選項
tail
tail 和 cat 是 Linux 和類 Unix 系統中兩個常用的文字處理命令,分別用於檢視檔案的末尾內容和顯示整個檔案內容。以下是它們的一些常用選項:
tail 常用選項:
1. -n number 或 -number:
顯示檔案末尾的指定行數。例如,tail -n 10 filename 顯示檔案末尾的10行。
2. -f 或 --follow[={name|descriptor}]:
實時跟蹤檔案的尾部內容,隨著檔案增長不斷輸出新的內容。常用於監控日誌檔案,如 tail -f logfile.log。
3. -c bytes 或 --bytes=bytes:
顯示檔案末尾指定的位元組數。
4. -F:
類似於 -f,但能檢測檔名改變的情況(比如透過程式重新命名日誌檔案時)。
5. -q:
靜默模式,不列印檔名字首。
6. -v 或 --verbose:
在輸出時附加檔名。
cat
cat 常用選項:
1. -n 或 --number:
對輸出的每一行進行編號。
2. -b 或 --number-nonblank:
對輸出的非空行進行編號。
3. -s 或 --squeeze-blank:
連續的空白行合併為一行。
4. -E 或 --show-ends:
在每一行結尾顯示 $ 符號。
5. -A 或 --show-all:
等同於 -vT,即顯示製表符為 ^I,並在行尾顯示 $。
6. -e 或 --show-ends:
同 -A 選項,但在較老的系統中可能只顯示行尾 $ 符號。
7. -t 或 --show-tabs:
顯示製表符為 ^I。
8. -T 或 --show-tabs=LIST:
與 -t 類似,但允許指定字元替代製表符。
9. file1 file2 ...:
可以連續指定多個檔案,cat 命令會依次顯示這些檔案的內容。
例如:
- 顯示整個檔案內容:cat filename
- 顯示並編號檔案內容:cat -n filename
- 連線多個檔案並輸出:cat file1.txt file2.txt > combined.txt
tail
tail命令用於輸入檔案中的尾部內容。tail命令預設在螢幕上顯示指定檔案的末尾10行。如果給定的檔案不止一個,則在顯示的每個檔案前面加一個檔名標題。如果沒有指定檔案或者檔名為“-”,則讀取標準輸入。
注意:如果表示位元組或行數的N值之前有一個”+”號,則從檔案開頭的第N項開始顯示,而不是顯示檔案的最後N項。N值後面可以有字尾:b表示512,k表示1024,m表示1 048576(1M)。
語法
tail(選項)(引數)
選項
--retry:即是在tail命令啟動時,檔案不可訪問或者檔案稍後變得不可訪問,都始終嘗試開啟檔案。使用此選項時需要與選項“——follow=name”連用;
-c<N>或——bytes=<N>:輸出檔案尾部的N(N為整數)個位元組內容;
-f<name/descriptor>或;--follow<nameldescript>:顯示檔案最新追加的內容。“name”表示以檔名的方式監視檔案的變化。“-f”與“-fdescriptor”等效;
-F:與選項“-follow=name”和“--retry"連用時功能相同;
-n<N>或——line=<N>:輸出檔案的尾部N(N位數字)行內容。
--pid=<程序號>:與“-f”選項連用,當指定的程序號的程序終止後,自動退出tail命令;
-q或——quiet或——silent:當有多個檔案引數時,不輸出各個檔名;
-s<秒數>或——sleep-interal=<秒數>:與“-f”選項連用,指定監視檔案變化時間隔的秒數;
-v或——verbose:當有多個檔案引數時,總是輸出各個檔名;
--help:顯示指令的幫助資訊;
--version:顯示指令的版本資訊。
引數
檔案列表:指定要顯示尾部內容的檔案列表。
例項
tail file (顯示檔案file的最後10行)
tail +20 file (顯示檔案file的內容,從第20行至檔案末尾)
tail -c 10 file (顯示檔案file的最後10個字元)
cat
cat命令連線檔案並列印到標準輸出裝置上,cat經常用來顯示檔案的內容,類似於下的type命令。
注意:當檔案較大時,文字在螢幕上迅速閃過(滾屏),使用者往往看不清所顯示的內容。因此,一般用more等命令分屏顯示。為了控制滾屏,可以按Ctrl+S鍵,停止滾屏;按Ctrl+Q鍵可以恢復滾屏。按Ctrl+C(中斷)鍵可以終止該命令的執行,並且返回Shell提示符狀態。
語法
cat(選項)(引數)
選項
-n或-number:有1開始對所有輸出的行數編號;
-b或--number-nonblank:和-n相似,只不過對於空白行不編號;
-s或--squeeze-blank:當遇到有連續兩行以上的空白行,就代換為一行的空白行;
-A:顯示不可列印字元,行尾顯示“$”;
-e:等價於"-vE"選項;
-t:等價於"-vT"選項;
引數
檔案列表:指定要連線的檔案列表。
例項
設ml和m2是當前目錄下的兩個檔案
cat m1 (在螢幕上顯示檔案ml的內容)
cat m1 m2 (同時顯示檔案ml和m2的內容)
cat m1 m2 > file (將檔案ml和m2合併後放入檔案file中)
區別
tail 和 cat 都是 Linux/Unix 系統中的命令列工具,用於檢視文字檔案內容,但它們的主要功能和使用場景有所差異:
cat(concatenate)命令:
- 主要用於檢視檔案內容,特別是較小的文字檔案。
- 可以連線多個檔案並列印到標準輸出(螢幕)或重定向到另一個檔案。
- 示例用法:
- 檢視檔案內容:cat filename
- 連線並顯示多個檔案:cat file1.txt file2.txt
- 建立新檔案或追加內容到檔案:cat > newfile.txt(之後輸入內容並按 Ctrl+D 結束)或 cat file1.txt >> file2.txt
tail 命令:
- 主要用於檢視檔案末尾的部分內容,而不一定是整個檔案。
- 提供了 -n 引數來指定顯示檔案末尾的行數,例如 tail -n 10 filename 會顯示檔案末尾的10行。
- 特別強大的功能是 -f 或 --follow 選項,可以實時追蹤並顯示檔案新增內容,非常適合監視日誌檔案:tail -f logfile.log
- 示例用法:
- 檢視檔案末尾10行:tail -n 10 filename
- 實時追蹤檔案新增內容:tail -f logfile
總結:
- cat 用於顯示整個檔案或連線多個檔案內容,而 tail 專門用於檢視檔案末尾部分內容,並支援實時追蹤檔案變化。
- 在處理大型日誌檔案或只需要關注最新資料的情況下,tail 更為高效和適用。而在需要檢視檔案全貌或合併檔案時,cat 是首選工具。