Linux
系統(tǒng)中有許多命令提供查看文件內(nèi)容的功能鲫忍,無(wú)所謂哪個(gè)命令更好,在具體工作中钥屈,根據(jù)需求選擇具有不同功能特點(diǎn)的命令悟民。
1. cat <file>
查看文件內(nèi)容;指定輸入創(chuàng)建文件篷就;連接或合并文件
【1】查看一個(gè)或多個(gè)文件內(nèi)容
tmpuser:test/ $ ll
total 0
tmpuser:test/ $ echo 'a' > t1.file
tmpuser:test/ $ echo 'b' > t2.file
tmpuser:test/ $ cat t1.file
a
tmpuser:test/ $ cat t1.file t2.file
a
b
cat
命令查看文件內(nèi)容是該命令常用的使用方式射亏,通過(guò)添加參數(shù)可以增加其他功能。
【2】顯示行號(hào)竭业、縮小空行顯示
tmpuser:test/ $ cat -n t3.file
1 a
2
3
4 b
tmpuser:test/ $ cat -b t3.file
1 a
2 b
tmpuser:test/ $ cat -sb t3.file
1 a
2 b
由該示例可知智润,-s,--squeeze-blank
參數(shù)用于縮小多個(gè)空行到一個(gè)空行;-n,--number
參數(shù)用于給顯示的文件內(nèi)容增加行號(hào)未辆;-b,--number-nonblank
參數(shù)用于給顯示的非空行文件內(nèi)容增加行號(hào)窟绷。
【3】根據(jù)文件、標(biāo)準(zhǔn)輸入創(chuàng)建文件
tmpuser:test/ $ cat t1.file t2.file > t4.file
tmpuser:test/ $ cat t4.file
a
b
tmpuser:test/ $ cat > t5.file << EOF
> a
> b
> EOF
tmpuser:test/ $ cat t5.file
a
b
由該示例可知咐柜,cat
命令通過(guò)>
輸出重定向符號(hào)兼蜈,可以根據(jù)現(xiàn)有文件攘残,或者標(biāo)準(zhǔn)輸入創(chuàng)建新文件。
<<
作為輸入重定向符號(hào)为狸,定義EOF
作為輸入分界符歼郭,在EOF
之間的內(nèi)容作為輸入內(nèi)容。該符號(hào)不一定非要為EOF
辐棒,只不過(guò)常用該符號(hào)而已病曾。
【4】根據(jù)文件、標(biāo)準(zhǔn)輸入追加文件
tmpuser:test/ $ cat t4.file
a
b
tmpuser:test/ $ cat t1.file t2.file >> t4.file
tmpuser:test/ $ cat t4.file
a
b
a
b
tmpuser:test/ $ cat t5.file
a
b
tmpuser:test/ $ cat >> t5.file <<EOF
> a
> b
> EOF
tmpuser:test/ $ cat t5.file
a
b
a
b
由該示例可知漾根,cat
命令通過(guò)>>
輸出重定向符號(hào)泰涂,可以根據(jù)現(xiàn)有文件,或者標(biāo)準(zhǔn)輸入追加文件內(nèi)容辐怕。
2. tac <file>
tac
為cat
的倒寫形式负敏,查看的文件內(nèi)容也是以行為單位倒序顯示的。
【1】以行為單位倒序顯示文件內(nèi)容
tmpuser:test/ $ cat t6.file
1
2
3
4
5
tmpuser:test/ $ tac t6.file
5
4
3
2
1
由示例可知秘蛇,該命令提供文件內(nèi)容的倒序顯示其做。
該命令的倒序功能可以應(yīng)用于日志的查看中,用于查看最新日志信息赁还。并且該命令提供
-s,--separator=STRING
選項(xiàng)妖泄,用于倒序顯示分隔后的部分內(nèi)容。
【2】倒序顯示字符串分隔的部分
tmpuser:test/ $ cat t6.file
1
2
3
4
5
tmpuser:test/ $ tac t6.file -s '3'
4
5
1
2
3
由示例可知艘策,可以通過(guò)指定分隔字符串的形式蹈胡,倒序顯示部分內(nèi)容。
當(dāng)文件內(nèi)容不多時(shí)朋蔫,使用
cat
命令直接查看文件內(nèi)容較為直觀罚渐,但是當(dāng)文件較大、內(nèi)容較多時(shí)驯妄,推薦使用提供了分頁(yè)查看文件內(nèi)容功能的命令荷并。
3. more <file>
more
命令直接加載指定的文件,提供分頁(yè)查看文件內(nèi)容的功能青扔,空格鍵向下翻頁(yè)源织,b
鍵向上翻頁(yè),q
鍵退出查看微猖。常用參數(shù)如下:
-
-<number>:
指定分頁(yè)大小谈息,默認(rèn)分頁(yè)大小為填滿終端頁(yè)面 -
+<number>:
指定行開(kāi)始顯示 -
+/<string>:
搜索指定內(nèi)容,并從其前兩行開(kāi)始顯示 -
-s:
合并多個(gè)空行為一行
【1】指定分頁(yè)大小凛剥,并從指定行開(kāi)始顯示
tmpuser:test/ $ cat -n t7.file
1 a
2
3
4 b
5 c
6 d
7 e
tmpuser:test/ $ more -2 +4 t7.file
b
c
--More--(66%)
該示例指定分頁(yè)大小為2
侠仇,從第4
行開(kāi)始顯示,通過(guò)空格鍵和b
鍵進(jìn)行分頁(yè)顯示犁珠。
【2】指定分頁(yè)大小,搜索指定內(nèi)容泡孩,并從其前兩行開(kāi)始顯示
tmpuser:test/ $ cat -n t7.file
1 a
2
3
4 b
5 c
6 d
7 e
tmpuser:test/ $ more -2 +/d t7.file
...skipping
b
c
--More--(66%)
該示例指定分頁(yè)大小為2
,從字符串d
所在行的前兩行開(kāi)始顯示,通過(guò)空格鍵和b
鍵進(jìn)行分頁(yè)顯示分蓖。
【3】合并多個(gè)空行為一行
tmpuser:test/ $ cat -n t7.file
1 a
2
3
4 b
5 c
6 d
7 e
tmpuser:test/ $ more -s t7.file
a
b
c
d
e
4. less <file>
less
命令與more
較為相似,估計(jì)以后會(huì)越來(lái)越相似其弊,因?yàn)樵S多less
能夠?qū)崿F(xiàn)的操作也被逐漸添加到more
的功能列表中巫橄。
less
命令同樣提供分頁(yè)查看文件內(nèi)容的功能,與more
命令相同窑眯,可以使用空格鍵向下翻頁(yè)屏积,b
鍵向上翻頁(yè),也可以通過(guò)上下鍵實(shí)現(xiàn)翻頁(yè)磅甩。相對(duì)于more
命令炊林,less
能夠?qū)崿F(xiàn)更多的操作。常用參數(shù)如下:
-
-N:
顯示行號(hào) -
+<number>:
指定行開(kāi)始顯示 -
+/<string>:
搜索指定內(nèi)容卷要,并從該行開(kāi)始顯示 -
-s:
合并多個(gè)空行為一行 -
+F:
持續(xù)跟蹤添加內(nèi)容渣聚,需要ctrl+c
才能退出命令
less
命令打開(kāi)文件后,即使到達(dá)文件末尾也不會(huì)自動(dòng)退出僧叉,該命令更像是提供給用戶一個(gè)仔細(xì)查看文件內(nèi)容的場(chǎng)景奕枝,需要使用q
鍵退出。
-
/<string>:
由上向下搜索指定字符串 -
?<string>:
由下向上搜索指定字符串 -
n:
查看搜索字符串的下一個(gè)位置 -
N:
查看搜索字符串的上一個(gè)位置
【1】顯示行號(hào)瓶堕、并從指定行開(kāi)始展示
tmpuser:test/ $ cat -n t8.file
1 one
2
3
4 two
5 three
6 four
7 five
tmpuser:test/ $ less -N +4 t8.file
4 two
5 three
6 four
7 five
~
~
t8.file lines 4-7/7 (END)
【2】從指定搜索內(nèi)容開(kāi)始展示
tmpuser:test/ $ cat -n t8.file
1 one
2
3
4 two
5 three
6 four
7 five
tmpuser:test/ $ less +/two t8.file
two
three
four
five
t8.file lines 4-7/7 (END)
【3】合并多個(gè)空行
tmpuser:test/ $ cat -n t8.file
1 one
2
3
4 two
5 three
6 four
7 five
tmpuser:test/ $ less -sN t8.file
1 one
2
4 two
5 three
6 four
7 five
t8.file lines 1-7/7 (END)
【4】持續(xù)跟蹤添加內(nèi)容
tmpuser:test/ $ less +F t8.file
one
two
three
four
five
Waiting for data... (interrupt to abort)
使用+F
參數(shù)隘道,或者在less <file>
命令打開(kāi)文件后按F
鍵,都可以進(jìn)入跟蹤文件添加內(nèi)容狀態(tài)郎笆,該狀態(tài)一般應(yīng)用于查看或監(jiān)控日志谭梗,會(huì)自動(dòng)顯示出最新添加的文件內(nèi)容。需要ctrl+c
退出該狀態(tài)宛蚓,然后按q
鍵才會(huì)退出激捏。
【5】搜索文件中指定內(nèi)容
tmpuser:test/ $ less t8.file
one
two
three
four
five
/two
# press enter
two
three
four
five
使用/<string>
或?<string>
搜索后匹配到的內(nèi)容會(huì)顯示在第一行,按n
鍵則下一個(gè)匹配內(nèi)容的位置會(huì)顯示在第一行凄吏,按N
則上一個(gè)匹配內(nèi)容的位置會(huì)顯示在第一行缩幸。
n
和N
切換匹配內(nèi)容位置的行為,是根據(jù)由上向下或者是由下向上的搜索而定的竞思。為了觀察內(nèi)容方便表谊,提供有g
鍵和G
鍵用于定位文件內(nèi)容首行和尾行。
5. head<file>
head
命令較為常用盖喷,用法也較為簡(jiǎn)單爆办,用于顯示文件的前幾行內(nèi)容,默認(rèn)為前10
行课梳,可以通過(guò)-n
參數(shù)指定行數(shù)距辆。
【1】顯示文件前幾行內(nèi)容
tmpuser:test/ $ cat -n t8.file
1 one
2
3
4 two
5 three
6 four
7 five
tmpuser:test/ $ head -n 4 t8.file
one
two
當(dāng)
-n
參數(shù)后指定的數(shù)字為負(fù)數(shù)時(shí)余佃,用于反選,顯示后幾行之前的文件內(nèi)容跨算。
【2】顯示后幾行之前的文件內(nèi)容
tmpuser:test/ $ cat -n t8.file
1 one
2
3
4 two
5 three
6 four
7 five
tmpuser:test/ $ head -n -2 t8.file
one
two
three
6. tail <file>
tail
命令與head
作用相反爆土,用于顯示文件后幾行內(nèi)容,默認(rèn)為前10
行诸蚕,可以通過(guò)-n
參數(shù)指定行數(shù)步势。
【1】顯示文件后幾行內(nèi)容
tmpuser:test/ $ cat -n t8.file
1 one
2
3
4 two
5 three
6 four
7 five
tmpuser:test/ $ tail -n 4 t8.file
two
three
four
five
當(dāng)
-n
參數(shù)后指定的數(shù)字為正數(shù)時(shí),用于反選背犯,顯示從第幾行開(kāi)始后的文件內(nèi)容坏瘩。
【2】顯示第幾行開(kāi)始后的文件內(nèi)容
tmpuser:test/ $ cat -n t8.file
1 one
2
3
4 two
5 three
6 four
7 five
tmpuser:test/ $ tail -n +3 t8.file
two
three
four
five
tail
命令有一個(gè)很實(shí)用的參數(shù)-f
,該命令用于顯示文件實(shí)時(shí)追加的內(nèi)容漠魏,與前面提到的less +F <file>
命令效果類似倔矾。
【3】實(shí)時(shí)顯示文件追加內(nèi)容
tmpuser:test/ $ tail -f t8.file
one
two
three
four
five
該命令會(huì)保持文件監(jiān)控狀態(tài),實(shí)時(shí)刷新追加內(nèi)容柱锹。