命令行網頁瀏覽器雖不支持圖片影音等多媒體元素,web 功能也受到限制,但由於不依賴於 GUI 可使用的范圍更廣,同時具有加載速度快,消耗資源少的優勢。在終端使用命令行瀏覽器查看以文本為主的技術文檔可以測底避免被廣告環繞而影響閱讀體驗。結合瀏覽器本身的命令參數和 shell 腳本使用,還可以實現將 HTML 文檔轉換為純文本文件保存,自動獲取指定的網絡信息並生成文檔等。
下面簡單介紹一下三種最常用的命令行瀏覽器。
lynx
lynx 瀏覽器始於 1992 年,可謂是最古老的 web 瀏覽器。最初是為 Unix-like 平台設計,后逐步跨平台支持 DOS 和 Windows 等。第一次接觸 lynx 是在Slackware 中,很多 Linux 教材也常提到它,然后不知不覺就成了自己常用的 CLI 瀏覽器。

命令語法
lynx [options] [URL]
舉兩個栗子
直接打開博客園首頁
lynx https://www.cnblogs.com
將某 HTML 文檔里的內容保存到 txt 文本(這個方法除了轉換 txt 還可以解決某些網站登錄才讓復制和完全禁止復制等問題,不用改瀏覽器設置和清理源碼很方便。)
lynx -dump [URL] > yourfile.txt
最常用的操作
| 操作 | 按鍵或命令 |
| 獲取幫助 | --help |
| 移動到頁面中的下一個鏈接(用高亮度顯示) | 下方向鍵 |
| 移動到頁面上的前一個鏈接(用高亮度顯示) | 上方向鍵 |
| 跳轉到鏈接指向的地址 | 回車和右方向鍵 |
| 回到上一個頁面 | 左方向鍵 |
| 向下翻頁 | +、Page-Down、Space、Ctrl+f |
| 向上翻頁 | -、Page-Up、b、Ctrl+b |
| 移動到當前頁頂部 | Ctrl+a |
| 移動到當前頁底部 | Ctrl+e |
| 向下翻兩行 | Ctrl+n |
| 向上翻兩行 | Ctrl+p |
| 向下翻半頁 | ) |
| 向上翻半頁 | ( |
| 下載當前鏈接 | d |
| 退出 | q |
更多參數多查看 man 手冊和使用 --help
links
links 瀏覽器的使用方法與 lynx 基本相似,分支很多(比如 elinks),使用方也法大同小異。相對非常簡潔的 lynx 多了菜單和對話框功能,體驗更接近 GUI 主流的瀏覽器。在折騰 Gentoo Linux 的時候第一次接觸到它,后來又經常在 CentOS 里用到。遺憾的是使用了一段時間后發現在很多平台其對中文網頁的支持比較糟糕。

命令語法
links [options] [URL]
基本操作參考 lynx 部分即可。
w3m
w3m 顯示中文網頁的效果相對前二者要好,它支持表格、框架、SSL 連線、顏色,通常盡量呈現出網頁本來的編排。然而由於結合了 Vim 和 Emacs 的快捷鍵風格,操作起來需要一定的時間來學習和適應。

w3m 快捷鍵列表
頁面操作
| 操作 | 快捷鍵 |
| 向下翻頁 | SPC,C-v |
| 向上翻頁 | b,ESC v |
| 焦點向右 | l,C-f |
| 焦點向左 | h,C-b |
| 焦點向下 | j,C-n |
| 焦點向上 | k,C-p |
| 向下滾動一行 | J |
| 向上滾動一行 | K |
| 到行首 | ^,C-a |
| 到行尾 | $,C-e |
| 到下一個單詞 | w |
| 到上一個單詞 | W |
| 右移一屏 | > |
| 左移一屏 | < |
| 屏幕右移一列 | . |
| 屏幕左移一列 | , |
| 到首行 | g,M-< |
| 到末行 | G,M-> |
| 到指定行 | ESC g |
| 當前行居中 | Z |
| 當前列居中 | z |
| 轉到下個超鏈接 | TAB |
| 到上個超鏈接 | C-u,ESC TAB |
| 到第一個超鏈接 | [ |
| 到最后一個超鏈接 | ] |
超鏈接操作
| 操作 | 快捷鍵 |
| 打開超鏈接 | Enter |
| 鏈接另存為 | a, ESC Enter |
| 查看鏈接 url | u |
| 查看圖片 url | i |
| 查看圖片 | I |
| 圖片另存為 | ESC I |
| 標記字符串為錨點 | : |
| 查看當前頁面的 URL | c |
| 顯示當前頁面屬性 | = |
| 查看當前行號 | C-g |
| 查看歷史記錄 | C-h |
| 提交表單 | F |
| 用外部瀏覽器打開當前頁面 | M |
| 用外部瀏覽器打開鏈接 | ESC M |
| 標記 ID 串為錨點 | ESC |
文件/流操作
| 操作 | 快捷鍵 |
| 打開 URL | U |
| 打開文件 | V |
| 執行外部命令並導入 | @ |
| 執行外部命令並瀏覽 | # |
緩存操作
| 操作 | 快捷鍵 |
| 返回 | B |
| 查看源代碼 | v |
| 選擇緩存 | s |
| 編輯緩存代碼 | E |
| 重畫屏幕 | C-l |
| 刷新 | R |
| 頁面另存為 | S |
| 源碼另存為 | ESC s |
| 編輯圖片 | ESC e |
緩存選擇模式
| 操作 | 快捷鍵 |
| 上一緩存 | k, C-p |
| 下一緩存 | j, C-n |
| 刪除當前緩存 | D |
| 轉至選擇的緩存 | Enter |
書簽操作
| 操作 | 快捷鍵 |
| 打開書簽 | ESC b |
| 添加當前頁到書簽 | ESC a |
搜索
| 操作 | 快捷鍵 |
| 向前搜索 | /,C-s |
| 向后搜索 | ?,C-r |
| 下一個 | n |
| 上一個 | N |
| 打開/關閉 循環搜索 | C-w |
標記
| 操作 | 快捷鍵 |
| 設定/取消 標記 | C-SPC |
| 轉至上一標記 | ESC p |
| 轉至下一標記 | ESC n |
| 使用正則表達式標記 | " |
雜項
| 操作 | 快捷鍵 |
| 執行外部命令 | ! |
| 幫助 | H |
| 設置選項 | o |
| 顯示接受到的 cookie | C-k |
| 停止 | C-c |
| 掛起(退出) | C-z |
| 退出(需確認) | q |
| 退出而不確認 | Q |
行編輯模式
| 操作 | 快捷鍵 |
| 光標向后 | C-f |
| 光標向前 | C-b |
| 刪除前一字符 | C-h |
| 刪除當前字符 | C-d |
| 刪除光標后所有內容 | C-k |
| 刪除光標前所有內容 | C-u |
| 光標到行首 | C-a |
| 光標到行尾 | C-e |
| 取得歷史記錄中的前一個詞 | C-p |
| 取得歷史記錄中的后一個詞 | C-n |
| 自動完成文件名 | TAB,SPC |
| 確定 | Enter |
