一、 查找命令
1 grep
1 grep 基礎(chǔ)
-C 關(guān)鍵字 上下行數(shù)
-A 關(guān)鍵字和后面的N行
-B 關(guān)鍵字和前面的N行
-n 顯示行號
-i 忽略大小寫
-c 只輸出 關(guān)鍵字出現(xiàn)的次數(shù)
-v 輸出沒有包含關(guān)鍵字內(nèi)容
--color=auto 關(guān)鍵字高亮
-m num 查詢最大數(shù)量, --max-count=num
例子
tail -n 2000 server.log | grep sendAddPostCommentEvent -n -C 1 --color=a
2 并且查詢
- F 參數(shù)強制不使用任何表達式
grep 5288490287094574636 server.log| grep broadcastPushToWeb|grep -F 'status\":2'
3 或者查詢
egrep 'broadcastPushToWeb|5236743288469332012' server.log
grep 'pattern1 \| pattern2' filename
grep -E 'pattern1|pattern2' filename
4 NOT,非查詢
grep -v 'broadcastPushToWeb' filename
5. 后面前面第一次出現(xiàn)
#最后一次
grep -C 100 'listMessageByTypes' catalina.log | tail -200
# 最前面
grep -C 100 'listMessageByTypes' catalina.log | head -200
二、系統(tǒng)信息命令
1. top命令
1. 語法
- -和|是可選的
top -hv | -bcEeHiOSs1 -d secs -n max -u | U user -p pid(s) -o field -w [cols]
1.1 選項
| 選項 | 名稱 | 描述 |
|---|---|---|
| -h | 幫助 | 顯示命令幫助 |
| -v | 版本 | |
| -b | 批處理方式 | 以批處理模式啟動 top,允許將命令的輸出發(fā)送到文件或其他程序。Top 不接受批處理模式下的輸入,并且一直運行到終止或者達到指定的迭代限制為止。 |
| -c | 切換命令行/程序名稱 | 反轉(zhuǎn)最后記住的 c 狀態(tài)。如果頂部顯示命令行,該字段現(xiàn)在顯示程序名稱,反之亦然。 |
| -d [secs.tenths] | 延遲時間間隔 | 提示您在更新屏幕之前指定延遲,并覆蓋默認(rèn)值。數(shù)值以秒為單位。該命令接受小數(shù)秒,但不接受負數(shù)。 |
| -e [k / m /g / t / p] | 切換任務(wù)內(nèi)存縮放 | 允許您更改top 任務(wù)區(qū)域內(nèi)存縮放。可用的縮放選項是k(kibibytes)、m(mebibytes)、g(gibibytes)、t(tebibytes)、p(pebibytes)。 |
| -E [k / m / g / t / p / e] | 切換摘要內(nèi)存縮放 | 允許您更改top摘要區(qū)域內(nèi)存縮放??捎玫目s放選項是k (kibibytes)、m (mebibytes)、g(gibibytes)、t(tebibytes)、p(pebibytes)、e(exbibytes)。 |
| -H | 線程模式操作 | 指定-H選項指示top 顯示單個線程而不是每個進程中所有線程的總和。 |
| -i | 空閑進程切換 | 反轉(zhuǎn)最后記住的i狀態(tài)。當(dāng)開關(guān)關(guān)閉時,top 不顯示自上次更新以來未使用 CPU 資源的任務(wù)。 |
| -n | 限制迭代次數(shù) | top 指定結(jié)束前要生成的最大迭代次數(shù)。 |
| -o [field name] | 覆蓋排序字段 | 指定top 用于對任務(wù)進行排序的字段名稱。在字段名稱前加上一個+強制top 從高到低排序,同時在它前面加上-訂單任務(wù)從低到高。該-o選項主要支持自動批處理模式操作。 |
| -O | 輸出字段名稱 | 該-O選項補充了該-o選項,導(dǎo)致top 分別打印每個可用的字段名稱,然后退出。 |
| -p [N1, N2...] | 監(jiān)控進程 ID 模式 | 指示top 僅監(jiān)視具有指定進程 ID 的進程。當(dāng)與線程模式 ( -H) 結(jié)合使用時,top 顯示每個受監(jiān)視的 PID 線程組中的所有進程。PID 的最大數(shù)量為 20。指定 PID 值0被視為top 程序進程 ID。要恢復(fù)正常操作,請發(fā)出以下任何命令:=、u或U,因為它們是互斥的。 |
| -s | 安全模式操作 | 以安全模式啟動top ,即使是 root。 |
| -S | 累計時間切換 | 反轉(zhuǎn)最后記住的S狀態(tài)。當(dāng)累積時間切換為 ON 時,每個進程都會列出它已使用的 CPU 時間。 |
| -u / -U [ID or name] | 用戶過濾模式 | 僅顯示與指定用戶 ID 或用戶名匹配的進程。該-u選項僅匹配有效用戶,而該-U選項匹配任何用戶 - 真實、有效、已保存或文件系統(tǒng)。在用戶 ID 或用戶名前加上感嘆號 ( !) 會導(dǎo)致top 僅顯示與提供的進程不匹配的進程。 |
| -w [number] | 輸出寬度覆蓋 | 當(dāng)不帶參數(shù)使用時,-w指示top 使用COLUMNS=和LINES=環(huán)境變量格式化輸出(如果適用)。否則,寬度固定為最大 512 列。-w在行號不受限制的情況下,將參數(shù)附加到增加(最多 512)或減少輸出寬度。該程序永遠不會超過top 調(diào)用時的實際終端尺寸。 |
| -1 | 單個/獨立 CPU 狀態(tài)切換 | 反轉(zhuǎn)最后記住的 CPU 狀態(tài)部分。根據(jù) NUMA 節(jié)點命令切換 ( 2) 狀態(tài),在一行中或單獨顯示所有 CPU 信息。 |
2. 示例
2.1 top
- 輸出
- image.png
- 輸出顯示摘要區(qū)域(具有資源使用統(tǒng)計信息的儀表板)和任務(wù)區(qū)域(所有進程的列表)
- top默認(rèn)情況下每三秒更新一次信息。
- 操作
- 如果進程列表很長,請使用向上和向下箭頭以及Page Up和Page Down鍵滾動瀏覽它。要退出top,請按q。
- 發(fā)送信號
- 使用該top命令向正在運行的進程發(fā)送任何信號。按k鍵并輸入過程 PID。top讓您有機會鍵入要發(fā)送的信號。不輸入特定信號會終止進程。
- image.png
2.2 X 次重復(fù)后退出
- 語法
- 對于[X],指定要top刷新輸出的次數(shù)。
top -n [X]
2.3 排序進程
- 排序關(guān)鍵字
- M. Sort by the %MEM column.
- N. Sort by PID column.
- T. Sort by the TIME+ column.
- P. Sort by the %CPU column.
2.4 按特定用戶過濾進程
- -u選項允許您顯示所有用戶特定的進程。在運行時按u鍵top或使用以下語法:
top -u [user name]
- 輸出
- image.png
2.5 更改顯示單位
-
語法
- 使用E鍵選擇要top用于顯示內(nèi)存值的單位。
- 按小寫字母e選擇在進程列表中顯示值的單位。
-
可用的選項是
- kibibytes (KiB)
- mebibytes (MiB)
- gibibytes (GiB)
- tebibytes (TiB)
- pebibytes (PiB)
- exbibytes (EiB - applies only for memory values)
-
輸出
- image.png
2.5 更改輸出內(nèi)容
- 默認(rèn)top輸出包含大量信息,可能看起來很混亂。通過幾次按鍵調(diào)整內(nèi)容,找到您需要的信息,或從摘要中刪除某些部分。
- 單個 CPU 核心統(tǒng)計數(shù)據(jù)
- 語法
- 按鍵盤上的1可以查看每個 CPU 內(nèi)核的單獨統(tǒng)計信息。反復(fù)按1切換核心統(tǒng)計數(shù)據(jù)。
- 輸出
- image.png
- CPU 使用圖
-
top支持基本的 ASCII 圖,表示每個 CPU 內(nèi)核的使用情況。按t打開或關(guān)閉圖表。
- 第一次按t 顯示條紋進度
- 第二次按t 顯示實心進度
- 第三次按t刪除 CPU 顯示和任務(wù)摘要部分。
-
輸出
- image.png
- 按t 變成實心
- image.png
- 內(nèi)存使用圖
- 該命令還支持內(nèi)存和交換內(nèi)存行的圖形顯示選項。要獲得內(nèi)存使用情況的直觀表示,請按m。再次按m刪除線條。
- 更改文字顏色
通過向輸出添加顏色來強調(diào)輸出中的信息。按z鍵為顯示添加顏色:
-
輸出
- image.png
-
自定義顯示元素并選擇不同的顏色
- 按Z打開顏色設(shè)置頁面。
- 按以下鍵選擇要更改的顯示元素:
- S。摘要數(shù)據(jù)區(qū)域。
- M。消息和提示。
- H。列標(biāo)題。
- T。進程列表中的任務(wù)信息。
- 按Enter確認(rèn)選擇。
- 按以下鍵選擇要更改的顯示元素:
- 使用以下鍵之一為所選元素選擇顏色:
- 0。黑色的。
- 1 . 紅色的。
- 2 . 綠色的。
- 3 . 黃色。
- 4 . 藍色的。
- 5 . 品紅。
- 6 . 青色。
- 7 . 白色的。
- 按Enter確認(rèn)選擇。
- 按Z打開顏色設(shè)置頁面。
2.6 顯示進程命令行
-
語法
- top -c
- 進入 top 按c
- image.png
2.7 流程層次結(jié)構(gòu)
- 要查看哪些進程已啟動或由其他進程生成,請按V鍵。
- 當(dāng)想查看系統(tǒng)上的子-父進程層次結(jié)構(gòu)時,樹視圖很有用。
- 輸出
- image.png
2.8 顯示活動任務(wù)
- 按I鍵 ,要過濾輸出并僅顯示活動任務(wù)
- 輸出隱藏了自上次更新以來未使用任何 CPU 資源的任務(wù)。
- 輸出
- image.png
2.9 限制進程數(shù)
- 按n鍵限制輸出中的進程數(shù)。無論活動進程的數(shù)量如何。top提示輸入要查看的進程數(shù)
- 例如,我們只想顯示前 3 個進程:
- image.png
2.10 更改進程優(yōu)先級
- 過程
- 運行top并按r鍵
- 出現(xiàn)提示時,輸入進程 ID 并按Enter 鍵。
- 輸入 PID 后,程序會提示輸入一個新的 nice 值。輸入新值并按Enter 鍵。
負 nice 值表示更高的進程優(yōu)先級。
-
更改PID 28 優(yōu)先級 為 12
- image.png
2.10 過濾進程
- 過濾器top功能允許使用過濾器表達式來限制在列表中查看哪些進程。按o鍵激活過濾器選項。該程序會提示您輸入過濾器表達式。
- 例子
- 顯示 %MEM > 0.2 的
- image.png
三、網(wǎng)絡(luò)相關(guān)
1. netstat 用于顯示網(wǎng)絡(luò)狀態(tài)
1. 語法
netstat [-acCeFghilMnNoprstuvVwx][-A<網(wǎng)絡(luò)類型>][--ip]
1.1 參數(shù)說明
- -a或--all 顯示所有連線中的Socket。
- -A<網(wǎng)絡(luò)類型>或--<網(wǎng)絡(luò)類型> 列出該網(wǎng)絡(luò)類型連線中的相關(guān)地址。
- -c或--continuous 持續(xù)列出網(wǎng)絡(luò)狀態(tài)。
- -C或--cache 顯示路由器配置的快取信息。
- -e或--extend 顯示網(wǎng)絡(luò)其他相關(guān)信息。
- -F或--fib 顯示路由緩存。
- -g或--groups 顯示多重廣播功能群組組員名單。
- -h或--help 在線幫助。
- -i或--interfaces 顯示網(wǎng)絡(luò)界面信息表單。
- -l或--listening 顯示監(jiān)控中的服務(wù)器的Socket。
- -M或--masquerade 顯示偽裝的網(wǎng)絡(luò)連線。
- -n或--numeric 直接使用IP地址,而不通過域名服務(wù)器。
- -N或--netlink或--symbolic 顯示網(wǎng)絡(luò)硬件外圍設(shè)備的符號連接名稱。
- -o或--timers 顯示計時器。
- -p或--programs 顯示正在使用Socket的程序識別碼和程序名稱。
- -r或--route 顯示Routing Table。
- -s或--statistics 顯示網(wǎng)絡(luò)工作信息統(tǒng)計表。
- -t或--tcp 顯示TCP傳輸協(xié)議的連線狀況。
- -u或--udp 顯示UDP傳輸協(xié)議的連線狀況。
- -v或--verbose 顯示指令執(zhí)行過程。
- -V或--version 顯示版本信息。
- -w或--raw 顯示RAW傳輸協(xié)議的連線狀況。
- -x或--unix 此參數(shù)的效果和指定"-A unix"參數(shù)相同。
- --ip或--inet 此參數(shù)的效果和指定"-A inet"參數(shù)相同。
1.2 列頭信息
- Proto
- 套接字使用的協(xié)議(tcp、udp、raw)。
- Recv-Q
- 連接到此套接字的用戶程序未復(fù)制的字節(jié)數(shù)。
- 這些數(shù)字一般都應(yīng)該是0,如果不是則表示軟件包正在隊列中堆積,這種情況是非常少見的
- Send-Q
- 遠程主機未確認(rèn)的字節(jié)數(shù)。
- Local Address
- 套接字本端的地址和端口號。除非指定--numeric ( -n ) 選項,否則套接字地址會解析為其規(guī)范主機名 (FQDN),而端口號會轉(zhuǎn)換為相應(yīng)的服務(wù)名稱。
- 本地計算機的 IP 地址和正在使用的端口號。除非指定-n參數(shù),否則顯示與 IP 地址和端口名稱對應(yīng)的本地計算機的名稱。如果端口尚未建立,則端口號顯示為星號 (*)。
- Foreign Address
- 套接字所連接的遠程計算機的 IP 地址和端口號。除非指定-n參數(shù),否則將顯示對應(yīng)于 IP 地址和端口的名稱。如果端口尚未建立,則端口號顯示為星號 (*)。
- State
- 指示TCP連接的狀態(tài),
- ESTABLISHED 套接字已建立連接。
- SYN_SENT 套接字正在主動嘗試建立連接。
- SYN_RECV 已從網(wǎng)絡(luò)收到連接請求。
- FIN_WAIT1 套接字已關(guān)閉,連接正在關(guān)閉。
- FIN_WAIT2 連接已關(guān)閉,套接字正在等待來自遠程端的關(guān)閉。
- TIME_WAIT 套接字在關(guān)閉后等待處理仍在網(wǎng)絡(luò)中的數(shù)據(jù)包。
- CLOSED 套接字未被使用。
- CLOSE_WAIT 遠程端已關(guān)閉,等待套接字關(guān)閉。
- LAST_ACK 遠程端已關(guān)閉,套接字已關(guān)閉。等待確認(rèn)。
- LISTEN 套接字正在偵聽傳入連接。此類套接字不會包含在輸出中,除非您指定--listening ( -l ) 或 --all ( -a ) 選項。
- CLOSING 兩個套接字都已關(guān)閉,但我們?nèi)匀粵]有發(fā)送所有數(shù)據(jù)。
- UNKNOWN 套接字的狀態(tài)未知。
- 指示TCP連接的狀態(tài),
- PID/Program name
- 擁有套接字的進程的進程 ID (PID) 和進程名稱的斜線分隔對。--program導(dǎo)致包含此列。您還需要超級用戶權(quán)限才能在不屬于您的套接字上查看此信息。此標(biāo)識信息尚不可用于 IPX 套接字。
2. 案例
1. 查看端口端口
- netstat -anp 查看所有端口
root@DESKTOP-2L5PHTK:/etc# netstat -anp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 103/sshd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 343/docker-proxy
tcp 0 0 127.0.0.1:3306 127.0.0.1:33320 ESTABLISHED 343/docker-proxy
tcp 0 0 172.17.0.1:49888 172.17.0.2:3306 ESTABLISHED 343/docker-proxy
tcp 0 0 127.0.0.1:33320 127.0.0.1:3306 ESTABLISHED -
tcp6 0 0 :::22 :::* LISTEN 103/sshd
tcp6 0 0 :::2375 :::* LISTEN 153/dockerd
tcp6 0 0 :::3306 :::* LISTEN 351/docker-proxy
tcp6 0 0 172.20.116.187:2375 172.20.112.1:61782 ESTABLISHED 153/dockerd
tcp6 0 0 172.20.116.187:2375 172.20.112.1:61768 ESTABLISHED 153/dockerd
- 找出程序運行的端口
- netstat -ap | grep ssh
root@DESKTOP-2L5PHTK:/etc# netstat -ap | grep ssh
tcp 0 0 0.0.0.0:ssh 0.0.0.0:* LISTEN 103/sshd
tcp6 0 0 [::]:ssh [::]:* LISTEN 103/sshd
2. tcp/ip
1.查看tcp所有端口
- netstat -antp
root@DESKTOP-2L5PHTK:/etc# netstat -antp
Active Internet connections (servers and established)
Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program name
tcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 103/sshd
tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN 343/docker-proxy
tcp 0 0 127.0.0.1:3306 127.0.0.1:33320 ESTABLISHED 343/docker-proxy
tcp 0 0 172.17.0.1:49888 172.17.0.2:3306 ESTABLISHED 343/docker-proxy
tcp 0 0 127.0.0.1:33320 127.0.0.1:3306 ESTABLISHED -
tcp6 0 0 :::22 :::* LISTEN 103/sshd
tcp6 0 0 :::2375 :::* LISTEN 153/dockerd
tcp6 0 0 :::3306 :::* LISTEN 351/docker-proxy
tcp6 0 0 172.20.116.187:2375 172.20.112.1:61782 ESTABLISHED 153/dockerd
tcp6 0 0 172.20.116.187:2375 172.20.112.1:61768 ESTABLISHED 153/dockerd
- TCP各種狀態(tài)列表并統(tǒng)計排序
- netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
root@DESKTOP-2L5PHTK:/etc# netstat -nat |awk '{print $6}'|sort|uniq -c|sort -rn
5 LISTEN
5 ESTABLISHED
1 established)
1 Foreign
- TCP 長連接
- netstat —f inet
- 這個— 是中文的-
root@DESKTOP-2L5PHTK:/etc# netstat –f inet
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local Address Foreign Address State
tcp 0 0 localhost:mysql localhost:33320 ESTABLISHED
tcp 0 0 172.17.0.1:49888 172.17.0.2:mysql ESTABLISHED
tcp 0 0 localhost:33320 localhost:mysql ESTABLISHED
tcp6 0 0 172.20.116.187:2375 DESKTOP-2L5PHTK:61782 ESTABLISHED
tcp6 0 0 172.20.116.187:2375 DESKTOP-2L5PHTK:61768 ESTABLISHED













