在 Linux 和 Unix 的世界裏,我們經常需要通過終端與各種文本文件打交道,無論是查看日誌、閲讀代碼還是檢查命令輸出。當文件內容遠超終端屏幕的高度時,兩個經典的工具便閃亮登場:moreless。它們是我們命令行武器庫中不可或缺的“分頁器”。

今天,我們就來深入探討這兩位終端裏的“閲讀專家”。

一、 先來者:more 命令

more 是較早出現的分頁工具,其名字直白地表達了它的功能:一次顯示“更多”內容

1. 基本用法

more filename.txt

或者,通過管道接收其他命令的輸出:

cat long_file.txt | more

2. 核心特點與操作 more 的工作方式非常簡單:

  • 向下翻頁:按 空格鍵f 鍵可以向前(向下)翻一頁。
  • 向下翻行:按 回車鍵 可以向下前進一行。
  • 退出:看完內容後,按 q 鍵即可退出。

3. more 的侷限性 more 的設計初衷是“單向”的。在大多數傳統實現中,你無法向上滾動去查看已經翻過去的內容。正所謂“時光不能倒流,more 不能回看”。儘管一些現代系統的 moreless 的軟鏈接,功能更強大,但就其標準行為而言,回看是它的主要短板。


二、 後來居上者:less 命令

less 的出現是為了彌補 more 的不足。它的名字源於一句經典的 Unix 哲學玩笑:“less is more”。事實證明,less 確實比 more 功能更多、更強大,成為了當今事實上的標準分頁器

1. 基本用法more 類似:

less filename.txt

或通過管道:

history | less

2. 為什麼 less 更受青睞?

less 的核心優勢在於它的雙向導航能力和豐富的交互功能。

強大的導航操作:

  • 翻頁
    • 空格鍵f:向下翻一頁。
    • b 鍵:向上翻一頁。這是 more 沒有的關鍵功能!
  • 行滾動
    • 回車鍵j:向下移動一行。
    • k 鍵:向上移動一行。
  • 搜索(極其實用):
    • /keyword:向下搜索“keyword”。按 n 跳轉到下一個匹配項,按 N 跳轉到上一個匹配項。
    • ?keyword:向上搜索“keyword”。
  • 快速跳轉
    • g:跳轉到文件開頭
    • G:跳轉到文件末尾
    • 10g:跳轉到第 10 行。
  • 其他實用功能
    • F跟隨模式。類似於 tail -f,可以實時查看不斷增長的文件(如日誌文件),按 Ctrl+C 退出此模式。
    • -N:啓動時加上 -N 選項可以顯示行號。
      less -N logfile.log
      
    • -S:啓動時加上 -S 選項可以防止長行換行,便於查看寬表格數據。
    • v:在當前位置,使用系統默認編輯器(如 Vim)打開文件進行編輯,退出編輯器後返回 less
    • h:隨時按下可以查看完整的幫助文檔。

3. 退出 lessmore 一樣,只需按下 q 鍵。


三、 more vs less:終極對決

特性 more less
向後滾動 不支持(或受限) 支持(核心優勢)
向前滾動 支持(空格鍵) 支持(空格鍵)
搜索功能 基礎(通常只支持向下) 強大(支持上下搜索,高亮匹配)
行號顯示 可能不支持或功能弱 支持(使用 -N 選項)
實時跟蹤 不支持 支持(使用 F 鍵)
啓動速度 略快(因為功能簡單) 很快
交互性 簡單 非常豐富,類似 Vim
流行度 舊腳本中常見 現代使用中的絕對主流

結論: 對於絕大多數用户和場景,less 是毫無爭議的更好選擇。它的雙向導航和強大搜索功能徹底解決了 more 的痛點。


四、 實踐場景與技巧

  1. 查看日誌並實時跟蹤

    # 先查看歷史日誌,然後可以按 `F` 進入實時跟蹤模式
    less /var/log/syslog
    
  2. 分析命令的長輸出

    # 仔細分析 `ps aux` 的輸出,可以上下滾動搜索特定進程
    ps aux | less
    
  3. 閲讀代碼文件

    # 帶行號查看源代碼,方便定位
    less -N main.c
    
  4. 檢查壓縮文件(less 獨有魔法) less 可以直接查看許多壓縮格式的文件內容,無需先解壓!

    less file.gz    # 查看 gzip 文件
    less file.bz2   # 查看 bzip2 文件
    

    它會自動調用相應的解壓程序並在內存中展示內容,非常方便。

五、 總結

  • more 是分頁器的開創者,簡單直接,但功能有限。
  • lessmore 的超級增強版,提供了全功能的雙向文件瀏覽體驗。

給你的建議:

忘掉 more,習慣使用 less

在終端中,效率就是一切。less 所提供的自由瀏覽和強大搜索能力,能讓你在分析文本時如虎添翼。許多系統甚至已經將 more 設置為 less 的別名,當你輸入 more 時,實際運行的卻是 less

所以,下次當你需要查看比一屏更長的內容時,請毫不猶豫地輸入 less,盡情享受它帶來的便捷與高效吧!