linux中命令cat、more、less均可用來查看文件內容,主要區(qū)別有:

創(chuàng)新互聯(lián)為客戶提供專業(yè)的成都網站設計、成都網站建設、程序、域名、空間一條龍服務,提供基于WEB的系統(tǒng)開發(fā). 服務項目涵蓋了網頁設計、網站程序開發(fā)、WEB系統(tǒng)開發(fā)、微信二次開發(fā)、手機網站開發(fā)等網站方面業(yè)務。
1、cat是一次性顯示整個文件的內容,還可以將多個文件連接起來顯示,它常與重定向符號配合使用,適用于文件內容少的情況。
cat主要有三大功能:
2、more命令,功能類似 cat ,cat命令是整個文件的內容從上到下顯示在屏幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能 。more命令從前向后讀取文件,因此在啟動時就加載整個文件。
常用操作命令:
3、less 工具也是對文件或其它輸出進行分頁顯示的工具,應該說是linux正統(tǒng)查看文件內容的工具,功能極其強大。less 的用法比起 more 更加的有彈性。在 more 的時候,我們并沒有辦法向前面翻, 只能往后面看,但若使用了 less 時,就可以使用 [pageup] [pagedown] 等按鍵的功能來往前往后翻看文件,更容易用來查看一個文件的內容!除此之外,在 less 里頭可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜,而且 less 在查看之前不會加載整個文件。
常用操作命令:
lsof命令用于查看你進程打開的文件、打開文件的進程、進程打開的端口。找回/恢復刪除的文件。是十分方便的系統(tǒng)監(jiān)視工具,因為lsof命令需要訪問核心內存和各種文件,所以需要root用戶執(zhí)行。
在Linux環(huán)境下,任何事物都以文件的形式存在,通過文件不僅僅可以訪問常規(guī)數(shù)據,還可以訪問網絡連接和硬件。所以如傳輸控制協(xié)議和用戶數(shù)據協(xié)議套接字等,系統(tǒng)在后臺都為該應用程序分配了一個文件描述符,無論這個文件的本質如何,該文件描述符為應用程序與基礎操作系統(tǒng)之間的交互提供了通用接口。因為應用程序打開文件的描述符列表提供了大量關于這個應用程序本身的信息,因此通過lsof工具能夠查看這個列表對系統(tǒng)監(jiān)測以及排錯將是很有幫助的。
語法:
losf (選項)
選項:
-a 列出打開文件存在的進程;
-c進程名 列出指定進程所打開的文件;
-g 列出GID號進程詳情;
-d文件名 列出占用該文件號的進程;
+d目錄 列出目錄下被打開的文件;
+D目錄 遞歸列出目錄下被打開的文件;
-n目錄 列出使用NFS的文件;
-i條件 列出符合條件的進程。
grep egrep區(qū)別
grep 默認不支持擴展 但可以通過-E 選擇來支持擴展正則
egrep 支持擴展正則
關于正則與擴展正則的區(qū)別可以看我另一篇shell 正則的介紹
文件處理順序 以行為單位,逐行進行處理
默認只輸出與表達式相匹配的文本行
基本用法
- 格式1:egrep [選擇] '正則表達式' 文件
- 格式2:前置命令 | egrep [選擇] '正則表達式'
? egrep命令工具 (擴展正則命令)
? 常用命令選項
?grep 正則表達式,用來查找過濾文檔的工具符號
grep "root" user //在user文檔中查找有單詞root的行
grep "^root" user //在user文檔中查找以單詞root開頭的行
grep "bash " user //查找空行
grep "^ " user //查找以空格開頭的行
grep "[rot]" user //查找字母r或者o或者t
grep "roo[tn]" user //查找root或者roon
grep "[^rot]" user //查找字母r或者o或者t之外的內容
grep "[a-z]" user //查找小寫字母
grep "[A-Z]" user //查找大寫字母
grep "[a-Z]" user //查找所有字母
grep "[0-9]" user //查找數(shù)字
grep "r..t" user //查找以r開頭t結尾中間有2個任意字符的單詞
grep "r. " user //查找以r開頭后面任意字符 相當手通配符
grep "ro*" user //查找以r開頭后面有或沒有字母o的單詞,o可以出現(xiàn)任意次
grep "o{1,2}" user //查找o出現(xiàn)1次到2次的行
grep "o{2,3}" user //查找o出現(xiàn)2次到3次的行
grep "o{2}" user //查找o出現(xiàn)2次的行
grep "o{1,} " user //查找o出現(xiàn)1次以及1次以上
grep "(:0){2}" user //查找:0(數(shù)字零)連續(xù)出現(xiàn)2次的行
擴展正則
egrep "o+" user //查找o出現(xiàn)1次以及1次以上
egrep "o?" user //查找o出現(xiàn)0次或1次
egrep "o{1,2}" user //查找o出現(xiàn)1次到2次的行
egrep "o{2,3}" user //查找o出現(xiàn)2次到3次的行
egrep "o{2}" user //查找o出現(xiàn)2次的行
egrep "o{1,}" user //查找o出現(xiàn)1次以及1次以上
egrep "(:0){2}" user //查找:0(數(shù)字零)連續(xù)出現(xiàn)2次的行
egrep "bash|nologin" user //查找bash或者nologin
egrep "\bthe\b" a //查找單詞the,前后是空格或者特殊符號
案例:
正則表達式匹配練習
1)典型的應用場合:grep、egrep檢索文本行
grep命令不帶-E選項時,支持基本正則匹配模式。比如“word”關鍵詞檢索、“^word”匹配以word開頭的行、“word$”匹配以word結尾的行……等等。
輸出以“r”開頭的用戶記錄:
輸出以“l(fā)ocalhost”結尾的行:
若希望在grep檢索式同時組合多個條件,比如輸出以“root”或者以“daemon”開頭的行:
而若若使用grep -E或egrep命令,可支持擴展正則匹配模式,能夠自動識別 |、{} 等擴展正則表達式中的特殊字符,用起來更加方便,比如:
或者
使用grep -E 與 使用egrep命令完全等效,推薦使用后者,特別是涉及到復雜的正則表達式的時候。
2)grep、egrep命令的-q選項
選項 -q 表示 quiet(靜默)的意思,結合此選項可以只做檢索而并不輸出,通常在腳本內用來識別查找的目標是否存在,通過返回狀態(tài) $? 來判斷,這樣可以忽略無關的文本信息,簡化腳本輸出。
比如,檢查/etc/hosts文件內是否存在192.168.4.4的映射記錄,如果存在則顯示“YES”,否則輸出“NO”,一般會執(zhí)行:
這樣grep的輸出信息和腳本判斷后的提示混雜在一起,用戶不易辨別,所以可以改成以下操作:
是不是清爽多了,從上述結果也可以看到,使用 -q 選項的效果與使用 /dev/null的效果類似。
3)基本元字符 ^、$ —— 匹配行首、行尾
輸出注釋的配置行(以#開頭的行):
統(tǒng)計本地用戶中登錄Shell為“/sbin/nologin”的用戶個數(shù):
提示: -m10僅在文件的前10行中過濾,后面的行不再過濾。
結合 -c 選項輸出匹配的行數(shù)
使用 -c 選項可輸出匹配行數(shù),這與通過管道再 wc -l的效果是相同的,但是寫法更簡便。比如,統(tǒng)計使用“/bin/bash”作為登錄Shell的正常用戶個數(shù),可執(zhí)行:
或者
4)基本元字符 . —— 匹配任意單個字符
以/etc/rc.local文件為例,確認文本內容:
輸出/etc/rc.local文件內的空行(用 –v 選項將條件取反):
5)基本元字符 +、?、 —— 目標出現(xiàn)的次數(shù)*
還以/etc/rc.local文件為例:
輸出包括 f、ff、ff、……的行,即“f”至少出現(xiàn)一次:
輸出包括init、initial的行,即末尾的“ial”最多出現(xiàn)一次(可能沒有):
輸出包括stu、stuf、stuff、stufff、……的行,即末尾的“f”可出現(xiàn)任意多次,也可以沒有。重復目標只有一個字符時,可以不使用括號:
輸出所有行,單獨的“.*”可匹配任意行(包括空行):
輸出/etc/passwd文件內“r”開頭且以“nologin”結尾的用戶記錄,即中間可以是任意字符:
6)元字符 {} —— 限定出現(xiàn)的次數(shù)范圍
創(chuàng)建一個練習用的測試文件:
輸出包括ababab的行,即“ab”連續(xù)出現(xiàn)3次:
輸出包括abab、ababab、abababab的行,即“ab”連續(xù)出現(xiàn)2~4次:
輸出包括ababab、abababab、……的行,即“ab”最少連續(xù)出現(xiàn)3次:
7)元字符 [] —— 匹配范圍內的單個字符
還以前面的測試文件bracet.txt為例:
輸出包括abc、abd的行,即前兩個字符為“ab”,第三個字符只要是c、d中的一個就符合條件:
輸出包括大寫字母的行,使用[A-Z]匹配連續(xù)范圍:
8)單詞邊界匹配
以文件/etc/rc.local為例:
輸出包括單詞“init”的行,文件中“initialization”不合要求:
或者:
輸出包括以“l(fā)l”結尾的單詞的行,使用 匹配單詞右邊界:
或者:
9)多個條件的組合
通過dmesg啟動日志查看藍牙設備、網卡設備相關的信息:
名稱欄目:linux各種命令詳解 常用的linux命令
文章源于:http://chinadenli.net/article28/higpjp.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站建設、用戶體驗、做網站、全網營銷推廣、網站制作、網站收錄
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)