more、less 和 most 的區別

2018-11-19 23:21:00

如果你是一個 Linux 方面的新手,你可能會在 morelessmost 這三個命令列工具之間產生疑惑。在本文當中,我會對這三個命令列工具進行對比,以及展示它們各自在 Linux 中的一些使用例子。總的來說,這幾個命令列工具之間都有相通和差異,而且它們在大部分 Linux 發行版上都有自帶。

我們首先來看看 more 命令。

more 命令

more 是一個老式的、基礎的終端分頁閱讀器,它可以用於開啟指定的檔案並進行互動式閱讀。如果檔案的內容太長,在一屏以內無法完整顯示,就會逐頁顯示檔案內容。使用確認鍵或者空格鍵可以捲動瀏覽檔案的內容,但有一個限制,就是只能夠單向捲動。也就是說只能按順序往下翻頁,而不能進行回看。

更正

有的 Linux 使用者向我指出,在 more 當中是可以向上翻頁的。不過,最原始版本的 more 確實只允許向下翻頁,在後續出現的較新的版本中也允許了有限次數的向上翻頁,只需要在瀏覽過程中按 b 鍵即可向上翻頁。唯一的限制是 more 不能搭配管道使用(如 ls | more)。(LCTT 譯註:此處原作者疑似有誤,譯者使用 more 是可以搭配管道使用的,或許與不同 more 版本有關)

q 即可退出 more

更多範例

開啟 ostechnix.txt 檔案進行互動式閱讀,可以執行以下命令:

$ more ostechnix.txt

在閱讀過程中,如果需要查詢某個字串,只需要像下面這樣輸入斜槓(/)之後接著輸入需要查詢的內容:

/linux

n 鍵可以跳轉到下一個匹配的字串。

如果需要在檔案的第 10 行開始閱讀,只需要執行:

$ more +10 file

就可以從檔案的第 10 行開始顯示檔案的內容了。

如果你需要讓 more 提示你按空格鍵來翻頁,可以加上 -d 引數:

$ more -d ostechnix.txt

如上圖所示,more 會提示你可以按空格鍵翻頁。

如果需要檢視所有選項以及對應的按鍵,可以按 h 鍵。

要檢視 more 的更多詳細資訊,可以參考手冊:

$ man more

less 命令

less 命令也是用於開啟指定的檔案並進行互動式閱讀,它也支援翻頁和搜尋。如果檔案的內容太長,也會對輸出進行分頁,因此也可以翻頁閱讀。比 more 命令更好的一點是,less 支援向上翻頁和向下翻頁,也就是可以在整個檔案中任意閱讀。

在使用功能方面,lessmore 命令具有更多優點,以下列出其中幾個:

  • 支援向上翻頁和向下翻頁
  • 支援向上搜尋和向下搜尋
  • 可以跳轉到檔案的末尾並立即從檔案的開頭開始閱讀
  • 在編輯器中開啟指定的檔案

更多範例

開啟檔案:

$ less ostechnix.txt

按空格鍵或確認鍵可以向下翻頁,按 b 鍵可以向上翻頁。

如果需要向下搜尋,在輸入斜槓(/)之後接著輸入需要搜尋的內容:

/linux

n 鍵可以跳轉到下一個匹配的字串,如果需要跳轉到上一個匹配的字串,可以按 N 鍵。

如果需要向上搜尋,在輸入問號(?)之後接著輸入需要搜尋的內容:

?linux

同樣是按 n 鍵或 N 鍵跳轉到下一個或上一個匹配的字串。

只需要按 v 鍵,就會將正在閱讀的檔案在預設編輯器中開啟,然後就可以對檔案進行各種編輯操作了。

h 鍵可以檢視 less 工具的選項和對應的按鍵。

q 鍵可以退出閱讀。

要檢視 less 的更多詳細資訊,可以參考手冊:

$ man less

most 命令

most 同樣是一個終端閱讀工具,而且比 moreless 的功能更為豐富。most 支援同時開啟多個檔案。你可以在開啟的檔案之間切換、編輯當前開啟的檔案、迅速跳轉到檔案中的某一行、分屏閱讀、同時鎖定或捲動多個螢幕等等功能。在預設情況下,對於較長的行,most 不會將其截斷成多行顯示,而是提供了左右捲動功能以在同一行內顯示。

更多範例

開啟檔案:

$ most ostechnix1.txt

e 鍵可以編輯當前檔案。

如果需要向下搜尋,在斜槓(/)或 Sf 之後輸入需要搜尋的內容,按 n 鍵就可以跳轉到下一個匹配的字串。

如果需要向上搜尋,在問號(?)之後輸入需要搜尋的內容,也是通過按 n 鍵跳轉到下一個匹配的字串。

同時開啟多個檔案:

$ most ostechnix1.txt ostechnix2.txt ostechnix3.txt

在開啟了多個檔案的狀態下,可以輸入 :n 切換到下一個檔案,使用 鍵選擇需要切換到的檔案,按確認鍵就可以檢視對應的檔案。

要開啟檔案並跳轉到某個字串首次出現的位置(例如 linux),可以執行以下命令:

$ most file +/linux

h 鍵可以檢視幫助。

按鍵操作列表

移動:

  • 空格鍵或 D 鍵 – 向下捲動一屏
  • DELETE 鍵或 U 鍵 – 向上捲動一屏
  • 鍵 – 向下移動一行
  • 鍵 – 向上移動一行
  • T 鍵 – 移動到檔案開頭
  • B 鍵 – 移動到檔案末尾
  • > 鍵或 TAB 鍵 – 向右捲動螢幕
  • < 鍵 – 向左捲動螢幕
  • 鍵 – 向右移動一列
  • 鍵 – 向左移動一列
  • J 鍵或 G 鍵 – 移動到某一行,例如 10j 可以移動到第 10 行
  • % 鍵 – 移動到檔案長度某個百分比的位置

視窗命令:

  • Ctrl-X 2Ctrl-W 2 – 分屏
  • Ctrl-X 1Ctrl-W 1 – 只顯示一個視窗
  • O 鍵、Ctrl-X O – 切換到另一個視窗
  • Ctrl-X 0 – 刪除視窗

檔案內搜尋:

  • S 鍵或 f 鍵或 / 鍵 – 向下搜尋
  • ? 鍵 – 向上搜尋
  • n 鍵 – 跳轉到下一個匹配的字串

退出:

  • q 鍵 – 退出 most ,且所有開啟的檔案都會被關閉
  • :N:n – 退出當前檔案並檢視下一個檔案(使用 鍵、 鍵選擇下一個檔案)

要檢視 most 的更多詳細資訊,可以參考手冊:

$ man most

總結

more – 傳統且基礎的分頁閱讀工具,僅支援向下翻頁和有限次數的向上翻頁。

less – 比 more 功能豐富,支援向下翻頁和向上翻頁,也支援文字搜尋。在開啟大檔案的時候,比 vi 這類文字編輯器啟動得更快。

most – 在上述兩個工具功能的基礎上,還加入了同時開啟多個檔案、同時鎖定或捲動多個螢幕、分屏等等大量功能。

以上就是我的介紹,希望能讓你通過我的文章對這三個工具有一定的認識。如果想了解這篇文章以外的關於這幾個工具的詳細功能,請參閱它們的 man 手冊。