不可不知的Linux文本查看命令
本文轉(zhuǎn)載自微信公眾號「編程珠璣」,作者守望先生 。轉(zhuǎn)載本文請聯(lián)系編程珠璣公眾號。
Linux常用命令中,除了cat還有很多其他用于文本查看的命令。本文將簡單介紹一下這些文本查看的命令。
全文本顯示--cat
cat可能是常用的一個文本查看命令了,使用方法也很簡單:
- cat file #全文本顯示在終端
- cat -n file #顯示全文本,并顯示行號
另外,cat也可用作合并文件:
- cat file1 file2 >file3
該命令將file1 file2的內(nèi)容合并寫到file3中。
倒序顯示全文本--tac
tac是cat倒過來的寫法,tac以行為單位,倒序顯示全文本內(nèi)容。
- tac file
分頁顯示文本--more
cat將整個文本內(nèi)容輸出到終端。那么也就帶來一個問題,如果文本內(nèi)容較多,前面的內(nèi)容查看將十分不便。而more命令可以分頁顯示。
1.顯示內(nèi)容
- more file
之后,就可以使用按鍵來查看文本。常用按鍵如下:
- 回車 #向下n行,默認為1行
- 空格 #向下滾動一屏
- b #向上滾動一屏
- = #輸出當前行號
- :f #輸出當前文件名和當前行號
- q #退出
2.從指定行開始顯示
- more +10 file
該命令從第10行開始顯示file的內(nèi)容。
3.從匹配的字符串行開始顯示
- more +/string file
該命令從有string的行的前兩行開始file的內(nèi)容。
任意瀏覽搜索文本--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查看上一個結(jié)果
- ?string #向上搜索string,n查看下一個,N查看上一個結(jié)果
- q #退出
相比more命令,less命令能夠搜索匹配需要的字符串。
另外,less還能在多個文件間切換瀏覽:
- less file1 file2 file3
- :n #切換到下一個文件
- :p #切換到上一個文件
- :x #切換到第一個文件
- :d #從當前列表移除文件
顯示文本頭部內(nèi)容--head
head命令的作用就像它的名字一樣,用于顯示文件的開頭部分文本。
常見用法如下:
- head -n 100 file #顯示file的前100行
- head -n -100 file #顯示file的除最后100行以外的內(nèi)容。
顯示文本尾部內(nèi)容--tail
和head命令類似,只不過tail命令用于讀取文本尾部部分內(nèi)容:
- tail -100 file #顯示file最后100行內(nèi)容
- tail -n +100 file #從第100行開始顯示file內(nèi)容
tail還有一個比較實用的用法,用于實時文本更新內(nèi)容。比如說,有一個日志文件正在寫,并且實時在更新,就可以用命令:
- tail -f logFile
對于更新的日志內(nèi)容,會實時打印到終端上,方面查看實時日志。
指定順序顯示文本--sort
sort可用于對文本進行排序并顯示,默認為字典升序。
例如有一段文本test.txt內(nèi)容如下:
- vim
- count
- fail
- help
- help
- dead
- apple
1.升序顯示文本
使用命令:
- sort test.txt
- apple
- count
- dead
- fail
- help
- help
- vim
文本內(nèi)容將以升序顯示。
2.降序顯示
相關(guān)參數(shù)-r:
- sort -r test.txt
- vim
- help
- help
- fail
- dead
- count
- apple
3.去掉重復(fù)的行
我們可以觀察到,前面的help有兩行,如果我們不想看到重復(fù)的行呢?可以使用參數(shù)-u,例如:
- sort -u test.txt
- apple
- count
- dead
- fail
- help
- vim
可以看到help行不再重復(fù)顯示。
4.按照數(shù)字排序
如果按照字典排序,10將會在2的前面,因此我們需要按照數(shù)字大小排序:
- sort -n file
由于本文篇幅有限,不在本文展開介紹,后續(xù)將單獨介紹sort命令的妙用。
過濾顯示文本--sed
sed是一個流編輯器,功能非常強大,但本文只介紹文本查看相關(guān)功能。
1.顯示匹配關(guān)鍵字行
有時候查看日志,可能只需要查看包含某些關(guān)鍵字的日志行:
- 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行
更多內(nèi)容:常見linux命令介紹-sed
去重顯示文本--uniq
常見用法如下:
- uniq file #去除重復(fù)的行
- uniq -c file #去除重復(fù)的行,并顯示重復(fù)次數(shù)
- uniq -d file #只顯示重復(fù)的行
- uniq -u file #只顯示出現(xiàn)一次的行
- uniq -i file #忽略大小寫,去除重復(fù)的行
- uniqe -w 10 file #認為前10個字符相同,即為重復(fù)
文本編輯查看--vi
查看文件也很簡單:
- vi file
而從vi發(fā)展出來的被譽為編輯器之神的vim有著更加強大的功能,這里不作展開。
玩游戲練習Vim :https://vim-adventures.com/
總結(jié)
文本查看命令較多,可根據(jù)使用場景不同選擇使用不同的命令。有些命令的用法較多,本文僅介紹經(jīng)典用法,更多用法可使用man命令查看。很多命令可以結(jié)合其他命令使用,例如ps -elf|more,分頁顯示進程信息等等,更多用法可自行探索。
作者:守望,linux應(yīng)用開發(fā)者,目前在公眾號【編程珠璣】?分享Linux/C/C++/數(shù)據(jù)結(jié)構(gòu)與算法/工具等原創(chuàng)技術(shù)文章和學(xué)習資源。
原文鏈接:https://mp.weixin.qq.com/s/bLxp6ypFN9Eo4hBuTfGSWg