先用以下指令製造一個 40 列的文字檔 forty.txt 出來:
cp twenty.txt forty.txt此時,如果將 forty.txt 印在螢幕上,則不能看到整個文件內容, 這是因為終端機的螢幕通常只有 25 列 (通常有 80 格)。 因此,如果一個文件超過了 24 列,就看不到全部。 這時候我們需要一個純文字文件的閱讀工具。
cat -n twenty.txt >> forty.txt
UNIX 的標準閱讀工具是 more。一般用法是
more FILE請用 forty.txt 來練習。
以下,當我們說 一頁 的時候,指的是一個螢幕的列數, 或是一個螢幕的列數減一。 當我們說 半頁 的時候,指的是大約半個螢幕的列數, 通常是 11 或 12 列的意思。 實際情況請做實驗來確定。
more 只有很少量的指令,以下是大部分的指令了:
q | 結束 more 程式 |
---|---|
[Space_Bar] (空間棒) | 向下一頁 |
[Enter] | 向下一列 |
d | 向下半頁 |
b | 向上一頁 |
= | 顯示目前螢幕上最後一列的列號 |
:f | 顯示目前的檔案名以及列號 |
/STRING | 其中 STRING 是一個想要搜尋的字串,more 從目前這個螢幕的第一列開始向下搜尋, 螢幕向下移動,使得第一個出現字串的那一列,大約出現在螢幕的前三列 |
n | 繼續向下搜尋剛才指定的那個字串 |
. | 重複上一個指令 |
Ctrl+L | 重印此頁的內容;例如恰好有人 write 訊息給您而擾亂螢幕之後, 就可以使用這個指令 |
v | 用 vi 編輯器打開目前的檔案;如果還沒學 vi 千萬別做 |
more 也可以一次打開許多檔案,但是螢幕上一次只能看到一個檔案。 譬如說
more *.txt會打開目前資料夾中的所有 .txt 檔案。其閱讀順序就和 ls *.txt 列出來的檔案順序一樣。 在此情況下,多了以下幾個可用的指令
:n | 打開下一個檔案 |
---|---|
:p | 打開上一個檔案 |
讀者應該已經發現,more 無法提供幾個極為常見的需求,例如向上一頁、
到文件的第一列、到文件的最後一列等等。
因此有人寫了 less 來取代 more。less 的功能其實比 more 多。
雖然 less 不是 UNIX 的標準閱讀工具,但是許多系統都會安裝 less 程式。
所有 more 能用的指令,在 less 裡面都有。
以下只舉出幾個常用的,還有其表現方式與 more 不同的:
j | 向下一列 |
---|---|
k | 向上一列 |
u | 向上半頁 |
= | 顯示目前螢幕上第一列的列號 |
g | 到文件的第一列 |
G | 到文件的最後一列 |
Ng | 到文件的第 N 列,其中 N 是一個正整數 |
/STRING | 向下搜尋字串,找到的字串一定放在螢幕的第一列 |
?STRING | 向上搜尋字串,找到的字串一定放在螢幕的第一列 |
n | 按照前面指定的搜尋方向,找下一個出現的字串 |
N | 相反於前面指定的搜尋方向,找下一個出現的字串 |
h | 看線上協助訊息 (help message) |
more 和 less 都可以從 stdin 輸入文件。 請試驗
more < forty.txt或是
less < forty.txt但是,如果文件是從 stdin 進來的,則有少部分的指令不能使用。 例如 more 和 less 就不知道檔案名。其他的留待讀者日後再一一發現。
如果在課堂中由教師帶領練習,請要求學生用 less 展現其 forty.txt 檔案, 巡堂確認無誤。底下的教材不必教給初學者。 |
有幾個和 more 或 less 有關的系統參數,列於下。
這些都不是初學者應該理會的部分,但是在以後或許有用。
參數名 | 參數值 | 說明 |
---|---|---|
EDITOR | 任一個編輯器的檔案名,內定是 vi | 按 v 指令時所開啟的編輯器 |
PAGER | 任一個閱讀工具的檔案名,通常是 more 或 less | 當 UNIX 系統需要閱讀工具的時候,自動選擇的閱讀工具 |
LESS | 中大數學的設定是 -fCe | 每當執行 less 的時候,自動添加的指令參數。 f 的意思是不要抱怨檔案可能是非文字檔,有時候 less 會認為 Big-5 中文檔案是非文字檔。 C 的意思是先 clear 螢幕再開始 less 指令,比較好看。 e 的意思是當到達了文件的底部,如果還要在向下的話,就自動離開 less。 |
LESSCHARSET | latin1 | 利用 latin1 字碼來欺騙 less 接受 Big-5 字碼的中文文件。 |
習題
注意:此處所有文件均為原著,個別的版權宣告日後會一一公布, 整體版面設計亦尚未完成。但仍請勿抄襲文字與圖片,以免觸犯著作權法。
Created: Nov 19, 2000
Last Revised: Nov 19, 2000
© Copyright 2000 Wei-Chang Shann 單維彰