前言
當我們的java專案上線后,一般的java專案都是部署到linux環境的,如果生產出現問題,就需要我們有能力在linux系統上查找問題所在,而常見的查找問題的方式就是看log日志,看看哪個地方出現例外,再根據例外情況進行代碼修改;以下命令都是查詢日志檔案內容可以用到的命令,使用這些工具可以更快地幫我們找到問題所在;
find 查找某個檔案
命令為: find / -name fileName
find:查找檔案的命令/: 從根目錄開始查找,會一往所有的子目錄一直查詢,如果要從當前目錄開始查找,這樣寫find ./ -name fileName-name:根據名稱模糊查詢fileName需要查詢的檔案名稱
grep命令—查找檔案內容
linux系統中,利用grep列印匹配的上下幾行
-
grep -5 'parttern' inputfile//列印匹配行的前后5行 -
grep -C 5 'parttern' inputfile//列印匹配行的前后5行 -
grep -A 5 'parttern' inputfile//列印匹配行的后5行 -
grep -B 5 'parttern' inputfile//列印匹配行的前5行
另外,grep命令還可以和其他命令組合 一起使用,就像這樣
tail -10f xxx.log |grep -5 '%s*'// 查看xxx日志中匹配某字串的后面5行ps -ef | grep java// 查詢所有帶java字符的行程
head命令 查看檔案內容頭幾行
head fileName:列印檔案內容頭10行內容,等同于命令:head -n 10 fileName;head -n 50 fileName:列印檔案內容前50行;head -n 50 fileName >> head.txt:將檔案前50行的內容保存到head.txt里面
tail命令 查看檔案內容末尾幾行
tail fileName//列印檔案末尾10行內容,等同于命令:tail -n 10 fileNametail -n 50 fileName,列印檔案末尾50行內容tail -n +50 fileName,列印檔案從第50行開始一直到末尾的內容tail -f fileName,持續跟蹤檔案的增長情況,實時輸出檔案的更新內容;當檔案改名或被洗掉,則跟蹤停止;常用于查看實時日志情況;可以簡寫為tailf fileNametail -F fileName: 注意這里是大寫的F, ,持續跟蹤檔案的增長情況,實時輸出檔案的更新內容;并保持重試,當檔案改名或被洗掉后,后面又創建了相同的檔案,則會繼續跟蹤;tail -f -s 10 fileName:每次間隔10秒列印一次檔案的最新內容tail -n 50 fileName >> tail.txt:將檔案末尾50行的內容保存到tail.txt檔案中tail -c 50 fileName:列印檔案末尾50個位元組的字符
cat命令 升序查看檔案所有內容
如果檔案太大,慎用cat命令,因為會將檔案內的所有內容都列印出來;
cat -n fileName:從1開始對檔案內容的每一行輸出行號cat -b fileName:從1開始對檔案內容的每一行輸出行號,和-n相似,不過會對空行不編號cat -s fileName:當遇到有連續兩行以上的空白行,就代換為一行的空白行,cat -E fileName:在每行結束處顯示 $,cat -n textfile1 > textfile2:把 textfile1 的檔案內容加上行號后輸入 textfile2 這個檔案里cat fileName | grep VM:查找檔案內所有帶有VM字符的行cat fileName | grep -2 VM:查找檔案內所有帶有VM字符的行和前后2行;
tac命令 倒序查看檔案所有內容
tac和cat使用方法相同,區別是cat升序展示,tac倒敘展示,其實cat字母反過來就是tac,cat和tac命令執行對比圖

more命令 翻頁展示
more命令可以將檔案內容分頁展示,空格鍵:space查看下一頁,B鍵查看上一頁;需要注意的是more命令不能直接定位到末尾開始翻頁,
more fileName:默認根據視窗大小,一頁一頁地顯示檔案內容;more -10 fileName: 翻頁時每頁顯示10行more +10 fileName:從第10行開始分頁more -d fileName:提示,在畫面下方顯示 [Press space to continue, ‘q’ to quit.] ,如果你按錯鍵了會提示: [Press ‘h’ for instructions.] ,按下H鍵會展示幫助資訊,告訴你有哪些可以使用的命令;more -l fileName:取消遇見特殊字元 ^L(送紙字元)時會暫停的功能more -f fileName:計算行數時,以實際上的行數,而非自動換行過后的行數(有些單行字數太長的會被擴展為兩行或兩行以上)more -p fileName:不以卷動的方式顯示每一頁,而是先清除螢幕后再顯示內容(不加-p時下一頁上一頁都是追加在后面展示的)more -c fileNme:不以卷動的方式顯示每一頁,而是先顯示內容后在清除螢幕(-c 跟 -p 相似,不同的是先顯示內容再清除其他舊資料,肉眼看不出區別)more -s fileName: 當遇到有連續兩行以上的空白行,就合并為一行的空白行more +/exception fileName:在每個檔案顯示前搜尋該字串(exception),然后從該字串之后開始顯示more fileName1 fileName2: 展示多個檔案內容,到達第一個檔案末尾時,按下空格鍵將自動翻頁到下一個檔案的展示more -u fileName:不顯示下引號輸出,百度了下回車旁邊的就是下引號,其實就是單引號;
less 命令
less命令和more命令類似,但使用 less 可以隨意瀏覽檔案,但若使用了 less 時,就可以使用[pageup]和[pagedown] 等按鍵的功能來往前往后翻看檔案,更容易用來查看一個檔案的內容!除此之外,在 less 里頭可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜,

less -b 1024 fileName:設定緩沖區大小less -e fileName:當檔案顯示結束后,再往后翻頁將會自動離開less -f fileName: 強迫打開特殊檔案,例如外圍設備代號、目錄和二進制檔案less -i fileName:搜索時忽略大小寫,搜索命令在下面會提到less -N fileName:展示每行的行號less -s fileName: 當遇到有連續兩行以上的空白行,就合并為一行的空白行less -m fileName:查看進度,以百分比的方式展示,和more命令最下面的百分比類似,
less 命令內常用操作
| 符號 | 描述 |
|---|---|
| /字串 | 向下搜索“字串”的功能 |
| ?字串 | 向上搜索“字串”的功能 |
| n | 重復前一個搜索(與 / 或 ? 有關) |
| N | 反向重復前一個搜索(與 / 或 ? 有關) |
| b | 向前翻一頁 |
| d | 向后翻半頁 |
| q | 退出 less 命令 |
| 空格鍵 | 向后翻一頁 |
| 向上鍵 | 向上翻動一行 |
| 向下鍵 | 向下翻動一行 |
nl命令 展示行號
-
nl -b a fileName: 無論是否空行,都展示出行號,和cat -n fileName命令一樣 -
nl -b t fileName: 如果有空行,空的那一行不顯示行號(默認值) -
nl -n ln fileName:行號在命令列的最左邊展示 -
nl -n rn fileName:行號在最右邊展示,且不加0 -
nl -w 2 fileName:行號占用的位數; -
nl -n rz fileName:行號在最左邊展示,加0 ,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/289277.html
標籤:其他
上一篇:【小白學Java】D26 》》》Collections集合工具類
下一篇:你知道什么是 RPC 嗎?
