less (Unix)

用來檢視文字檔案的命令列工具

lessUNIXMicrosoft Windows类Unix系统上的終端機分頁檢視程式,用來一次用整個螢幕顯示的範圍展示(但不能編輯)文本文件的內容。其與more類似,但可以向前或向後瀏覽檔案的延伸功能。與大多數的Unix文字編輯器或檢視程式不同,less在啟動時不會一次讀取整個檔案,如此可以加快大檔案的載入速度。

less
Xterm中的less輸出
Xterm中的less輸出
開發者Mark Nudelman
首次发布1984年,​40年前​(1984[1]
当前版本
  • 643 (2023年8月12日;穩定版本)[2]
編輯維基數據鏈接
源代码库github.com/gwsw/less
编程语言C
操作系统跨平臺
类型系统软件
许可协议雙重授權GNU GPLv3與自訂的BSD風格授權條款
网站www.greenwoodsoftware.com/less/
www.gnu.org/software/less/

歷史 编辑

Mark Nudelman最初在1983至1985年間編寫了less,當時是因為需要可以向後捲動顯示文字的more。原本less是為Unix開發的,但是其已被移植到其他許多作業系統,其中包含了MS-DOSMicrosoft WindowsOS/2OS-9英语OS-9,以及如Linux等的类Unix系统[3]。Nudelman至今仍在維護它。

為了協助記住lessmore的不同,有個常見的笑話是"less > more",代表了less的功能比more更多。類似的說法是"less is more, more or less"(「少即是多,或多或少」)。

用法 编辑

可以傳遞選項給less以改變其行為,例如要在螢幕上顯示的行數。部份選項可能會因作業系統而異。在less顯示檔案時,也可以使用多種指令來瀏覽檔案。這些指令是以morevi使用的指令為基礎。並可在檔案中搜尋符合的字元模式。

預設情況下,less會將檔案內容顯示到標準輸出(一次顯示一個螢幕的範圍)。如果省略檔案名稱參數,則其會顯示來自標準輸入的內容(通常是另一個指令透過管道的輸出)。如果輸入被重新導向到終端機以外的任何東西,例如另一個指令的管道,則此時less的行為會類似於cat

指令句法為:

less [選項] [檔案名稱]

常用選項 编辑

  • -g:僅突顯任何搜尋字串的目前符合項目。
  • -i:搜尋時不區分大小寫。
  • -m:顯示更詳細的提示資訊,包含檔案位置。
  • -N:顯示行號(檢視源代码時較有用)。
  • -x3:將定位停駐點(每個定位字元的欄數)設定為指定的數字(在此例中為3,檢視源代码時較有用)。
  • -S:停用過長行的換行。較長的行可用橫向捲動來檢視。
  • -X:結束less時,將檔案內容保留在螢幕上。
  • -?:顯示說明。
  • --follow-name:跟隨模式,用來檢視輸出中的紀錄檔。

常用指令 编辑

按鍵 指令
Space bar 下一頁
d 下半頁
b 前一頁
u 前半頁
v 編輯內容
j ↵ Enter 下ㄧ行
k 前ㄧ行
Home 檔案頂部
End 檔案結尾
F 跟隨模式(供紀錄檔使用)。Follow Mode (for logs). Interrupt to abort.
g < 第一行
G > 最後ㄧ行
nG 跳到第n
/text 向前搜尋text。文字會被視為正则表达式
?text 如同/,但為向後搜尋。
n 下一個符合的搜尋結果
N 上一個符合的搜尋結果
Escu 關閉符合突顯(請見-g命令列選項)
-c 切換選項c,例如-i會切換是否要在搜尋時忽略大小寫
mc 設定標記c
'c 跳到標記c
= Ctrl+G 檔案資訊
:n 下一個檔案
:p 上一個檔案
h 說明。這會使用less顯示,q離開。
q 離開

範例 编辑

less -M readme.txt           # 讀取 "readme.txt"
less +F /var/log/mail.log    # 供紀錄檔使用的跟隨模式
file * | less                # 簡易檔案分析
less -I -g void *.c          # 在所有 .c 檔案不區分大小寫搜尋"void"

參見 编辑

參考資料 编辑

  1. ^ Mark Nudelman. less, a paginator. 1985-06-02 [2021-07-17]. (原始内容存档于2021-07-17). 
  2. ^ https://www.greenwoodsoftware.com/less/news.643.html.
  3. ^ Less FAQ. [2021-07-17]. (原始内容存档于2021-05-07). 

外部連結 编辑