1. 什麼是cat命令?¶
在Ubuntu系統中,cat是一個非常基礎且常用的文本處理命令,它的名字來自“concatenate”(連接),但日常使用中,我們主要用它來查看文件的內容。想象一下,當你在Windows系統裏雙擊打開一個文本文件時,cat命令就相當於在Ubuntu的終端裏“打開”文件並直接顯示內容,非常直觀。
2. 基本用法:查看單個文件內容¶
使用cat命令查看文件內容的語法非常簡單,只需在終端輸入:
cat 文件名
舉個例子:假設你有一個名爲test.txt的文件,裏面內容如下(可以先用nano test.txt創建一個測試文件,輸入幾行文字保存):
Hello, this is a test file.
It has three lines.
The third line is here.
在終端執行cat test.txt,屏幕上會直接顯示文件內容:
Hello, this is a test file.
It has three lines.
The third line is here.
3. 常用選項:讓cat更靈活¶
cat命令支持一些選項(參數),可以調整輸出格式,讓查看內容更方便。以下是初學者最常用的幾個選項:
3.1 顯示行號(-n 選項)¶
如果想給文件的每一行都標上序號(包括空行),可以用-n選項:
cat -n 文件名
示例:如果test.txt是空行和內容混合的文件(假設內容如下):
Line 1: First line.
Line 3: Third line.
執行cat -n test.txt後,輸出會顯示所有行的行號:
1 Line 1: First line.
2
3
4 Line 3: Third line.
5
3.2 顯示非空行的行號(-b 選項)¶
-b和-n類似,但只給非空行標序號,空行不會被標行號:
cat -b 文件名
同樣用上面的例子,執行cat -b test.txt:
1 Line 1: First line.
2
3 Line 3: Third line.
4
3.3 壓縮連續空行(-s 選項)¶
如果文件中有很多連續的空行(比如多個換行符),看起來會很亂,-s選項可以把多個連續空行合併成一個:
cat -s 文件名
示例:假設文件內容有多個空行:
Line 1.
Line 3.
執行cat -s test.txt後,輸出會變成:
Line 1.
Line 3.
4. 處理多個文件:合併內容¶
cat不僅能查看單個文件,還能同時查看多個文件的內容,並按順序輸出。比如你有file1.txt和file2.txt兩個文件:
- file1.txt內容:Hello from file1!
- file2.txt內容:Hello from file2!
執行cat file1.txt file2.txt,輸出會是:
Hello from file1!
Hello from file2!
如果想把多個文件的內容合併到一個新文件(覆蓋原有內容,注意備份!),可以用重定向符號>:
cat file1.txt file2.txt > combined.txt
執行後,combined.txt會包含file1.txt和file2.txt的所有內容。
5. 常見問題與注意事項¶
-
文件不存在?
如果輸入的文件名不存在,cat會報錯:cat: 文件名: No such file or directory。這時要檢查文件名是否拼寫正確,或文件是否在當前目錄(可用ls命令確認文件是否存在)。 -
權限不足?
如果文件沒有讀權限,會提示Permission denied。比如系統文件(如/etc/passwd)通常需要管理員權限,普通用戶可先用sudo cat嘗試(但注意:非必要不修改系統文件)。 -
重定向覆蓋風險?
使用>時,會直接覆蓋目標文件。例如cat a.txt > b.txt會清空b.txt原有內容,只保留a.txt的內容。如果要追加內容,用>>(但同樣需謹慎)。
總結¶
cat命令是Ubuntu文本處理的入門工具,從查看單文件、帶行號輸出,到多文件合併,它雖簡單卻實用。多練習幾個例子(比如創建測試文件、測試不同選項),很快就能熟練掌握!