(1)Linux目錄操作命令
cd ..退出當前目錄,返回上一級目錄;cd / 退出當前目錄,返回根目錄;
mkdir命令用於創建一個新的目錄;rmdir命令功能刪除指定的空目錄。
(2)Linux篩選日志
下面羅列的這些基本命令,很有用,對於查詢線上線下問題都非常有用的,不妨學習一下哈。
先必須了解兩個最基本的命令:
tail -n 10 test.log 查詢日志尾部最后10行的日志;
tail -n +10 test.log 查詢10行之后的所有日志;
head -n 10 test.log 查詢日志文件中的頭10行日志;
head -n -10 test.log 查詢日志文件除了最后10行的其他所有日志;
場景1: 按行號查看---過濾出關鍵字附近的日志
因為通常時候我們用grep拿到的日志很少,我們需要查看附近的日志.
我是這樣做的,首先: cat -n test.log |grep "地形" 得到關鍵日志的行號
<3>得到"地形"關鍵字所在的行號是102行. 此時如果我想查看這個關鍵字前10行和后10行的日志:
cat -n test.log |tail -n +92|head -n 20
tail -n +92表示查詢92行之后的日志
head -n 20 則表示在前面的查詢結果里再查前20條記錄
場景2:那么按日期怎么查呢? 通常我們非常需要查找指定時間端的日志
sed -n '/2014-12-17 16:17:20/,/2014-12-17 16:17:36/p' test.log
第二種方式,兩個行號之間的命令:
sed -n '5,10p' filename 這樣你就可以只查看文件的第5行到第10行。
特別說明:上面的兩個日期必須是日志中打印出來的日志,否則無效.
關於日期打印,可以先 grep '2014-12-17 16:17:20' test.log 來確定日志中是否有該時間點,以確保第4步可以拿到日志
這個根據時間段查詢日志是非常有用的命令.
如果我們查找的日志很多,打印在屏幕上不方便查看, 有兩個方法:
(1)使用more和less命令, 如: cat -n test.log |grep "地形" |more 這樣就分頁打印了,通過點擊空格鍵翻頁
a.More命令
more命令,功能類似 cat ,cat命令是整個文件的內容從上到下顯示在屏幕上。 more會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按 b 鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能 。more命令從前向后讀取文件,因此在啟動時就加載整個文件。
b.Less
less 工具也是對文件或其它輸出進行分頁顯示的工具,應該說是linux正統查看文件內容的工具,功能極其強大。less 的用法比起 more 更加的有彈性。在 more 的時候,我們並沒有辦法向前面翻, 只能往后面看,但若使用了 less 時,就可以使用 [pageup] [pagedown] 等按鍵的功能來往前往后翻看文件,更容易用來查看一個文件的內容!除此之外,在 less 里頭可以擁有更多的搜索功能,不止可以向下搜,也可以向上搜。
(2)使用 >xxx.txt 將其保存到文件中,到時可以拉下這個文件分析.如:
cat -n test.log |grep "地形" >xxx.txt
這幾個日志查看方法應該可以滿足日常需求了.
grep命令多條件查詢
1、或操作
grep -E ’123|abc’ filename // 找出文件(filename)中包含123或者包含abc的行
egrep ’123|abc’ filename // 用egrep同樣可以實現
awk ’/123|abc/’ filename // awk 的實現方式
2、與操作
grep pattern1 files | grep pattern2 :顯示既匹配 pattern1 又匹配 pattern2 的行。
3、其他操作
grep -i pattern files :不區分大小寫地搜索。默認情況區分大小寫,
grep -l pattern files :只列出匹配的文件名,
grep -L pattern files :列出不匹配的文件名,
grep -w pattern files :只匹配整個單詞,而不是字符串的一部分(如匹配‘magic’,而不是‘magical’),
grep -C number pattern files :匹配的上下文分別顯示[number]行
grep的-A, -B, -C選項分別可以顯示匹配行的后,前,后前多少行內容:
grep -A 100 'TooManyResultsException' catalina.log.2017-09-25 后
grep -B 100 'TooManyResultsException' catalina.log.2017-09-25 前
grep -C 100 'TooManyResultsException' catalina.log.2017-09-25 前后
grep -C 100 --color 'TooManyResultsException' catalina.log.2017-09-25 帶顏色輸出
查詢日志特殊場景:
如果日志非常的多,在短短的一個小時的時間中就有上千條或者上萬條數據,僅僅根據條件篩選的話非常麻煩,即使篩選出來也會有很多條數據。如果我們知道該條調用發生的時間,就可以根據日志最前面打印的時間判斷出哪些記錄符合查詢條件。所以,我們可以根據日志的日期作為搜索條件,並且配合grep使用,如下所示:
sed -n '/2017-03-08 15:42:03/,/2017-03-08 15:42:05/p' dubbo-access-consumer.2017-03-08.log | grep countOrgOrder
我們可以使用sed命令的查詢模式:
使用模式進行查詢
[root@localhost ruby] # sed -n '/ruby/p' ab #查詢包括關鍵字ruby所在所有行
[root@localhost ruby] # sed -n '/\$/p' ab #查詢包括關鍵字$所在所有行,使用反斜線\屏蔽特殊含義
查詢.bz2類型的日志文件,如下所示:bzgrep 60000000005137 dubbo-access-provider.2017-05-17.log.bz2
下面介紹一下如何查詢篩選服務器上運行的進程:
1.使用ps命令執行相應操作,如果想查詢服務器上所有運行的進程的話,可以使用命令ps aux即可查出;
2.如果有具體的篩選條件的話,就可以使用ps aux | grep xxx即可;
3.或者使用命令 ps -ef | grep xxx 也可以完成相應的篩選工作;
4.終止某個進程的命令 kill -9 XXXXX XXXXX為上述查出的序號 如: 19979線程終止為: kill -9 19979
(轉自:https://blog.csdn.net/waeceo/article/details/53258574)