歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux中tail 命令使用詳解(顯示最尾部的內容)

linux中tail 命令使用詳解(顯示最尾部的內容)

日期:2017/3/1 18:00:39   编辑:Linux技術

tail 命令從指定點開始將文件寫到標准輸出.使用tail命令的-f選項可以方便的查閱正在改變的日志文件,tail -f filename會把filename裡最尾部的內容顯示在屏幕上,並且不但刷新,使你看到最新的文件內容.

1.命令格式;

tail[必要參數][選擇參數][文件]

2.命令功能:

用於顯示指定文件末尾內容,不指定文件時,作為輸入信息進行處理。常用查看日志文件。

3.命令參數:

-f 循環讀取
-q 不顯示處理信息
-v 顯示詳細的處理信息
-c<數目> 顯示的字節數
-n<行數> 顯示行數
--pid=PID 與-f合用,表示在進程ID,PID死掉之後結束.
-q, --quiet, --silent 從不輸出給出文件名的首部
-s, --sleep-interval=S 與-f合用,表示在每次反復的間隔休眠S秒

4.使用實例:

實例1:顯示文件末尾內容

命令:

tail -n 5 log2014.log

輸出:


復制代碼代碼如下:
[root@localhost test]# tail -n 5 log2014.log
2014-09
2014-10
2014-11
2014-12
==============================[root@localhost test]#

說明:

顯示文件最後5行內容

實例2:循環查看文件內容

命令:

tail -f test.log

輸出:


復制代碼代碼如下:
[root@localhost ~]# ping 192.168.120.204 > test.log &
[1] 11891[root@localhost ~]# tail -f test.log
PING 192.168.120.204 (192.168.120.204) 56(84) bytes of data.
64 bytes from 192.168.120.204: icmp_seq=1 ttl=64 time=0.038 ms
64 bytes from 192.168.120.204: icmp_seq=2 ttl=64 time=0.036 ms
64 bytes from 192.168.120.204: icmp_seq=3 ttl=64 time=0.033 ms
64 bytes from 192.168.120.204: icmp_seq=4 ttl=64 time=0.027 ms
64 bytes from 192.168.120.204: icmp_seq=5 ttl=64 time=0.032 ms
64 bytes from 192.168.120.204: icmp_seq=6 ttl=64 time=0.026 ms
64 bytes from 192.168.120.204: icmp_seq=7 ttl=64 time=0.030 ms
64 bytes from 192.168.120.204: icmp_seq=8 ttl=64 time=0.029 ms
64 bytes from 192.168.120.204: icmp_seq=9 ttl=64 time=0.044 ms
64 bytes from 192.168.120.204: icmp_seq=10 ttl=64 time=0.033 ms
64 bytes from 192.168.120.204: icmp_seq=11 ttl=64 time=0.027 ms</p> <p>[root@localhost ~]#

說明:

ping 192.168.120.204 > test.log & //在後台ping遠程主機。並輸出文件到test.log;這種做法也使用於一個以上的檔案監視。用Ctrl+c來終止。


實例3:從第5行開始顯示文件

命令:

tail -n +5 log2014.log

輸出:


復制代碼代碼如下:
[root@localhost test]# cat log2014.log
2014-01
2014-02
2014-03
2014-04
2014-05
2014-06
2014-07
2014-08
2014-09
2014-10
2014-11
2014-12
==============================
[root@localhost test]# tail -n +5 log2014.log
2014-05
2014-06
2014-07
2014-08
2014-09
2014-10
2014-11
2014-12
==============================

補充:

用途
從指定點開始將文件寫到標准輸出。使用tail命令的-f選項可以方便的查閱正在改變的日志文件,tail -f filename會把filename裡最尾部的內容顯示在屏幕上,並且不但刷新,使你看到最新的文件內容。

語法
標准語法
tail [ -f ] [ -c Number | -n Number | -m Number | -b Number | -k Number ] [ File ]

要以逆序顯示行
tail [ -r ] [ -n Number ] [ File ]


描述
tail 命令從指定點開始將File 參數指定的文件寫到標准輸出。如果沒有指定文件,則會使用標准輸入。Number 變量指定將多少單元寫入標准輸出。Number 變量的值可以是正的或負的整數。如果值的前面有+(加號),從文件開頭指定的單元數開始將文件寫到標准輸出。如果值的前面有-(減號),則從文件末尾指定的單元數開始將文件寫到標准輸出。如果值前面沒有+(加號)或-(減號),那麼從文件末尾指定的單元號開始讀取文件。
Number 變量用於確定計數的起點的單元類型由-b、-c、-k、-m 以及-n 標志確定。如果沒有指定其中的任何一個標志,那麼tail 命令就會讀取指定文件的最後十行,並將其寫到標准輸出。這與在命令行輸入-n 10 是相同的。
-m 標志在單字節和雙字節字符環境中提供了一致的結果。當輸入是包含多字節字符的文本文件時應謹慎使用-c 標志,因為產生的輸出可能不從字符邊界開始。
標志
-b Number
從Number 變量表示的512 字節塊位置開始讀取指定文件。
-c Number
從Number 變量表示的字節位置開始讀取指定文件。
-f
如果輸入文件是常規文件或如果File 參數指定FIFO(先進先出),那麼tail 命令不會在復制了輸入文件的最後的指定單元後終止,而是繼續從輸入文件讀取和復制額外的單元(當這些單元可用時)。如果沒有指定File 參數,並且標准輸入是管道,則會忽略-f 標志。tail -f 命令可用於監視另一個進程正在寫入的文件的增長。
-k Number
從Number 變量表示的1KB 塊位置開始讀取指定文件。
-m Number
從Number 變量表示的多字節字符位置開始讀取指定文件。使用該標志提供在單字節和雙字節字符代碼集環境中的一致結果。
-n Number
從Number 變量表示的行位置開始讀取指定文件。
-r
從文件末尾以逆序方式顯示輸出。-r 標志的缺省值是以逆序方式打印整個文件。如果文件大於20,480 字節,那麼-r 標志只顯示最後的20,480 字節。
-r 標志只有與-n 標志一起時才有效。否則,就會將其忽略。
退出狀態
該命令返回下列的退出值:
0
成功完成。
>0
出現錯誤。

示例
要顯示notes 文件的最後十行,輸入:

tail notes要指定從notes 文件末尾開始讀取的行數,輸入:
tail -n 20 notes
要從第200 字節開始,每次顯示一頁notes 文件,輸入:
tail -c +200 notes | pg
要跟蹤文件的增長,輸入:
tail -f accounts
這顯示accounts 文件的最後十行。tail 命令繼續顯示添加到accounts 文件中的行。顯示會一直繼續,直到您按下Ctrl-C 按鍵順序來停止。
文件

/usr/bin/tail
包含tail 命令。

Copyright © Linux教程網 All Rights Reserved