我們在使用終端查看文件時(shí),可以通過 cat
more
less
tail
head
等命令威兜。本文將討論這幾個(gè)命令的異同涨共。
1. cat
用途:1、顯示文件的全部內(nèi)容 2抡四、將多個(gè)文件合并到標(biāo)準(zhǔn)輸出
用例:
//在顯示文件內(nèi)容的同時(shí),在每一行前面顯示行號 --- 和nl命令類似
cat -n filePath
//同時(shí)顯示兩個(gè)文件
cat filePath1 filePath2
2. more
用途: 當(dāng)文件內(nèi)容過多時(shí)柜蜈,more可以分頁顯示文件
動(dòng)作指令:(在more狀態(tài)下,通過各種指令來瀏覽文件)
Enter 向下移動(dòng)一行(默認(rèn)一行指巡,可自定義)
Ctrl+f 向下滾動(dòng)一屏
空格鍵 向下滾動(dòng)一屏
Ctrl+b 返回上一屏
q 退出more
= 輸出當(dāng)前行的行號
:f 輸出文件名和當(dāng)前行的行號
v 調(diào)用vi編輯器淑履;
! 命令 調(diào)用Shell,并執(zhí)行命令
用例:
//從profile的第4行開始顯示
more +4 filePath
//每屏顯示4行
more -4 filePath
//從profile中的第一個(gè)word單詞的前兩行開始顯示
more +/word filePath
3. less
用途: 分頁顯示文件內(nèi)容
與more的區(qū)別:less
更加靈活的操作藻雪,具備更多特性
動(dòng)作指令:
Enter 向下移動(dòng)一行
y 向上移動(dòng)一行
b 向上滾動(dòng)一屏
空格鍵 向下滾動(dòng)一屏
d 向下滾動(dòng)半屏
u 向上滾動(dòng)半屏
g 跳到第一行
G 跳到最后一行
q 退出less
w 指定從指定數(shù)字的下一行開始顯示
p n% 跳到整個(gè)文件內(nèi)容的n%處開始顯示
/pattern 搜索pattern并高亮顯示
v 調(diào)用vi編輯器
! 命令 調(diào)用Shell秘噪,并執(zhí)行命令
h less的幫助
參數(shù):
-c 從上到下刷新屏幕,并顯示文件內(nèi)容阔涉。而不是通過底部滾動(dòng)完成刷新
-f 強(qiáng)制打開文件缆娃,二進(jìn)制文件顯示時(shí),不提示警告
-i 搜索時(shí)忽略大小寫瑰排;除非搜索串中包含大寫字母
-I 搜索時(shí)忽略大小寫贯要,除非搜索串中包含小寫字母
-m 顯示讀取文件的百分比
-M 顯法讀取文件的百分比、行號及總行數(shù)
-N 在每行前輸出行號
-p pattern 搜索pattern
-s 把連續(xù)多個(gè)空白行作為一個(gè)空白行顯示
-Q 在終端下不響鈴
4. tail
用途: 顯示文件的末尾行(默認(rèn)10行)
參數(shù):
-b Number #從 Number 變量表示的 512 字節(jié)塊位置開始讀取指定文件
-c Number #從 Number 變量表示的字節(jié)位置開始讀取指定文件
-f #如果輸入文件是常規(guī)文件或如果 File 參數(shù)指定 FIFO(先進(jìn)先出)椭住,那么 tail 命令不會(huì)在復(fù)制了輸入文件的最后的指定單元后終止崇渗,而是繼續(xù)從輸入文件讀取和復(fù)制額外的單元(當(dāng)這些單元可用時(shí))
#如果沒有指定 File 參數(shù),并且標(biāo)準(zhǔn)輸入是管道京郑,則會(huì)忽略 -f 標(biāo)志宅广。tail -f 命令可用于監(jiān)視另一個(gè)進(jìn)程正在寫入的文件的增長
-k Number #從 Number 變量表示的1KB 塊位置開始讀取指定文件
-m Number #從 Number 變量表示的多字節(jié)字符位置開始讀取指定文件。使用該標(biāo)志提供在單字節(jié)和雙字節(jié)字符代碼集環(huán)境中的一致結(jié)果
-n Number #從首行或末行位置來讀取指定文件些举,位置由 Number 變量的符號(+ 或 - 或無)表示跟狱,并通過行號 Number 進(jìn)行位移
//如果文件大于 20,480 字節(jié),那么-r標(biāo)志只顯示最后的 20,480 字節(jié)户魏。 -r 標(biāo)志只有 與 -n 標(biāo)志一起時(shí)才有效驶臊。否則,就會(huì)將其忽略
-r #從文件末尾以逆序方式顯示輸出叼丑。-r 標(biāo)志的缺省值是以逆序方式顯示整個(gè)文件
tail 命令從指定點(diǎn)開始將 File 參數(shù)指定的文件寫到標(biāo)準(zhǔn)輸出关翎。如果沒有指定文件,則會(huì)使用標(biāo)準(zhǔn)輸入鸠信。 Number 變量指定將多少單元寫入標(biāo)準(zhǔn)輸出纵寝。 Number 變量的值可以是正的或負(fù)的整數(shù)。如果值的前面有 +(加號)星立,從文件開頭指定的單元數(shù)開始將文件寫到標(biāo)準(zhǔn)輸出爽茴。如果值的前面有 -(減號),則從文件末尾指定的單元數(shù)開始將文件寫到標(biāo)準(zhǔn)輸出贞铣。如果值前面沒有 +(加號)或 -(減號)闹啦,那么從文件末尾指定的單元號開始讀取文件
用例:
//查看文件的后10行
tail -10 filePath 或 tail -n 10 filePath
// -f使tail不停地去讀最新的內(nèi)容(實(shí)時(shí)監(jiān)視的效果) 用Ctrl+c來終止
tail -f filePath
5. head
用途: 顯示文件的首行(默認(rèn)10行)
用例:
//查看文件的前5行
head -5 filePath
其他:
sed:
用例:
//查看文件中間一段 可以使用sed命令
sed -n '5,10p' /etc/passwd #查看文件的第5行到第10行
** od:** 讀取非純文字文件
參數(shù):
-t :后面可以接各種『類型 (TYPE)』的輸出,例如:
a :利用預(yù)設(shè)的字符來輸出辕坝;
c :使用 ASCII 字符來輸出
d[size] :利用十進(jìn)制(decimal)來輸出數(shù)據(jù)窍奋,每個(gè)整數(shù)占用 size bytes ;
f[size] :利用浮點(diǎn)數(shù)值(floating)來輸出數(shù)據(jù)酱畅,每個(gè)數(shù)占用 size bytes 琳袄;
o[size] :利用八進(jìn)位(octal)來輸出數(shù)據(jù),每個(gè)整數(shù)占用 size bytes 纺酸;
x[size] :利用十六進(jìn)制(hexadecimal)來輸出數(shù)據(jù)窖逗,每個(gè)整數(shù)占用 size bytes。
nl: 輸出文件內(nèi)容的同時(shí)顯示行號
與 cat -n
的區(qū)別:如果某一行沒有內(nèi)容餐蔬,nl
不會(huì)記入行數(shù)碎紊,即 nl
只會(huì)記錄有內(nèi)容的行數(shù)佑附;而 cat -n
會(huì)記錄所有行的行數(shù)