Unix 常用指令 – less

這裡討論的內容以 FreeBSD 為主,可能會與 linux 系的不同。

在 FreeBSD 上,如果我們想看一份文件檔的內容,而且又不想要殺雞用牛刀的用文字編輯器(如:vim)來看的話, 那麼 cat 指令就是一個不錯的選擇……嗎?不是,或者說很多情況不是。

理由很簡單,因為這篇文章的標題不是「FreeBSD 常用指令 – cat」……喔!不是,是因為一般來說, 文件檔的內容常常都會超過一個畫面的大小,除非你是「神之眼」,不然前面的內容「咻~」一下就過了, 誰看得清楚?所以就這個例子來說,我們通常會改用 more 或是 less 來取代 cat。

more 和 less 就功能而言,其實和 cat 很像,一樣是將文件的內容輸出到螢幕上。 不過不像 cat 會一次性的把所有內容都丟到螢幕上,而是顯示完一整個畫面的內容就停住, 然後讓你可以透過方向鍵上下捲動來查看剩餘的內容。

比如說假如有一個檔案叫做「小雞的美食清單」,裡面內容很多,沒辦法用一個畫面顯示,這時我們就可以這樣下指令:

less 小雞的美食清單
Code language: Shell Session (shell)

這樣一來,畫面就會停在文件的最開頭,然後等看到畫面的內容看完了, 再依使用者的要求捲動頁面(使用方向鍵上下或用 s 和 j 上下)。

若想離開這個狀態,只要再按下 q 即可來離開。

至於 less 和 more 的差別是什麼呢?誰管他? 這些指令是拿來用的,不是來背歷史的。只要記得一件事:

「less is more than more」

這句話的意思大致是說 less 有的功能比 more 還多, 所以說 less 可以說是 more 的進階版,所以用 less 就對了。

實際上因為沒道理把兩種版本卻功能一樣的指令留下來, 所以很多作業系統的 less 和 more 其實是同一個的檔案(如:FreeBSD)。

diff /usr/bin/less /usr/bin/more
Code language: Shell Session (shell)

不信的話,可以用上面的指令試試看,就可以發現是兩個指令是一樣的內容(FreeBSD)。

老樣子,下面是常用的功能列表:

按鍵說明
g回到文件最頂端
G來到文件最底端
/往下搜尋關鍵字
?往上搜尋關鍵字
:尋找某一行

由於 less 的指令是來自 more 和 vi,所以熟悉 vi 的使用者,想必會對這些指令親切感才是。

發表迴響