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

