查看文件內(nèi)容
前面小節(jié)介紹了文件和目錄相關(guān)的操作,本小節(jié)介紹如何使用 file
、cat
、more
、tail
命令在不同場(chǎng)景下去查看文件相關(guān)信息和內(nèi)容。
1. file 查看文件類(lèi)型
file
命令可以用來(lái)查看文件類(lèi)型,還能查看文件的編碼格式,下面列舉一些 file
命令的參數(shù):
file 命令參數(shù)名稱(chēng) | 功能與作用描述 |
---|---|
-b | 表示 --brief ,顯示查看結(jié)果時(shí),不顯示文件名 |
-c | 表示 --checking-printout ,顯示指令執(zhí)行過(guò)程 |
-f | 表示 --files-from FILE ,列出文件中文件名的文件類(lèi)型 |
-F | 表示 --separator STRING ,使用指定符號(hào)替換輸出文件名后的默認(rèn)的 : |
-i | 輸出 mime 類(lèi)型的字符串 |
-L | 表示 --dereference ,查看對(duì)應(yīng)軟鏈接對(duì)應(yīng)文件的文件類(lèi)型 |
-z | 表示 --uncompress ,嘗試查看壓縮文件信息 |
1.1 查看文件類(lèi)型
這里還是以 /home
目錄里面的文件為例,命令如下:
cd /home
ls
file a.txt
file new_dir
cd study/
file alltxt.tar
file alltxt.tar.gz
file alltxt.tar.bz2
file alltxt.tar.Z
執(zhí)行結(jié)果如下圖:
Tips:如圖所示,使用
file
命令可以看到文件的編碼、文件類(lèi)型。
1.2 查看文件時(shí)不顯示文件名稱(chēng)
在 file
命令后面跟上一個(gè) -b
參數(shù)重復(fù)一次上面的流程,命令如下:
cd /home
ls
file -b a.txt
file -b new_dir
cd study/
file -b alltxt.tar
file -b alltxt.tar.gz
file -b alltxt.tar.bz2
file -b alltxt.tar.Z
執(zhí)行結(jié)果如下圖:
Tips:如圖所示使用
-b
參數(shù)查看的文件信息時(shí)沒(méi)有打印出文件名。
1.3 查看壓縮包信息
進(jìn)入到 /home/study
,使用 -z
參數(shù)去查看壓縮包信息,命令如下:
cd /home/study
ls
file -z alltxt.tar.gz
file -z alltxt.tar.bz2
file -z alltxt.tar.Z
執(zhí)行結(jié)果如下圖:
Tips:如圖所示,展示了壓縮包相關(guān)的信息。
2. cat 查看文件內(nèi)容
cat
命令可以用來(lái)查看文件內(nèi)容,下面列舉一些 cat
命令的參數(shù):
cat 命令參數(shù)名稱(chēng) | 功能與作用描述 |
---|---|
-A | 表示 --show-all ,展示所有內(nèi)容 |
-b | 表示 --number-nonblank ,對(duì)查看的內(nèi)容的非空行,對(duì)其行數(shù)編號(hào) |
-n | 表示 --number ,對(duì)查看的內(nèi)容行數(shù)編號(hào)輸出 |
-v | 表示 --show-nonprinting ,使用^ 和M- 引用,除了LFD和 TAB 之外 |
-E | 表示 --show-ends ,在每行的最后展示KaTeX parse error: Expected 'EOF', got '符' at position 1: 符?號(hào);就是無(wú)論你輸入了什么,屏幕…符號(hào)結(jié)尾 |
-e | 同 -vE |
-s | 表示 --squeeze-blank ,抑制空行輸入,就是如果你有多行連續(xù)的空行,他會(huì)壓縮成一行輸出 |
-T | 表示 --show-tabs ,將跳格字符顯示為^I |
-t | 同 -VT |
2.1 查看文件所有內(nèi)容
這里以之前小節(jié)配置過(guò)的 /etc/sysconfig/network-scripts/ifcfg-ens160
文件為例,使用如下命令查看其中的內(nèi)容:
cd /etc/sysconfig/network-scripts
ls
cat ifcfg-ens160
執(zhí)行結(jié)果如下圖:
Tips:在輸入路徑或者文件名稱(chēng)的時(shí)候可以使用
Tab
鍵來(lái)補(bǔ)全。
2.2 對(duì)查看內(nèi)容編排
命令如下:
cat -b ifcfg-ens160
cat -n ifcfg-ens160
執(zhí)行結(jié)果如下圖:
Tips:
-b
表示排除掉空行的內(nèi)容,然后對(duì)其輸出編號(hào),會(huì)后會(huì)補(bǔ)上一行空行展示出來(lái)。
3. more 命令查看文件內(nèi)容
more
命令也用來(lái)查看文件內(nèi)容,下面列舉一些 more
命令的參數(shù):
more 命令參數(shù)名稱(chēng) | 功能與作用描述 |
---|---|
+n | 從第 n 行開(kāi)始顯示 |
-n | 定義屏幕大小為 n 行 |
+/pattern | 在每個(gè)檔案顯示前搜尋該字串 pattern ,然后從該字串前兩行之后開(kāi)始顯示 |
-c | 從頂部清屏,然后顯示 |
-d | 提示 Press space to continue,'q' to quit(按空格鍵繼續(xù),按q鍵退出) ,而禁用響鈴功能 |
-l | 忽略 Ctrl+l(換頁(yè)) 字符 |
-p | 通過(guò)清除窗口而不是滾屏來(lái)對(duì)文件進(jìn)行換頁(yè),與 -c 選項(xiàng)相似 |
-s | 把連續(xù)的多個(gè)空行顯示為一行 |
-u | 把文件內(nèi)容中的下畫(huà)線去掉 |
這里以查看 /etc/mtools.conf
文件內(nèi)容為例,命令如下:
cd /etc
more mtools.conf
執(zhí)行結(jié)果如下圖:
Tips : 如圖中所示,可以按
空格
鍵繼續(xù)瀏覽剩下內(nèi)容,也可以按q
鍵結(jié)束瀏覽。
4. tail 命令查看文件內(nèi)容
tail
命令也用來(lái)查看文件內(nèi)容,下面列舉一些 tail
命令的參數(shù):
tail 命令參數(shù)名稱(chēng) | 功能與作用描述 |
---|---|
-f | 表示 --follow[={name|descriptor}] ,該參數(shù)用于監(jiān)聽(tīng)文件新增內(nèi)容。 |
-c | 表示 --bytes=[+]NUM ,從 num 字節(jié)位置讀取指定文件 |
-n | 表示 --lines=[+]NUM ,從 num 行位置讀取指定文件。 |
-F | 同 -f |
-q | 表示 --quiet ,從不輸出給出文件名的首部 |
-s | 表示 --sleep-interval=N ,與-f合用,表示在每次反復(fù)的間隔休眠S秒 |
4.1 查看文件最后幾行內(nèi)容
以 /etc/mtools.conf
文件為例,如要查看最后 5 行內(nèi)容,命令如下:
cd /etc
tail -5 mtools.conf
執(zhí)行結(jié)果如下圖:
Tips:使用如圖所示的命令可以查看
mtools.conf
文件的最后 5 行內(nèi)容。
4.2 查看指定行數(shù)的內(nèi)容
以 /etc/mtools.conf
文件為例,如要從第 45 行開(kāi)始顯示內(nèi)容,命令如下:
tail -n +45 mtools.conf
執(zhí)行結(jié)果如下圖:
Tips:使用如圖所示的命令可以查看
mtools.conf
文件的第 45 行開(kāi)始的內(nèi)容。
4.3 監(jiān)聽(tīng)日志文件
在實(shí)際工作中,經(jīng)常會(huì)使用 -f
去監(jiān)聽(tīng)日志新增內(nèi)容,達(dá)到開(kāi)發(fā)者調(diào)試的目的,這里為了演示方便,需要打開(kāi)之前安裝過(guò)的 MobaXterm
,按照之前第 7 小節(jié)的步驟,打開(kāi)兩個(gè)登錄窗口,示例如下:
首先進(jìn)入 /home
目錄,新建一個(gè)日志文件 access.log
,命令如下:
cd /home
ls
touch access.log
執(zhí)行結(jié)果如下圖:
接下來(lái)使用 tail
命令跟上 -f
參數(shù)對(duì) access.log
日志文件監(jiān)聽(tīng),命令如下:
tail -f access.log
執(zhí)行結(jié)果如下圖:
接下來(lái)在新打開(kāi)的窗口中,進(jìn)入 /home
目錄,向 access.log
文件寫(xiě)入內(nèi)容:
cd /home
echo "這是第一條測(cè)試內(nèi)容(time=2020-05-05 18:00)" >> access.log
echo "這是第二條測(cè)試內(nèi)容(time=2020-05-05 19:00)" >> access.log
echo "這是第三條測(cè)試內(nèi)容(time=2020-05-05 20:00)" >> access.log
執(zhí)行結(jié)果如下圖:
Tips:這種監(jiān)聽(tīng)日志的方法經(jīng)常用在后端程序開(kāi)發(fā)調(diào)試工作中。
此時(shí)模擬日志數(shù)據(jù)輸入完成,接著打開(kāi)原來(lái)的監(jiān)聽(tīng)窗口,如下圖所示:
5.小結(jié)
本小節(jié)介紹了如何使用 file
、cat
、more
、tail
去查看文件內(nèi)容,讀者根據(jù)不同場(chǎng)景來(lái)選擇合適的命令查看文件內(nèi)容,其中 tail -f
命令經(jīng)常用于后端開(kāi)發(fā)日志監(jiān)聽(tīng),來(lái)調(diào)試代碼的作用,也能幫助快速捕捉到程序異常,提升修復(fù)問(wèn)題的效率。