Linux文本處理工具--less
less簡介
less是Linux上檢視檔案内容的工具,功能比more更強大,支援page up和page down,more隻能往後檢視,不能往前走。另外less有搜尋功能,可以向前、向後搜尋。
截取less的man文檔中的一句話,Also, less does not have to read the entire input file before starting, so with large input files it starts up faster than text editors like vi . 也就是說,less啟動時不會加載整個文檔,是以對于大檔案來說,less的啟動速度是要比vi更快的。
less指令的用法
less指令是一個互動式的軟體,是以less的指令參數選項包含了啟動時參數選項和互動式選項,啟動參數選項控制軟體的運作前行為,互動式參數選項控制啟動之後的行為。
less指令格式
less指令基本指令格式為
less [options] filename1,filename2...
less指令參數選項
- 啟動時參數選項
- -b <緩沖區大小> 指定緩沖區的大小
- -e 當檔案顯示結束後,自動離開
- -f 強制打開特殊檔案,例如外圍裝置代号、目錄和二進制檔案
- -g 隻标志最後搜尋的關鍵詞
- -i 忽略搜尋時的大小寫
- -m 顯示類似more指令的百分比
- -N 顯示每行的行号
- -o <檔案名> 将less 輸出的内容在指定檔案中儲存起來
- -Q 不使用警告音
- -s 顯示連續空行為一行
- -S 行過長時間将超出部分舍棄
- -x <數字> 将“tab”鍵顯示為規定的數字空格
指令内檢視幫助
- 互動式參數選項
搜尋功能
- h 顯示幫助界面
- Q 退出less 指令
翻頁
- /字元串:向下搜尋“字元串”的功能
- ?字元串:向上搜尋“字元串”的功能
- n:重複前一個搜尋,如果是/的話,就是繼續向下搜尋,如果是?的話,就向上搜尋
- N:反向重複前一個搜尋,如果是/的話,就是繼續向上搜尋,如果是?的話,就向下搜尋
- &字元串:僅僅顯示比對上的行
- b 向上翻一頁
- d 向下翻半頁
- u 向上滾動半頁
- y 向上滾動一行
- 空格鍵 向下一行
- Enter鍵 向下一頁
- [pagedown]: 向下翻動一頁
- [pageup]: 向上翻動一頁
- Ctrl + F:向下翻頁
- Ctrl + B :向上翻頁
- Ctrl + D :向下移動半屏
- Ctrl + U : 向上移動半屏
- G:移動到最後一行
g:移動到第一行
注:向下:是往下走,往頁碼大的地方走
多個檔案打開及檔案間操作
less的下方會顯示目前檔案和下一個檔案的檔案名
- 打開多檔案的方式
- less file1 file2 file3 ...可以打開多個檔案
:e:已經運作了less指令,想要打開另外一個檔案,可以使用:e進行打開,支援tab補全,支援glob通配
vim也有相同的兩種方式,已經運作vim的情況下需要使用:open file_name,這沒有less好用,1.不支援tab鍵補全;2.不支援glob通配
- 多檔案間切換
- 鍵入 :n:切換到下一個檔案,這個和vim一樣(vim使用:bn)
- 鍵入 :p:切換到上一個檔案,這個和vim一樣(vim使用:bp)
- 使用less編輯檔案
- :在運作的less界面上,使用v選項,會調用系統預設的編輯器(一般來說是vi,但是具體怎麼檢視就還是個問題???????EDITOR和VISUAL可能有用,但是查詢出來沒有值,再有是set -o,本機上的set -o中 vi off。)當進入鍵入v之後,确實和vi的使用方式是一樣的,輸入i進入INSERT模式,使用q!,qw等指令都可以。
- 設定标簽
- 設定标簽,在less界面鍵入m,然後頁面上會出現mark的字樣,輸入當個字元(多個字元和數字都不行),頁面上的mark字樣消失。
傳回标簽處,在less界面鍵入',頁面出現"goto mark"的字樣,輸入剛剛設定的标簽,就傳回到剛剛的頁面處。
這個功能在大檔案檢視是非常好用!
less指令使用執行個體
$ps -ef|less
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 May08 ? 00:00:03 /sbin/init
root 2 0 0 May08 ? 00:00:00 [kthreadd]
root 3 2 0 May08 ? 00:00:03 [migration/0]
root 4 2 0 May08 ? 00:00:13 [ksoftirqd/0]
root 5 2 0 May08 ? 00:00:00 [stopper/0]
:
# 這樣就可以慢慢檢視每個程序的id号了,這其實不是經常用,畢竟要浏覽所有程序的需求并不多,主要是為了滿足單個螢幕無法容下所有内容,而且需要前後翻頁的情況。
實驗心得
網絡上有人說在互動式指令中使用F選項,可以達到檔案尾部,但是實驗上來看,可以是可以,不過less會有一個計算該檔案的行數的過程,我的實驗資料是1221049行,個人筆記本的虛拟機,到檔案尾部大概花了10秒左右,看起來還不錯。但是tail -f file_name是秒出的。
另外如果使用F進入“Waiting for data..”這個模式後,使用Ctrl + c退出,不會立即退出less,可以繼續做其他操作
G:可以直接跳到檔案尾部,無論是F還是G對系統的資源占用都沒有那麼大(實驗資料量是308M,但是考慮到機器本身也沒那麼好,是以less的性能還是相當不錯了),同樣的機器,我使用vim打開該檔案,top下的wa%等值都有一定飙升的現象。