1. 前言
今天看到團隊里的以為大神使用xshell遠程訪問公司的服務器,通過日志查找我們測試時出現的一些bug,看到了他使用了一個
tailf
命令查看日志的動態顯示,通過分析日志,很快就定位到了一個后臺調試一直都沒發現的bug。所以自己百度總結一些常用的查看文件命令的使用。
2. 目錄
命令 | 說明 |
---|---|
cat | 由第一行開始顯示內容,并將所有內容輸出 |
tac | 從最后一行倒序顯示內容,并將所有內容輸出 |
more | 根據窗口大小,一頁一頁的現實文件內容 |
less | 和more類似,但其優點可以往前翻頁,而且進行可以搜索字符 |
head | 只顯示頭幾行 |
tail | 只顯示最后幾行 |
nl | 類似于cat -n,顯示時輸出行號 |
tailf | 類似于tail -f |
grep | 文件內容查看 |
2.1 cat 和 tac 命令的使用
用法: cat [options] filename
options:
-A
: 顯示全部.
-E
: 在每一行的后面加上"$"符號結尾.
-b
: 在所有的非空白行上標示編號.
tac
是 cat
的倒寫,cat
是從第一行開始顯示,而tac
則是從最后一行開始倒著顯示。
2.2 more 和 less
more
的功能是將文件從第一行開始,根據輸出窗口的大小,適當的輸出文件內容。當一頁無法全部輸出時,可以用回車鍵
向下翻行,用空格鍵
向下翻頁。退出查看頁面,請按q
鍵。另外,more
還可以配合管道符“|”(pipe)使用,例如:ls -al | more
more的語法:more filename
Enter
向下n行,需要定義,默認為1行;
Ctrl f
向下滾動一屏;
空格鍵
向下滾動一屏;
Ctrl b
返回上一屏;
=
輸出當前行的行號;
:f
輸出文件名和當前行的行號;
v
調用vi編輯器;
!
命令 調用Shell,并執行命令;
q
退出more-
less的功能和more相似,但是使用more無法向前翻頁,只能向后翻。
less可以使用【pageup】
和【pagedown】
鍵進行前翻頁和后翻頁,這樣看起來更方便。
less:
功能:分頁顯示文件,可以靈活翻頁。可以結合其他命令使用。
優勢:用于查看不需要監控變化
的文件。使用:
- 查看操作
less filename
Enter
(回車) 下一行
b
向上翻頁
空格
向下翻頁
/ 查找字段
(與vim查找相似)
shift+g
到文件尾
g
到文件頭 - 結合使用。如:
ps -ef | less
history | less
實現靈活的翻頁查看,查找等功能。
- 查看操作
2.2 head 和 tail
head
和tail
通常使用在只需要讀取文件的前幾行或者后幾行的情況下使用。head的功能是顯示文件的前幾行內容
head的語法:head [n number]
文件名 (number 顯示行數)
tail
跟它的英文意思一樣,就是可以查看從文件尾開始顯示末尾的幾行,唯一和 tac
的不同之處就是tail
命令是可以動態監控文件內容變化的,常用的命令就是tail -f
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秒
2.3 nl 和 tailf
nl
的功能和cat -n
一樣,同樣是從第一行輸出全部內容,并且把行號顯示出來
nl的語法:nl 文件名
tailf
命令幾乎等同于tail -f
,嚴格說來應該與tail --follow=name更相似些。當文件改名之后它也能繼續跟蹤,特別適合于日志文件的跟蹤(follow the growth of a log file)
。與tail -f不同的是,如果文件不增長,它不會去訪問磁盤文件(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特別適合那些便攜機上跟蹤日志文件,因為它能省電,因為減少了磁盤訪問嘛(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命令不是個腳本,而是一個用C代碼編譯后的二進制執行文件,某些Linux安裝之后沒有這個命令,本文提供了怎么編譯安裝tailf命令的方法。
格式:tailf logfile
動態跟蹤日志文件logfile,最初的時候打印文件的最后10行內容。
2.4 grep命令的使用
grep
是一個非常重要的命令,他是在指定的文本文件中查找某一內容,比方說我要在history
這個文本文件中查找hell的內容,可以使用命令grep ls history
詳細可以參考grep的詳細使用
總結
其實linux的文件查看命令的用法是很靈活的,具體如何用好還是要看個人,很多東西并不是一下子學會的,而是一點一滴自己積累的。感謝我現在的公司給我的機會和挑戰