linux查看文件命令

直接查看文件內容

一共有三個,cat/tac/nl

cat [-AbEnTv]

選項與參數
-A :相當於-vET的整合, 可以列出一些特殊字符而不是空白而已
-b :列出行號,進針對非空白行做行號顯示,空白行不會標記
-E :將結尾換行符$顯示出來
-n :打印出行號,連同空白行也會有行號,與-b的選項不同
-T :  將[tab]鍵以^I顯示出來
-v :  列出一些看不出來的特殊字符

例如:

cat僅僅適合查看行數比較少的文件, 如果文件比較大則沒有什麼意義了,文件會快速翻到最後一行。如果文件中有特殊符號,比如[Tab], 換行等要顯示出來,就必須加上-A之類的選項。當然cat也可以通過管道符配合more或less使用也可以達到比較好的效果。

tac(和cat打印順序相反)

翻頁查看

more

more命令瞭解一下就行了,功能太少,筆者一般都用less命令。

按鍵/命令
空格鍵(Space):向下翻頁
回車(Enter):向下翻行
/字符串:在當前顯示的內容(翻頁進度位置),向下查找這個字符串關鍵字
:f:立刻顯示文件名以及目前位置的行號
q: :退出當前文件的瀏覽
b或ctrl+b:往回翻頁

less

less命令比more更加有彈性,可以前後翻頁,不止可以向上查找,也可以向下查找。
按鍵/命令
[pagedown] :向下翻頁
[pageup] :向上翻頁
/字符串:在當前顯示的內容(翻頁進度位置),向下查找這個字符串關鍵字
?字符串:向上查找字符串
n :重複前一個查找,與/或?有關, 比如前一個命令是?表示向上查找,此時n會向上查找
N:  反向的重複前一個查找
g :跳轉到當前文件數據的第一行
G :跳轉到當前文件數據的最後一行
q :退出當前文件的瀏覽

數據截取

head

head命令用來提取文件的前n行,一般配合使用-n選項。當指定的行數爲負數-x時,則會打印出除了後面x行的其他所有數據。

tail

從文件尾部截取數據。tail也是工作中最常用的命令,因爲可以利用-f選項,一直刷新獲取文件尾部最新數據。

選項與參數
-n   : 查看後n行數據,注意當n後面值帶「+」號表示從第x行開始, 如 tail -n +1000 test.txt
-f  : 展示文件後面

通用命令

管道:Shell 還有一種功能,就是可以將兩個或者多個命令(程序或者進程)連接到一起,把一個命令的輸出作爲下一個命令的輸入,以這種方式連接的兩個或者多個命令就形成了管道(pipe),管道命令用"|"來表示

範例:查看ll命令輸出的前10行

ll | head -n 3

 

grep :命令用於查找文件裏符合條件的字符串,這兩個命令也是linux中最常用的的,而在查看日誌文件也通常會結合這兩個命令一起使用。

範例:查看文件文件中那些行包含‘999’

cat -n test.txt | grep '999'

 

>> : 文件追加重定向命令,可以往文件末尾追加數據,正如上文 echo "第$i行" >> test.txt

範例:將一個文件的最後10行復制到helloworld.txt中

tail -n 10 >> helloworld.txt

wc文件字節數,字數,行數查看wc [-clw] [文件...],
-c或--bytes或--chars 只顯示Bytes數。
-l或--lines 只顯示行數。
-w或--words 只顯示字數。
範例:查看文件行數
wc -l

案例實戰

打印日誌文件中第11到20行。
思路:首先獲取前20行,然後在獲取20行的後10行即可,需要使用管道命令。
head -n 20 text.txt | tail -n 10