less 是「more 的進化版」,作者 Mark Nudelman 依據「less is more」哲學設計。核心優勢:不預載整個檔案、雙向捲動、強大搜尋、豐富導航,是系統管理、開發調試、日誌分析的首選瀏覽器。
核心優勢對比
| 特性 | more | less |
| 啟動速度(大檔) | 慢(預載全檔) | 極快(按需讀取) |
| 向上捲動 | 不支援/部分支援 | 完整支援 |
| 向上搜尋 | 不支援 | 支援 ?pattern |
| 行號顯示 | 無 | -N 參數 |
| 標記導航 | 無 | 支援 m/' |
| 編輯器整合 | v 呼叫 vi | v 呼叫 $EDITOR |
| 多檔案切換 | 基本 | :n/:p 完整支援 |
啟動參數精選
less [選項] [檔案]...
| 參數 | 說明 | 推薦場景 |
-N | 顯示行號 | 程式碼/日誌分析必開 |
-S | 長行截斷不換行(←→ 橫向捲動) | 寬日誌/CSV 必備 |
-i | 搜尋忽略大小寫 | 預設行為,智慧大小寫 |
-I | 完全忽略大小寫 | 強制不區分大小寫 |
-R | 解析 ANSI 色彩碼 | 彩色日誌/輸出必加 |
-F | 單螢幕內容直接退出 | 腳本整合友善 |
-X | 退出不清屏(保留內容) | 需要參考上下文時 |
-M | 詳細提示(百分比、行號、檔名) | 資訊豐富模式 |
+F | 啟動即進入追蹤模式(同 tail -f) | 即時日誌監控 |
+/pattern | 開啟檔案並搜尋 pattern | 快速定位關鍵字 |
互動命令完整速查表
導航系統
| 類別 | 按鍵 | 動作 |
| 全螢幕 | Space / Ctrl+F / PgDn | 向下一頁 |
| b / Ctrl+B / PgUp | 向上一頁 |
| d / Ctrl+D | 向下半頁 |
| u / Ctrl+U | 向上半頁 |
| 單行 | j / ↓ / Enter | 向下一行 |
| k / ↑ / y | 向上一行 |
| J / K | 向下/上一行但不捲動螢幕 |
| 跳轉 | g / Home / < | 跳到第一行 |
| G / End / > | 跳到最後一行 |
| NG | 跳到第 N 行 |
| p% | 跳到 p% 處 |
搜尋系統
| 按鍵 | 動作 |
| /pattern | 向下搜尋(支援正則) |
| ?pattern | 向上搜尋(支援正則) |
| n | 重複上次搜尋(同方向) |
| N | 反向重複上次搜尋 |
| ESC-u | 關閉搜尋高亮 |
標記導航(大檔案神技)
| 按鍵 | 動作 |
| ma-z | 設定標記 a-z(如 ma) |
| 'a-z | 跳轉到標記(如 'a) |
| '' | 跳回上一位置 |
檔案與環境控制
| 按鍵 | 動作 |
| :n | 切換到下一個檔案 |
| :p | 切換到上一個檔案 |
:e 檔案 | 開啟新檔案 |
| :d | 從列表移除當前檔案 |
| v | 用 $EDITOR 編輯當前檔案 |
| h / H | 顯示幫助畫面(極詳細) |
&pattern | 只顯示匹配行(類似 grep) |
| q / Q / ZZ | 退出 less |
實戰場景範例
場景 1:程式碼審查與除錯
less -N -R -S src/main.c
# -N 行號、-R 色彩、-S 不換行
# 搜尋函數:/main
# 標記關鍵處:ma, mb
# 跳轉:'a, 'b

場景 2:進程列表管道瀏覽
ps aux | less -N -S
# 行號對齊、長行不換行、左右鍵捲動查看完整命令列

場景 3:命令歷史瀏覽
history | less -N
# 快速翻閱、搜尋歷史命令
場景 4:即時日誌監控(替代 tail -f)
less +F /var/log/nginx/access.log
# 按 Ctrl+C 退出追蹤模式進入瀏覽模式
# 再按 Shift+F 重新進入追蹤
場景 5:多檔案對比瀏覽
less log2013.log log2014.log
# :n 切換下一檔,:p 切換上一檔
# :d 從列表移除當前檔

進階技巧與環境整合
1. 環境變數預設參數
export LESS="-N -R -S -i -M -X"
# 永久生效加入 ~/.bashrc
2. 語法高亮(需 source-highlight)
# 安裝
apt install source-highlight # Debian/Ubuntu
yum install source-highlight # RHEL/CentOS
# 配置
export LESSOPEN="| /usr/share/source-highlight/src-hilite-lesspipe.sh %s"
export LESS=" -R "
3. 作為 Git Pager
git config --global core.pager "less -N -R -S -F -X"
# 短輸出不分頁、長輸出分頁、保留色彩
4. Man Page 美化
export MANPAGER="less -N -R -S"
# man 頁面顯示行號、色彩、不換行
5. 管道輸入技巧
# 標準輸入時無法用 :n 切換檔案
cat huge.log | less -N
# 需多檔案時直接傳參數
less file1.log file2.log
常見問題排查
| 問題 | 原因 | 解決 |
| 中文亂碼 | 終端編碼/locale 設定 | export LANG=zh_TW.UTF-8 |
| 色彩顯示異常 | 未加 -R 參數 | less -R 或 export LESS=-R |
| 無法向上捲動 | 輸入來自管道 | 直接 less 檔案而非管道 |
| 搜尋不支援正則 | 預設支援,特殊字元需轉義 | 用 \ 轉義元字元 |
| 退出後螢幕內容消失 | 預設清屏行為 | 加 -X 參數保留 |
小結
less 是 Linux 世界最強大的文字瀏覽器,掌握 -N -R -S 三大核心參數、雙向搜尋、標記導航、+F 追蹤模式、多檔案切換、編輯器整合,能將日誌分析、程式碼閱讀、系統排錯效率提升數倍。建議立即配置 export LESS="-N -R -S -i -M" 到 ~/.bashrc,享受專業級瀏覽體驗。