shell head tail


head:  打印文件的前10行(默認)

tail:     打印文件的后10行(默認)

如果你是個典型的開發或者部署人員,是不是覺得開始親切起來。我們平時用的最多的命令

  1. $tail -f  catalina.out  

$head

實例:

1. 打印head.txt, tail.txt的前10行

  1. $head head.txt tail.txt 

 

 ==> head.txt <==

head.txt內容

==> tail.txt <==

tail.txt內容

 

 2.  打印 1K的內容

  1. $head –c1K head.txt 

3.  打印前5行內容

  1. $head -n5 head.txt 

4.  打印出最后5行之外的所有行

  1. $head -n -5 head.txt 

這里-5表示負5 

解讀 --help

 用法:head [選項]... [文件]... 
將每個指定文件的頭10 行顯示到標准輸出。 
如果指定了多於一個文件,在每一段輸出前會給出文件名作為文件頭。 
如果不指定文件,或者文件為"-",則從標准輸入讀取數據。

長選項必須使用的參數對於短選項時也是必需使用的。 
-c, --bytes=[-]K         顯示每個文件的前K 字節內容; 
如果附加"-"參數,則除了每個文件的最后K字節數據外 
顯示剩余全部內容 
-n, --lines=[-]K           顯示每個文件的前K 行內容; 
如果附加"-"參數,則除了每個文件的最后K 行外顯示 
剩余全部內容 
-q, --quiet, --silent       不顯示包含給定文件名的文件頭 
-v, --verbose               總是顯示包含給定文件名的文件頭 
--help                          顯示此幫助信息並退出 
--version                     顯示版本信息並退出
K 后面可以跟乘號:  

b 512, kB 1000, K 1024, MB 1000*1000, M 1024*1024, 
GB 1000*1000*1000, G 1024*1024*1024, 對於T, P, E, Z, Y 同樣適用。
 

 

 解讀:

這里唯一注意:如果不指定文件,或者文件為"-",則從標准輸入讀取數據。


$tail

實例:

1.打印一個文件最后10行

  1. $tail tail.txt 

2.跟蹤日志,打印文件最后幾行,並且保持讀取追加數據

  1. tail -f tail.txt 

 解讀--help

 

 用法:tail [選項]... [文件]... 
顯示每個指定文件的最后10 行到標准輸出。 
若指定了多於一個文件,程序會在每段輸出的開始添加相應文件名作為頭。 
如果不指定文件或文件為"-" ,則從標准輸入讀取數據。

長選項必須使用的參數對於短選項時也是必需使用的。 
-c, --bytes=K           輸出最后K 字節;另外,使用-c +K 從每個文件的第K 字節輸出 
-f,  --follow[={name|descriptor}]    即時輸出文件變化后追加的數據。 
-F                        即--follow=name --retry 
-n                   --lines=K  輸出最后K 行,代替最后10 行;
span style="color: #000000">-n +K    從每個文件的第K 字節輸出
--max-unchanged-stats=N
          使用--follow=name, 重新打開一個在N(默認為5) 次迭代后沒有改變大小的文件來看它是否被解除連 接或重命名(這是循環日志文件的通常情況)。 由於有inotify,這個選項很少使用。 
--pid=PID              同 -f 一起使用,當 PID 所對應的進程死去后終止 
-q                            --quiet, --silent           不輸出給出文件名的頭 
--retry                      即使目標文件不可訪問依然試圖打開;在與參數 
--follow=name             同時使用時常常有用。 
-s                          --sleep-interval=N with -f, sleep for approximately N seconds (default 1.0) between iterations. With inotify and--pid=P, check process P at least once every N seconds. 
-v                   --verbose always output headers giving file names 
                       --help 顯示此幫助信息並退出 
                        --version 顯示版本信息並退出 
如果字節數或行數K 的第一個字符是"+",輸出從文件開始第K 個項目,否則輸出文件 
最后K 個項目。K 可以使用一下幾種單位之一: 
b 512,kB 1000,K 1024,MB 1000*1000,M 1024*1024, 
GB 1000*1000*1000,G 1024*1024*1024,以及T,P,E,Z,Y。

 

解讀:

1. 區別-f 和-F

借網上一例子:

窗口1 輸入  

  1. $while [ "true" ] ; do date >>test.log; sleep 1 ; done; 

#每隔一秒傳入一個日期到test.log

窗口2 輸入

  1. $tail -f test.log 

窗口3 輸入

  1. $rm test.log 

此時窗口2 則停止打印,而test.log已經重新生成 

如果采用-F的形式,也會重新生成一個新的test.log,但會自動重新讀取  

收尾

tail和head是兩個非常常用的命令,熟練掌握方便查看文件內容。兩個很簡單,也很相似,所以放在一起寫出來


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM