Red Hat Linux 有一種工具程式,它可以幫您保留短的清單,再將那些清單收集起來,並且向您顯示關於您系統的資訊。
這個工具程式稱為 cat,就是 concatenate 的簡稱,它意指將檔案串在一起。
cat 指令也會將整個檔案的內容顯示在螢幕上(例如,輸入 cat filename.txt)。 假如這個檔案相當長,它將很快的在畫面上捲過。 要避免這樣的情況,您可以使用 cat filename.txt | less 指令。
使用管線 (|) 加上 less 指令,將會一次只顯示一頁。 您可以使用上下方向鍵來前後移動這個頁面。 如需關於使用管線來結合不同功能得更多資訊,請看 菴 13.10 節。
『重導向』就是使 shell 去改變它認為是標準的輸入或標準的輸出該往何處去。
要重導標準的輸出,必須使用 > 的符號。 需放置 > 在 cat 指令之後 (或者在任何寫入標準輸出的工具或應用程式之後),它將引導輸出到這個符號後面所接的檔名。
例如,如果只是使用 cat 指令,將只會在螢幕輸出您所輸入的東西,就好像重複您所輸入的行。 下列的例子顯示出 cat 正在重複所輸入的每一行:
如要重導向 cat 的輸出到一個檔案,請在 shell 提示符號下輸入以下指令(按下
cat > sneakers.txt |
按下
在 圖形 13-6 您有沒有發現什麼不同的地方? 是不是沒有重複的紀錄了。 這是因為 cat 的標準輸出已經被重新導向了。 它的輸出被重新導向到一個您所建立的檔案稱為 sneakers.txt。
當您執行 cat 後,您可以在您所在的目錄中找到這個檔案 (假如您想將它列出的話,可以輸入 ls 指令)。
就您先前所學的,您可以使用 cat 來讀取這個檔案。 請在提示符號下輸入:
cat sneakers.txt |
警告 | |
---|---|
當您重導輸出到一個檔案時,請特別小心,因為您可以很輕易地覆寫一個已有的檔案! 請確定您要建立的檔名沒有與先前已有的檔案名稱相同,除非您想要取代它。 |
再使用輸出的重導向到另一個檔案,並稱它為 home.txt。 就這個例子,請輸入指令 cat > home.txt 然後再按下
bring the coffee home take off shoes put on sneakers make some coffee relax! |
現在,在新的一行使用
再來,使用 cat 來結合 home.txt 與 sneakers.txt, 並且重導兩個檔案的輸出到一個全新的檔案稱為 saturday.txt (您可以在 圖形 13-7 找到一個例子)。 請輸入以下指令:
cat sneakers.txt home.txt > saturday.txt |
您可以發現 cat 已經新增 home.txt 到 sneakers.txt 檔案結尾的地方。
您可以使用輸出重導向來增加新的資訊到一個既存檔案的結尾處。 類似當您使用 > 符號,您告訴您的 shell 傳送資訊到非標準輸出的某處。
然而,當您使用 >>,您是在 "增加" 資訊到一個檔案,而不是取代整個檔案的內容。
最佳的解釋就是做個示範。 使用兩個已經建立好的檔案 (sneakers.txt 與 home.txt),然後使用增添輸出的符號來將它們結合。 您想要增加在 home.txt 的資訊到已經存在 sneakers.txt 的資訊,所以請輸入:
cat home.txt >> sneakers.txt |
再來使用 cat sneakers.txt 指令來檢查這個檔案。 最後的輸出顯示 home.txt 的內容出現在這個檔案的尾端:
buy some sneakers then go to the coffee shop then buy some coffee bring the coffee home take off shoes put on sneakers make some coffee relax! |
您所輸入的指令告訴系統從 home.txt 檔案新增輸出到 sneakers.txt 檔案。
藉由增添輸出,由於使用既存的檔案而不是建立一個新的檔案,將替自己節省許多時間(以及減少些許磁碟混亂)。
現在請比較 sneakers.txt 與 saturday.txt 檔案的內容,您將會發現它們兩個是一樣的。 如要做比較的話,請輸入:
cat sneakers.txt; cat saturday.txt |
兩個檔案的內容將會顯示出來 — 先是 sneakers.txt,再來為 saturday.txt (如 圖形 13-8 所示)。