如果你已經(jīng)習(xí)慣了在Linux系統(tǒng)上工作,那你一定會(huì)發(fā)現(xiàn)在Linux世界中存在著大量的文本文件。配置文件和日志文件通常都采用文本格式。這些文件通常都有很長(zhǎng)的內(nèi)容,不能在一屏內(nèi)全部顯示。所以在處理這種文件時(shí),我們需要分頁(yè)顯示。這時(shí)我們可以用上more命令。
![](/d/20211018/131c89479553f2a54b9fed45a6b071cb.gif)
more是干嘛的
more是一個(gè)用來(lái)分頁(yè)顯示大文本文件的命令,它默認(rèn)是內(nèi)置在各個(gè)Linux發(fā)行版中的。
怎么用more
使用more命令,只需要鍵入:
$ more file_name
比如,我們想檢查/var/log目錄下的日志文件syslog,只需要鍵入:
$ more /var/log/syslog
![](/d/20211018/51681520602d01838448afeead5ed525.gif)
然后我們可以看到在屏幕左下角有個(gè)提示,告訴我們當(dāng)前的顯示比例為0%??瓷先ミ@個(gè)文件相當(dāng)大,所以第一頁(yè)是全部頁(yè)數(shù)的0%。使用空格鍵可以往下翻頁(yè),然后就可以看到提示的百分比會(huì)增加。
![](/d/20211018/c2a9b609c0339f1b61a624908915124f.gif)
限制每頁(yè)顯示的行數(shù)
在執(zhí)行more命令的時(shí)候,它會(huì)占用你終端窗口的全部空間用于顯示。但是你可以通過(guò)參數(shù)-數(shù)字來(lái)限制每頁(yè)顯示的行數(shù)。
例如,你希望每頁(yè)限制顯示12行,可以通過(guò)下面的命令:
$ more -12 /var/log/syslog
![](/d/20211018/cb8b6033ecb8df51010d41daae16843e.gif)
現(xiàn)在,你會(huì)看到每頁(yè)只顯示12行,在按下空格鍵后,就會(huì)翻頁(yè)顯示后面的12行。
Display user message
我們知道,more命令會(huì)在顯示區(qū)域的左下角提示當(dāng)前內(nèi)容所占的百分比。對(duì)于第一次使用more命令的人來(lái)說(shuō),他或她可能會(huì)想知道怎么才能往下翻頁(yè)。為了避免這種情況,我們可以在執(zhí)行時(shí)增加-d參數(shù),這樣就會(huì)額外顯示一行用戶信息“[按空格鍵繼續(xù),‘q‘推出.]”
![](/d/20211018/28a70d16f74b1e2cabbe75521e9b4ea1.gif)
如果用戶按了‘空格‘或’q‘之外的按鍵,more會(huì)顯示一行幫助信息“ [按‘h’鍵查看提示。]”
![](/d/20211018/e73b627c4b10d63880d433be40e903b2.gif)
如果按下h鍵,會(huì)顯示一個(gè)幫助信息:
![](/d/20211018/25dff9f7fd8d5729f62c3267bf9a29d0.gif)
一個(gè)有意思的指令是b按鈕,b按鈕允許你退回到前面的頁(yè)面。換句話說(shuō),b按鈕可以允許向前翻頁(yè)。
你可以通過(guò)左上角的...前1頁(yè)信息來(lái)確認(rèn)當(dāng)前顯示的是前面的頁(yè)面。
![](/d/20211018/0cdbad8c37917ecbb6f97c5d6352bd39.gif)
禁止?jié)L動(dòng)
通過(guò)參數(shù)-c,more命令不會(huì)滾動(dòng)頁(yè)面,而是直接清除之前的內(nèi)容,替換為下一頁(yè)的內(nèi)容。 With -c option, more will not scroll the page. It will clear the previous page and put the next page or lines there.
$ more -10 -c lynis.log
![](/d/20211018/212a83cc4b2afd87f6f2f1e8d728eb3a.gif)
如果按下空格鍵,下一頁(yè)會(huì)仍然有相同的大小。
![](/d/20211018/8a4ca075587134320aa59e7609ee72a9.gif)
忽略多余的空白行
使用參數(shù)-s來(lái)忽略多余的空白行,下面是個(gè)例子:
![](/d/20211018/14e5905fda547b2c7c684dfba8e88468.gif)
當(dāng)我們?cè)黾訁?shù)-s后:
$ more -s doc_30.txt
![](/d/20211018/9653782408c85862fefae72c2caea99d.gif)
查找字符串
如果你的日志文件非常大,那么在其中查找你想要的字符串并不是那么容易。more命令的查找功能可以幫你,通過(guò)參數(shù)+/string可以用來(lái)搜索字符串,找到的關(guān)鍵字會(huì)顯示在第一行。比如我們要在/var/logs/syslog文件中搜索“dhclient”,那more命令的格式:
$ more +/dhclient /var/log/syslog
![](/d/20211018/afed276b3833d7dfc618921e1f396e18.gif)
然后,如果要在文件中繼續(xù)搜索下一個(gè),只需要按下/按鈕,后面跟有關(guān)鍵字dhclient。
從指定行開始顯示
你也可以通過(guò)參數(shù)+數(shù)字來(lái)指定開始顯示的行,例如,我們有一個(gè)15行的文件:
![](/d/20211018/0790b9d0448c70eb218d2ad491dd4ea2.gif)
然后我們想從第5行開始顯示這個(gè)文件的內(nèi)容,命令看起來(lái)會(huì)是這個(gè)樣子:
$ more +5 doc_30.txt
![](/d/20211018/066bda690ac99ebe1b03ab4da2531ef5.gif)
可以顯示二進(jìn)制文件嗎?
答案是不行. more命令會(huì)提示這樣的信息,例如:
![](/d/20211018/db6a161c9566379fdeaddee3d6898130.gif)
結(jié)論
more是一個(gè)用來(lái)查看文本文件的基礎(chǔ)工具,它不能用來(lái)顯示二進(jìn)制文件。通常,我們可以通過(guò)命令man more或者more --help來(lái)獲取更多關(guān)于more怎么使用的信息。