在linux中,tail命令用來查看文件末尾的數據,可顯示一個或多個文件或管道數據的最后一部分(默認為10行),語法“tail [選項] 文件名”;常用選項“-n”用于指定要顯示的行數、“-c”用于指定要顯示的特定字節數、“-f”用于監視文件的更改。tail命令最常見的用途之一就是監視和分析日志和其他隨時間變化的文件,通常與grep等其他工具結合使用。
本教程操作環境:linux7.3系統、Dell G3電腦。
Linux tail命令
tail命令顯示一個或多個文件或管道數據的最后一部分(默認為10行);可用于實時監控文件更改。tail命令最常見的用途之一就是監視和分析日志和其他隨時間變化的文件,通常與grep等其他工具結合使用。
基本語法:
tail?[OPTION]?FILE
-
OPTION: tail選項,下面我們來看看最常見的一些選項。
-
?-n(–lines)選項:指定要顯示的行數
-
?-c(–bytes)選項:指定要顯示的特定字節數
-
-f(–follow)選項:監視文件的更改
-
-
FILE:零個或多個輸入文件名。如果未指定FILE,或者FILE為-,則tail將讀取標準輸入。
說明:
選項 | 含義 |
---|---|
-n K | 這里的 K 指的是行數,該選項表示輸出最后 K 行,在此基礎上,如果使用 -n +K,則表示從文件的第 K 行開始輸出。 |
-c K | 這里的 K 指的是字節數,該選項表示輸出文件最后 K 個字節的內容,在此基礎上,使用 -c +K 則表示從文件第 K 個字節開始輸出。 |
-f | 輸出文件變化后新增加的數據。 |
如何使用tail命令?
在沒有任何選項的情況下使用最簡單的形式時,tail命令將顯示最后10行。
tail?filename.txt
如何顯示特定行數?
可以使用-n(–lines)選項來指定要顯示的行數:
tail?-n?<number>?filename.txt</number>
也可以省略字母n,只使用連字符(-)和數字(它們之間沒有空格)。
要顯示名為filename.txt的文件的最后50行,需要使用:
tail?-n?50?filename.txt
以下示例將顯示與上述命令相同的結果:
tail?-50?filename.txt
如何顯示特定的字節數?
可以使用-c(–bytes)選項來顯示特定的字節數:
tail?-c?<number>?filename.txt</number>
例如,要顯示文件filename.txt中最后500個字節的數據,我們可以使用:
tail?-c?500?filename.txt
還可以在數字后面使用乘數后綴來指定要顯示的字節數。 b乘以512,kB乘以1000,K乘以1024,MB乘以1000000,M乘以1048576,依此類推。
以下命令將顯示文件filename.txt的最后兩千字節(2048):
tail?-c?2k?filename.txt
如何查看文件以進行更改?
要監視文件的更改,需要使用-f(–follow)選項:
tail?-f?filename.txt
-f選項對于監視日志文件特別有用。 例如,要顯示/var/log/nginx/error.log文件的最后10行,并監視該文件是否有要使用的更新:
tail?-f?/var/log/nginx/error.log
要在監視文件時中斷tail命令,需要按ctrl+c。
要在重新創建文件時繼續監視該文件,需要使用-f選項:
tail?-F?filename.txt
-f選項在tail命令跟隨旋轉的日志文件時非常有用。當與-f選項一起使用時,tail命令將在文件再次可用時重新打開。
如何顯示多個文件
如果有多個文件作為tail命令的輸入提供,它將顯示每個文件的最后十行。
tail?filename1.txt?filename2.txt
用戶可以使用與顯示單個文件時相同的選項。
例如:顯示文件filename1.txt和filename2.txt的最后20行
tail?-c?20?filename1.txt?filename2.txt
如何和其他命令一起使用?
tail命令可以與其他命令結合使用,例如,要監視Apache訪問日志文件,并且只顯示包含IP地址192.168.42.12的行,可以使用:
tail?-f?/var/log/apache2/access.log?|?grep?192.168.42.12
或者顯示按CPU使用率排序的前十個運行進程:
ps?aux?|?sort?-nk?+3?|?tail?-5
相關視頻教程推薦:《Linux教程》