與more的區別 more在man手冊中的英文原文是文件熟讀過濾器(file perusal filter),其實可以理解為一種文本查看器。 它存在一些缺點: 必須事先載入完整個文件。因此在遇到大文件的時候,需要等待。 翻閱到文件尾部的時候自動退出。 man手冊也有說明more這個命令已經是比較遠古 ...
與more的區別
more在man手冊中的英文原文是文件熟讀過濾器(file perusal filter),其實可以理解為一種文本查看器。
它存在一些缺點:
- 必須事先載入完整個文件。因此在遇到大文件的時候,需要等待。
- 翻閱到文件尾部的時候自動退出。
man手冊也有說明more這個命令已經是比較遠古的了,建議大家使用less這個提供了更多(more)功能的工具。
This version is especially primitive. Users should realize that less(1) provides more(1) emulation plus extensive enhancements.
簡介
less命令類似於more命令,但是它支持向上翻頁和向下翻頁。
另外,less在開始前不需要讀取整個輸入文件,所以在讀取大文件的時候它啟動的速度要快於文本編輯器vi的。
由於less使用的是termcap,因此它可以運行在多種終端之上。即便是在硬拷貝(hardcopy)終端上也可以具備有限的支持。
less中的命令是基於more和vi的。可以在部分命令之前加上一個十進位的數字,下文用N來表示。
less內部常用命令說明
註意:在下文描述中,^X表示Ctrl+X,Ctrl和x按鍵要同時按住;ESC表示ESCAPE按鍵;例如ESC-v表示先按ESCAPE,再按v。
基本相關
- h:等同於less --help,查看簡要幫助,較實用。
- q:退出幫助或者退出less查看器。
移動相關
- j/k:向下/上滾動1行,可帶N,表示滾動N行。
- d/u:向下/上滾動N行,預設是0.5個屏幕。如果帶N了,那麼N就成為後來的預設值。
- SPACE:向下滾動N行,預設是1個屏幕。如果N超出了屏幕大小,那麼僅顯示最後的屏幕。
- b:向上滾動N行,預設是1個屏幕。如果N超出了屏幕大小,那麼僅顯示最後的屏幕。
註意:上述滾動屏幕的命令,可以設置翻屏的大小,叫做視窗大小,可通過-z選項設置,亦可通過z和w命令。
跳轉相關
- g/G:帶N的時候,Ng和NG都表示跳轉至文件的第N行。不同的是,在不帶N的預設情況下g表示首行,G表示尾行。如果文件較大且行跳躍幅度較大,那麼需要等待文件載入。
- {:如果屏幕的首行是“{”,那麼該命令可以用於尋找對應的“}”,並將其顯示在屏幕的底部。如果屏幕首行有多個“{”,那麼“N{”表示搜索首行第N個“{”對應的“}”。“(”和“[”也是類似的用法。
- }:如果屏幕的底行是“}”,那麼該命令可以用於尋找對應的“{”,並將其顯示在屏幕的首部。如果屏幕底行有多個“}”,那麼“N}”表示搜索首行第N個“}”對應的“{”。“)”和“]”也是類似的用法。
搜索相關
- /pattern:從文件當前位置向下尋找pattern,pattern是一個正則表達式。會從當前屏幕所顯示的第一行開始搜索(不過-a和-j選項會改變此特性)。當以某些字元開頭的時候,會有特殊的含義。如果想表示特殊字元本身的話,可以使用反斜線“”轉義。
- ^N or !:搜索不匹配pattern的行。
- ^E or *:搜索多個文件。搜索完當前文件未找到pattern的話,繼續搜索下一個文件。
- ^K:正常情況,開始搜索後,會將第一個匹配到的pattern顯示到第一行。而^K可以保持當前的位置不變,不將其顯示到第一行,但仍然會高亮顯示匹配的文本。
- ^R:搜索純文本,而非正則表達式。
- ?pattern:和/pattern類似,區別在於它是從文件當前位置向上尋找pattern。其他特性和/pattern一樣。
- n/N:n表示搜索下一個,N表示搜索上一個,這裡的下一個指的是pattern搜索順序的下一個。
- &pattern:僅顯示匹配的行。
- ESC-u:搜索高亮顯示的開關。
less命令的選項
less -?
less --help
less -V
less --version
less [-[+]aABcCdeEfFgGiIJKLmMnNqQrRsSuUVwWX~]
[-b space] [-h lines] [-j line] [-k keyfile]
[-{oO} logfile] [-p pattern] [-P prompt] [-t tag]
[-T tagsfile] [-x tab,...] [-y lines] [-[z] lines]
[-# shift] [+[+]cmd] [--] [filename]...
- --help:簡要的幫助界面,很實用。
- -[z]n or --window=n:設置屏幕視窗的大小。
- -s or --squeeze-blank-lines:將多個連續的空白行壓縮成單個,less -s即man命令所使用的查看命令。
- -a or --search-skip-screen:預設的搜索都是從文件的當前位置,即當前屏幕開始。該選項的作用使得,向下搜索從當前屏幕底部開始,向上搜索從當前屏幕的頂部開始,即跳過了當前屏幕。
- -jn or --jump-target=n:指定目標行,例如從第幾行開始搜索。例如,如果選項是“-j4”,那麼第五行就是目標行,從這一行開始搜索或者進行其他操作。
- -i or --ignore-case:忽略大小寫。不過如果在pattern中有出現大寫的話,那麼該選項就會失效。也就是說該選項僅對全小寫的pattern搜索有效。不過我通過/pattern形式搜索測試,如果全小寫的話,就可以自動忽略大小寫了。
- -I or --IGNORE-CASE:可以理解為強制忽略大小寫。