我們知道在圖形界面上查看文件內容只需要雙擊打開就好,那么在終端窗口里怎么查看文件內容呢?顯然是需要能有一個命令能把文件內容顯示在終端界面上。
查看文件內容主要有兩個命令,分別是 cat 和 more,還有一個 grep命令可以查找文件對應內容。慢慢介紹。
cat
cat 命令可以用來 查看文件內容、創建文件、文件合並、追加文件內容 等功能。本篇主要介紹查看文件內容。
它的特點是會一次顯示所有內容,適合查看內容較少 的文本文件。
可以在目錄里准備兩個文本文件,一個內容多點,一個內容較少點,分別為 demo1.txt 和 demo2.txt。使用 cat命令分別查看:
cat demo1.txt cat demo2.txt
為了看到效果,我把終端窗口調得較小,太大的窗口看不到區別:


可以看到,不管內容多長,cat 命令總是把所有內容都顯示出來,當內容超過窗口時會自動到下一屏。你可能會奇怪我為什么要強調這一點,只要能看到內容就好了啊。說這個其實是因為另一個命令 more 跟它有所區別,下面會介紹。
在這之前,我們先看看 cat 的兩個選項:
- -b:對非空輸出行編號
- -n:對輸出的所有行編號
其實就是在每一行輸出內容前面加上編號,-b 是只對非空的行加編號,而-n 對所有的行都加編號。
說到這,我又悲劇了,我的Linux環境不管哪個選項都是對所有行編號:

建議大家還是在自己的電腦上裝個虛擬機環境試試,比如Ubuntu。
more
more命令的區別在於,當文件超過窗口時,會分屏顯示文件,說不如做,分別測試demo1.txt 和 demo2.txt文件:
more demo1.txt more demo2.txt


可以很明顯的看到區別,當文件內容較少時,與cat效果沒區別,當文件內容較多時,會顯示一個提示信息,給出至今己顯示的該文件的百分比:--More--(XX%),此時可以根據以下不同操作做出回應:
| 操作鍵 | 功能 |
|---|---|
| 空格鍵 | 顯示文本下一屏內容 |
| Enter | 一次滾動文本的一行 |
| b | 回滾一屏 |
| f | 前滾一屏 |
| q | 退出 |
| /word | 搜索word字符串(word可替換) |
可自行嘗試。
grep
Linux系統中grep命令是一種強大的文本搜索工具,使用格式:
grep 查找的目標字符 文件名
現在目錄下有一 test.txt文件,看下它的內容:
cat test.txt //結果 hello world this is test hello linux this is test asdhsadyuscbjna
在這個文件里搜索 hello:
grep hello test.txt //結果 hello world hello linux
可以看到,搜索結果會把包含所搜字符的整個行都輸出來,注意,如果想要搜索多個單詞,應該加上引號:
grep 'hello world' test.txt
選項
grep的選項也很多,這里只介紹三個:
- -n:顯示匹配行及行號
- -v:顯示不包含匹配文本的所有行(相當於求反)
- -i:忽略大小寫
加上 -n:
grep -n hello test.txt //結果 2:hello world 6:hello linux
可以看到每行前面都加上了它們所在的行號。
-v 命令相當於對查找結果的求反:
grep -v hello test.txt //結果 this is test this is test asdhsadyuscbjnas
可以看到,它將不包含 hello 的行都輸出來了,此時也可以加上行號的:
grep -vn hello test.txt //結果 1: 3: 4:this is test 5: 7: 8:this is test 9: 10:asdhsadyuscbjnas
-i 忽略大小寫就不用多說了:
grep -i Hello test.txt //結果 hello world hello linux
再啰嗦一句,Linux命令選項是可以連用的,你可以這樣:
grep -nvi Hello test.txt
模式查找
所謂模式查找,就是正則表達式查找,grep支持正則模式查找,這里就簡單說兩個例子:
- ^a:行首,查找以 a開頭的行
- b$:行尾,查找以 b結束的行
grep ^h test.txt //結果 hello world hello linux
