萬盛學電腦網

 萬盛學電腦網 >> 服務器教程 >> linux中tail 命令使用詳解

linux中tail 命令使用詳解

   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

[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 © 萬盛學電腦網 all rights reserved