像日誌或源代碼這樣的大文件可能會多達成千上萬行,這使得在文件內導航很是困難,尤爲是在終端上。此外,大多數終端仿真器的回滾緩衝區只有幾百行。這可能使得沒法使用打印到標準輸出的實用程序(例如 cat
、head
和 tail
)在終端中瀏覽大型文件。在計算時代的早期,程序員經過開發用於以虛擬「頁面」形式顯示文本的實用程序來解決這些問題,該實用程序被形象地描述爲分頁器。html
分頁器提供了許多使文本文件導航更加簡單的功能,包括滾動、搜索功能,以及做爲命令管道的一部分而具備的功能。與大多數文本編輯器相比,某些終端分頁器不須要加載整個文件便可查看,這使得它們更快,特別是對於很是大的文件。mysql
在現代 Linux 計算時代,終端仿真器比以往更加複雜。它們提供了對繽紛的色彩、終端尺寸調整以及許多其它功能的支持,這些功能使得辨析屏幕上的文本變得更加輕鬆和高效。從諸如 pg
和 more
這樣極其簡單的 UNIX 實用程序,到涵蓋各類使用場景的、功能普遍的複雜程序,終端分頁器也經歷了相似的演變。考慮到這一點,咱們或「多」或「少」地彙總了一些最受歡迎的終端分頁實用程序的列表。linux
more
是最先的分頁器之一,最初在 3.0 BSD 版本中出現。more
的第一個實現由 Daniel Halbert 編寫於 1978 年。從那時起,more
已成爲許多操做系統的廣泛功能,包括 Windows、OS/2,MacOS 和大多數 Linux 發行版。git
more
是一個很是輕量級的實用程序。util-linux 軟件包中提供的版本只有不到 2100 行的 C 語言代碼。可是,這種較小的代碼大小是有代價的。大多數版本的 more
的功能相對有限,不支持向後滾動或搜索。命令也一樣精簡:按回車鍵可滾動一行,或按空格鍵滾動一頁。其餘一些有用的命令包括:程序員
v
鍵以在默認的終端編輯器中打開當前文件。/模式
可讓你搜索下一個出現的「模式」。more
時,:n
和 :p
將分別打開下一個和上一個文件less
最初被認爲是 more
的繼承者,解決了它的一些侷限性。less
以 more
的功能爲基礎,增長了許多有用的功能,包括向後滾動、向後搜索。它也更適合窗口大小調整。github
less
中的導航方式與 more
相似,儘管 less
也從 vi
編輯器借用了一些有用的命令。用戶可使用熟悉的主行導航鍵(LCTT 譯註:指 左手的 A
、S
、D
、F
和右手的 J
、K
、L
、;
,及大拇指所在的空格鍵)瀏覽文檔。看一眼 less
的手冊頁,就會發現至關多的可用命令。一些特別有用的示例包括:sql
?模式
可以讓你在文件中向後搜索「模式」。&模式
僅顯示具備「模式」特徵的行。這對於發現本身常常要使用 $ grep 模式 | less
的人特別有用。-s
(或 –sqeueeze-blank-lines
)標誌來調用 less
,使你能夠查看空白較大的文本文件。 多個換行符被簡化爲單箇中斷行。s 文件名
將輸入保存到 文件名
中(若是輸入來自管道)。-o 文件名
標誌來調用 less
將把 less
的輸入保存到 文件名
中。 隨着這些加強的功能也帶來了體積的略微增大。在寫做本文時,Fedora 隨附的 less
版本大約有 25000 行源代碼。固然,除非是受存儲限制最大的系統,在全部其它的系統上這都不是問題。less
比 more
功能更多。less
旨在擴展 more
的現有功能,而 most
採用另外一種方法。most
不是在傳統的單個文件視圖上進行擴展,而是使用戶可以將其視圖拆分爲「窗口」。每一個窗口以不一樣的查看模式包含不一樣的文件。shell
重要的是,most
考慮了其輸入文本的寬度。默認的查看模式是不換行的(less
中的 -S
參數),此功能在處理「寬」文件時特別有用。儘管對於某些用戶來講,這些設計決策可能表明着與傳統的重大偏離,但最終結果卻很是強大。數據庫
除了 more
提供的導航命令外,most
使用直觀的助記符進行文件導航。例如,t
移至文件的頂部(Top),而 b
移至底部(Bottom)。這樣,不熟悉 vi
及其衍生品的用戶會發現 most
很是簡單好用。vim
most
的不同凡響之處在於它可以快速輕鬆地拆分窗口和上下文。例如,可使用如下命令打開兩個不一樣的文本文件:
$ most textFile1.txt textFile2.txt
複製代碼
爲了水平拆分屏幕,請使用組合鍵 Ctrl+x, 2
或 Ctrl+w, 2
。 :n
命令將在給定窗口中打開下一個文件參數,提供兩個文件的分屏視圖:
若是在一個窗口中關閉自動換行,它不會影響其餘窗口的行爲。(行末的)\
字符表示換行或摺疊,而 $
字符表示文件超出了當前窗口的限制。
使用 SQL 數據庫的人員一般須要可以一目瞭然地檢查數據庫的內容。許多流行的開源 DBMS(例如 MySQL 和 PostGreSQL)的命令行界面都使用系統默認的分頁器來查看沒法顯示在單個屏幕上的輸出。諸如 more
和 less
之類的實用程序是圍繞呈現文本文件的想法而設計的,可是對於更結構化的數據,還有一些不足之處。天真的文本分頁程序沒有寬的表格數據的概念,當處理大型查詢時,這可能會使人感到沮喪。
pspg 試圖經過爲用戶提供在查看時凍結列、原位排序數據併爲輸出着色的功能來解決此問題。儘管pspg
最初是專門用做 psql
的分頁器的替代品,但該程序還支持查看 CSV 數據,而且是 mysql
和 pgcli
的合適的直接替代品。
在現代的顏色鮮明的終端中,無休止的黑色頁面上的灰色文字感受太過期了。強大的文本編輯器(如 vim
)提供的語法高亮顯示選項對於瀏覽源代碼頗有用。此外,vim
提供的搜索功能遠遠超過了競爭對手。考慮到這一點,vim
附帶了一個 shell 腳本 less.sh
,該腳本可使 vim
替代傳統的分頁器。
要將 vim
設置爲手冊頁的默認分頁器,請將如下內容添加到 shell 的配置中(若是使用默認的bash shell 的話是 ~/.bashrc
):
export MANPAGER="/bin/sh -c \"col -b | vim -c 'set ft=man ts=8 nomod nolist nonu noma' -\""
複製代碼
或者,要將 vim
設置爲系統範圍內的默認分頁器,請找到 less.sh
腳本。(你能夠在當前 Fedora 系統上的 /usr/share/vim/vim81/macros/
找到它。)將此位置導出爲變量 PAGER
以將其設置爲默認值,或者將其設置爲別名以顯式調用它。
via: fedoramagazine.org/5-cool-term…
做者:Jacob Burns 選題:lujun9972 譯者:wxy 校對:wxy