一天一個shell命令 linux文本操作系列-head,tail命令詳解
head命令中文介紹:
用法:head [選項]... [文件]... 將每個指定文件的頭10 行顯示到標準輸出。 如果指定了多于一個文件,在每一段輸出前會給出文件名作為文件頭。 如果不指定文件,或者文件為"-",則從標準輸入讀取數(shù)據(jù)。 長選項必須使用的參數(shù)對于短選項時也是必需使用的。 -c, --bytes=[-]K 顯示每個文件的前K 字節(jié)內(nèi)容; 如果附加"-"參數(shù),則除了每個文件的最后K字節(jié)數(shù)據(jù)外 顯示剩余全部內(nèi)容 -n, --lines=[-]K 顯示每個文件的前K 行內(nèi)容; 如果附加"-"參數(shù),則除了每個文件的最后K 行外顯示 剩余全部內(nèi)容 -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命令詳解
用法:tail [選項]... [文件]...
顯示每個指定文件的最后10 行到標準輸出。
若指定了多于一個文件,程序會在每段輸出的開始添加相應文件名作為頭。
如果不指定文件或文件為"-" ,則從標準輸入讀取數(shù)據(jù)。
長選項必須使用的參數(shù)對于短選項時也是必需使用的。
-c, --bytes=K 輸出最后K 字節(jié);另外,使用-c +K 從每個文件的
第K 字節(jié)輸出
-f, --follow[={name|descriptor}]
即時輸出文件變化后追加的數(shù)據(jù)。
-f, --follow 等于--follow=descriptor
-F 即--follow=name --retry
-n, --lines=K 輸出最后K 行,代替最后10 行;使用-n +K 從每個文件的第K 字節(jié)輸出
--max-unchanged-stats=N
使用--follow=name, 重新打開一個在N(默認為5)
次迭代后沒有改變大小的文件來看它是否被解除連
接或重命名(這是循環(huán)日志文件的通常情況)。
由于有inotify,這個選項很少使用。
--pid=PID 同 -f 一起使用,當 PID 所對應的進程死去后終止
-q, --quiet, --silent 不輸出給出文件名的頭
--retry 即使目標文件不可訪問依然試圖打開;在與參數(shù)
--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 顯示版本信息并退出
如果字節(jié)數(shù)或行數(shù)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。
如果您希望即時追查一個文件的有效名稱而非描述內(nèi)容(例如循環(huán)日志),默認
的程序動作并不如您所愿。在這種場合可以使用--follow=name 選項,它會使
tail 定期追蹤打開給定名稱的文件,以確認它是否被刪除或被其它某些程序重新創(chuàng)建過。
head: 打印文件的前10行(默認)
tail: 打印文件的后10行(默認)
如果你是個典型的開發(fā)或者部署人員,是不是覺得開始親切起來。我們平時用的最多的命令
$tail -f catalina.out
$head
實例:
1. 打印head.txt, tail.txt的前10行
$head head.txt tail.txt
==> head.txt <==
head.txt內(nèi)容
==> tail.txt <==
tail.txt內(nèi)容
2. 打印 1K的內(nèi)容
$head –c1K head.txt
3. 打印前5行內(nèi)容
$head -n5 head.txt
4. 打印出最后5行之外的所有行
$head -n -5 head.txt
這里-5表示負5
解讀 --help
用法:head [選項]... [文件]...
將每個指定文件的頭10 行顯示到標準輸出。
如果指定了多于一個文件,在每一段輸出前會給出文件名作為文件頭。
如果不指定文件,或者文件為"-",則從標準輸入讀取數(shù)據(jù)。
長選項必須使用的參數(shù)對于短選項時也是必需使用的。
-c, --bytes=[-]K 顯示每個文件的前K 字節(jié)內(nèi)容;
如果附加"-"參數(shù),則除了每個文件的最后K字節(jié)數(shù)據(jù)外
顯示剩余全部內(nèi)容
-n, --lines=[-]K 顯示每個文件的前K 行內(nèi)容;
如果附加"-"參數(shù),則除了每個文件的最后K 行外顯示
剩余全部內(nèi)容
-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 同樣適用。
解讀:
這里唯一注意:如果不指定文件,或者文件為"-",則從標準輸入讀取數(shù)據(jù)。
$tail
實例:
1.打印一個文件最后10行
$tail tail.txt
2.跟蹤日志,打印文件最后幾行,并且保持讀取追加數(shù)據(jù)
tail -f tail.txt
解讀--help
用法:tail [選項]... [文件]...
顯示每個指定文件的最后10 行到標準輸出。
若指定了多于一個文件,程序會在每段輸出的開始添加相應文件名作為頭。
如果不指定文件或文件為"-" ,則從標準輸入讀取數(shù)據(jù)。
長選項必須使用的參數(shù)對于短選項時也是必需使用的。
-c, --bytes=K 輸出最后K 字節(jié);另外,使用-c +K 從每個文件的第K 字節(jié)輸出
-f, --follow[={name|descriptor}] 即時輸出文件變化后追加的數(shù)據(jù)。
-F 即--follow=name --retry
-n --lines=K 輸出最后K 行,代替最后10 行;
span style="color: #000000">-n +K 從每個文件的第K 字節(jié)輸出
--max-unchanged-stats=N
使用--follow=name, 重新打開一個在N(默認為5) 次迭代后沒有改變大小的文件來看它是否被解除連 接或重命名(這是循環(huán)日志文件的通常情況)。 由于有inotify,這個選項很少使用。
--pid=PID 同 -f 一起使用,當 PID 所對應的進程死去后終止
-q --quiet, --silent 不輸出給出文件名的頭
--retry 即使目標文件不可訪問依然試圖打開;在與參數(shù)
--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 顯示版本信息并退出
如果字節(jié)數(shù)或行數(shù)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. 區(qū)別-f 和-F
借網(wǎng)上一例子:
窗口1 輸入
$while [ "true" ] ; do date >>test.log; sleep 1 ; done;
#每隔一秒傳入一個日期到test.log
窗口2 輸入
$tail -f test.log
窗口3 輸入
$rm test.log
此時窗口2 則停止打印,而test.log已經(jīng)重新生成
如果采用-F的形式,也會重新生成一個新的test.log,但會自動重新讀取
收尾
tail和head是兩個非常常用的命令,熟練掌握方便查看文件內(nèi)容。兩個很簡單,也很相似,所以放在一起寫出來。
相關文章
Linux Shell腳本語句執(zhí)行失敗,后續(xù)語句繼續(xù)執(zhí)行的問題及解決
這篇文章主要介紹了Linux Shell腳本語句執(zhí)行失敗,后續(xù)語句繼續(xù)執(zhí)行的問題及解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2023-06-06
Linux下科學計數(shù)法(e)轉化為數(shù)字的方法
這篇文章主要介紹了Linux下科學計數(shù)法(e)轉化為數(shù)字的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-05-05
Shell腳本監(jiān)控網(wǎng)站頁面正常打開情況
這篇文章主要介紹了Shell腳本監(jiān)控網(wǎng)站頁面正常打開情況的代碼分享,本文實現(xiàn)監(jiān)控打開情況,若出錯則發(fā)送郵件通知,需要的朋友可以參考下2014-12-12
編寫shell腳本實現(xiàn)tomcat定時重啟的方法
這篇文章主要介紹了編寫shell腳本實現(xiàn)tomcat定時重啟的方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2020-12-12

