1. 前言
今天看到團(tuán)隊(duì)里的以為大神使用xshell遠(yuǎn)程訪問(wèn)公司的服務(wù)器,通過(guò)日志查找我們測(cè)試時(shí)出現(xiàn)的一些bug,看到了他使用了一個(gè)
tailf
命令查看日志的動(dòng)態(tài)顯示,通過(guò)分析日志,很快就定位到了一個(gè)后臺(tái)調(diào)試一直都沒(méi)發(fā)現(xiàn)的bug。所以自己百度總結(jié)一些常用的查看文件命令的使用。
2. 目錄
命令 | 說(shuō)明 |
---|---|
cat | 由第一行開(kāi)始顯示內(nèi)容,并將所有內(nèi)容輸出 |
tac | 從最后一行倒序顯示內(nèi)容,并將所有內(nèi)容輸出 |
more | 根據(jù)窗口大小,一頁(yè)一頁(yè)的現(xiàn)實(shí)文件內(nèi)容 |
less | 和more類(lèi)似,但其優(yōu)點(diǎn)可以往前翻頁(yè),而且進(jìn)行可以搜索字符 |
head | 只顯示頭幾行 |
tail | 只顯示最后幾行 |
nl | 類(lèi)似于cat -n,顯示時(shí)輸出行號(hào) |
tailf | 類(lèi)似于tail -f |
grep | 文件內(nèi)容查看 |
2.1 cat 和 tac 命令的使用
用法: cat [options] filename
options:
-A
: 顯示全部.
-E
: 在每一行的后面加上"$"符號(hào)結(jié)尾.
-b
: 在所有的非空白行上標(biāo)示編號(hào).
tac
是 cat
的倒寫(xiě),cat
是從第一行開(kāi)始顯示,而tac
則是從最后一行開(kāi)始倒著顯示。
2.2 more 和 less
more
的功能是將文件從第一行開(kāi)始,根據(jù)輸出窗口的大小,適當(dāng)?shù)妮敵鑫募?nèi)容。當(dāng)一頁(yè)無(wú)法全部輸出時(shí),可以用回車(chē)鍵
向下翻行,用空格鍵
向下翻頁(yè)。退出查看頁(yè)面,請(qǐng)按q
鍵。另外,more
還可以配合管道符“|”(pipe)使用,例如:ls -al | more
more的語(yǔ)法:more filename
Enter
向下n行,需要定義,默認(rèn)為1行;
Ctrl f
向下滾動(dòng)一屏;
空格鍵
向下滾動(dòng)一屏;
Ctrl b
返回上一屏;
=
輸出當(dāng)前行的行號(hào);
:f
輸出文件名和當(dāng)前行的行號(hào);
v
調(diào)用vi編輯器;
!
命令 調(diào)用Shell,并執(zhí)行命令;
q
退出more-
less的功能和more相似,但是使用more無(wú)法向前翻頁(yè),只能向后翻。
less可以使用【pageup】
和【pagedown】
鍵進(jìn)行前翻頁(yè)和后翻頁(yè),這樣看起來(lái)更方便。
less:
功能:分頁(yè)顯示文件,可以靈活翻頁(yè)。可以結(jié)合其他命令使用。
優(yōu)勢(shì):用于查看不需要監(jiān)控變化
的文件。使用:
- 查看操作
less filename
Enter
(回車(chē)) 下一行
b
向上翻頁(yè)
空格
向下翻頁(yè)
/ 查找字段
(與vim查找相似)
shift+g
到文件尾
g
到文件頭 - 結(jié)合使用。如:
ps -ef | less
history | less
實(shí)現(xiàn)靈活的翻頁(yè)查看,查找等功能。
- 查看操作
2.2 head 和 tail
head
和tail
通常使用在只需要讀取文件的前幾行或者后幾行的情況下使用。head的功能是顯示文件的前幾行內(nèi)容
head的語(yǔ)法:head [n number]
文件名 (number 顯示行數(shù))
tail
跟它的英文意思一樣,就是可以查看從文件尾開(kāi)始顯示末尾的幾行,唯一和 tac
的不同之處就是tail
命令是可以動(dòng)態(tài)監(jiān)控文件內(nèi)容變化的,常用的命令就是tail -f
tail 命令從指定點(diǎn)開(kāi)始將文件寫(xiě)到標(biāo)準(zhǔn)輸出.使用tail命令的-f選項(xiàng)可以方便的查閱正在改變的日志文件,tail -f filename會(huì)把filename里最尾部的內(nèi)容顯示在屏幕上,并且不但刷新,使你看到最新的文件內(nèi)容.
1.命令格式;
tail[必要參數(shù)][選擇參數(shù)][文件]
2.命令功能:
用于顯示指定文件末尾內(nèi)容,不指定文件時(shí),作為輸入信息進(jìn)行處理。常用查看日志文件。
3.命令參數(shù):
-f
循環(huán)讀取
-q
不顯示處理信息
-v
顯示詳細(xì)的處理信息
-c
<數(shù)目> 顯示的字節(jié)數(shù)
-n
<行數(shù)> 顯示行數(shù)
--pid=PID
與-f合用,表示在進(jìn)程ID,PID死掉之后結(jié)束.
-q
, --quiet, --silent 從不輸出給出文件名的首部
-s
, --sleep-interval=S 與-f合用,表示在每次反復(fù)的間隔休眠S秒
2.3 nl 和 tailf
nl
的功能和cat -n
一樣,同樣是從第一行輸出全部?jī)?nèi)容,并且把行號(hào)顯示出來(lái)
nl的語(yǔ)法:nl 文件名
tailf
命令幾乎等同于tail -f
,嚴(yán)格說(shuō)來(lái)應(yīng)該與tail --follow=name更相似些。當(dāng)文件改名之后它也能繼續(xù)跟蹤,特別適合于日志文件的跟蹤(follow the growth of a log file)
。與tail -f不同的是,如果文件不增長(zhǎng),它不會(huì)去訪問(wèn)磁盤(pán)文件(It is similar to tail -f but does not access the file when it is not growing. This has the side effect of not updating the access time for the file, so a filesystem flush does not occur periodically when no log activity is happening.)
。tailf特別適合那些便攜機(jī)上跟蹤日志文件,因?yàn)樗苁‰姡驗(yàn)闇p少了磁盤(pán)訪問(wèn)嘛(tailf is extremely useful for monitoring log files on a laptop when logging is infrequent and the user desires that the hard disk spin down to conserve battery life.)
。tailf命令不是個(gè)腳本,而是一個(gè)用C代碼編譯后的二進(jìn)制執(zhí)行文件,某些Linux安裝之后沒(méi)有這個(gè)命令,本文提供了怎么編譯安裝tailf命令的方法。
格式:tailf logfile
動(dòng)態(tài)跟蹤日志文件logfile,最初的時(shí)候打印文件的最后10行內(nèi)容。
2.4 grep命令的使用
grep
是一個(gè)非常重要的命令,他是在指定的文本文件中查找某一內(nèi)容,比方說(shuō)我要在history
這個(gè)文本文件中查找hell的內(nèi)容,可以使用命令grep ls history
詳細(xì)可以參考grep的詳細(xì)使用
總結(jié)
其實(shí)linux的文件查看命令的用法是很靈活的,具體如何用好還是要看個(gè)人,很多東西并不是一下子學(xué)會(huì)的,而是一點(diǎn)一滴自己積累的。感謝我現(xiàn)在的公司給我的機(jī)會(huì)和挑戰(zhàn)