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