Linux 常用命令:文本查看篇

Linux愛好者2018-12-09 03:01:39

(給Linux愛好者加星標,提升Linux技能


作者:守望(本文來自作者投稿,簡介見末尾)


前言


Linux常用命令中,除了cat還有很多其他用於文本查看的命令。本文將簡單介紹一下這些文本查看的命令。


全文本顯示--cat


cat可能是常用的一個文本查看命令了,使用方法也很簡單:


cat file  #全文本顯示在終端
cat -n file #顯示全文本,並顯示行號


另外,cat也可用作合併文件:


cat file1 file2 >file3


該命令將file1 file2的內容合併寫到file3中。


倒序顯示全文本--tac


tac是cat倒過來的寫法,tac以行為單位,倒序顯示全文本內容。


tac file


分頁顯示文本--more


cat將整個文本內容輸出到終端。那麼也就帶來一個問題,如果文本內容較多,前面的內容查看將十分不便。而more命令可以分頁顯示。


1.顯示內容


more file


之後,就可以使用按鍵來查看文本。常用按鍵如下:


回車    #向下n行,默認為1行
空格    #向下滾動一屏
b      #向上滾動一屏
=      #輸出當前行號
:f     #輸出當前文件名和當前行號
q      #退出


2.從指定行開始顯示


more +10 file


該命令從第10行開始顯示file的內容。


3.從匹配的字符串行開始顯示


more +/string file


該命令從有string的行的前兩行開始file的內容。


任意瀏覽搜索文本--less


less命令的基本功能和more沒有太大差別,但是less命令可以向前瀏覽文件,而more只能向後瀏覽文件,同時less還擁有更多的搜索功能。


常見使用方法:


less file     #瀏覽file
less -N file  #瀏覽file,並且顯示每行的行號
less -m file  #瀏覽file,並顯示百分比


常用按鍵如下:


f        #向前滾動一屏
b        #向後滾動一屏
回車或j   #向前移動一行
k        #向後移動一行
G        #移動到最後一行
g        #移動到第一行
/string  #向下搜索string,n查看下一個,N查看上一個結果
string #向上搜索string,n查看下一個,N查看上一個結果
q    #退出


相比more命令,less命令能夠搜索匹配需要的字符串。


另外,less還能在多個文件間切換瀏覽:


less file1 file2 file3
:n     #切換到下一個文件
:p     #切換到上一個文件
:x     #切換到第一個文件
:d     #從當前列表移除文件


顯示文本頭部內容--head


head命令的作用就像它的名字一樣,用於顯示文件的開頭部分文本。


常見用法如下:


head -n 100 file #顯示file的前100
head -n -100 file #顯示file的除最後100行以外的內容。  


顯示文本尾部內容--tail


和head命令類似,只不過tail命令用於讀取文本尾部部分內容:


tail -100 file  #顯示file最後100行內容
tail -n +100 file  #從第100行開始顯示file內容   


tail還有一個比較實用的用法,用於實時文本更新內容。比如說,有一個日誌文件正在寫,並且實時在更新,就可以用命令:


tail -f logFile


對於更新的日誌內容,會實時打印到終端上,方面查看實時日誌。


指定順序顯示文本--sort


sort可用於對文本進行排序並顯示,默認為字典升序。


例如有一段文本test.txt內容如下:


vim
count
fail
help
help
dead
apple


1.升序顯示文本


使用命令:


sort test.txt
apple
count
dead
fail
help
help
vim


文本內容將以升序顯示。


2.降序顯示


相關參數-r:


sort -r test.txt
vim
help
help
fail
dead
count
apple


3.去掉重複的行


我們可以觀察到,前面的help有兩行,如果我們不想看到重複的行呢?可以使用參數-u,例如:


sort -u test.txt
apple
count
dead
fail
help
vim


可以看到help行不再重複顯示。


4.按照數字排序


如果按照字典排序,10將會在2的前面,因此我們需要按照數字大小排序:


sort -n file


由於本文篇幅有限,不在本文展開介紹,後續將單獨介紹sort命令的妙用。


過濾顯示文本--sed


sed是一個流編輯器,功能非常強大,但本文只介紹文本查看相關功能。


1.顯示匹配關鍵字行


有時候查看日誌,可能只需要查看包含某些關鍵字的日誌行:


sed -n "/string/p" logFile


上面的命令表示打印包含string的行。


2.打印指定行


sed -n "1,5p" logFile #打印第1到5行
sed -n '3,5{=;p}' logFile #打印3到5行,並且打印行號
sed -n "10p" logFIle  #打印第10行


去重顯示文本--uniq


常見用法如下:


uniq file  #去除重複的行
uniq -c file #去除重複的行,並顯示重複次數
uniq -d file #只顯示重複的行
uniq -u file #只顯示出現一次的行
uniq -i file #忽略大小寫,去除重複的行
uniqe -w 10 file #認為前10個字符相同,即為重複


文本編輯查看--vi


查看文件也很簡單:


vi file


而從vi發展出來的被譽為編輯器之神的vim有著更加強大的功能,這裡不作展開。


總結


文本查看命令較多,可根據使用場景不同選擇使用不同的命令。有些命令的用法較多,本文僅介紹經典用法,更多用法可使用man命令查看。很多命令可以結合其他命令使用,例如ps -elf|more,分頁顯示進程信息等等,更多用法可自行探索。



【本文作者】


守望:一名好文學,好技術的開發者。在個人公眾號“編程珠璣”堅持分享原創技術文章,期待一起交流學習。



推薦閱讀

(點擊標題可跳轉閱讀)

如何在 Linux 中找到並刪除重複文件

10 個實戰及面試常用 Shell 腳本編寫

10 個 Linux 中方便的 Bash 別名



看完本文有收穫?請分享給更多人

關注「Linux 愛好者」加星標,提升Linux技能

閱讀原文