淺析Wind和Linux中查看端口占用情況和Kill(附代碼)

之前的文章《一文講解MacOS常用終端命令(附代碼)》中,給大家了解了一文講解MacOS常用終端命令。下面本篇文章給大家了解Wind和Linux中查看端口占用情況和Kill,我們一起看看怎么做。

淺析Wind和Linux中查看端口占用情況和Kill(附代碼)

端口占用情況和Kill(Window & Linux)

windows 使用

window中的netstat

  • -a 顯示所有連接和偵聽(tīng)端口。

  • -n 以數(shù)字形式顯示地址和端口號(hào)。

  • -o 顯示擁有的與每個(gè)連接關(guān)聯(lián)的進(jìn)程ID。

查看所有端口占用情況

netstat??-ano

查看被占用端口3306對(duì)應(yīng)的PID

netstat?-ano?|?findstr?3306

查看指定端口3306的PID進(jìn)程

tasklist?|?findstr?3306

結(jié)束進(jìn)程

強(qiáng)制(/F參數(shù))殺死 pid 為 12345 的所有進(jìn)程包括子進(jìn)程(/T參數(shù)):?

taskkill?/T?/F?/PID?12345

Linux使用

使用netstat命令

-t (tcp)僅顯示tcp相關(guān)選項(xiàng)

-u (ucp)僅顯示ucp相關(guān)選項(xiàng)-n拒絕顯示別名,能顯示數(shù)字的全轉(zhuǎn)成數(shù)字

-l 僅列出有在Listen(監(jiān)聽(tīng))的服務(wù)狀態(tài)

-p 顯示建立相關(guān)鏈接的程序名

看當(dāng)前所有已經(jīng)使用的端口情況

netstat???-nultp

查看某個(gè)端口使用情況

netstat???-anp?|grep?3306

使用lsof命令

  • 默認(rèn) : 沒(méi)有選項(xiàng),lsof列出活躍進(jìn)程的所有打開(kāi)文件

  • 組合 : 可以將選項(xiàng)組合到一起,如-abc,但要當(dāng)心哪些選項(xiàng)需要參數(shù)

  • -a : 結(jié)果進(jìn)行“與”運(yùn)算(而不是“或”)

  • -l : 在輸出顯示用戶(hù)ID而不是用戶(hù)名

  • -h : 獲得幫助

  • -t : 僅獲取進(jìn)程ID

  • -U : 獲取UNIX套接口地址

  • -F : 格式化輸出結(jié)果,用于其它命令。可以通過(guò)多種方式格式化,如-F pcfn(用于進(jìn)程id、命令名、文件描述符、文件名,并以空終止)

lsof?-i:3306

常用

  • lsof abc.txt 顯示開(kāi)啟文件abc.txt的進(jìn)程

  • lsof -i :22 知道22端口現(xiàn)在運(yùn)行什么程序

  • lsof -c abc 顯示abc進(jìn)程現(xiàn)在打開(kāi)的文件

  • lsof -g gid 顯示歸屬gid的進(jìn)程情況

  • lsof +d /usr/local/ 顯示目錄下被進(jìn)程開(kāi)啟的文件

  • lsof +D /usr/local/ 同上,但是會(huì)搜索目錄下的目錄,時(shí)間較長(zhǎng)

  • lsof -d 4 顯示使用fd為4的進(jìn)程

  • lsof -i 用以顯示符合條件的進(jìn)程情況

  • lsof -p 12 看進(jìn)程號(hào)為12的進(jìn)程打開(kāi)了哪些文件

  • lsof +|-r [t] 控制lsof不斷重復(fù)執(zhí)行,缺省是15s刷新

  • lsof -r,lsof會(huì)永遠(yuǎn)不斷的執(zhí)行,直到收到中斷信號(hào)

  • lsof +r,lsof會(huì)一直執(zhí)行,直到?jīng)]有檔案被顯示

  • lsof -s 列出打開(kāi)文件的大小,如果沒(méi)有大小,則留下空白

  • lsof -u username 以UID,列出打開(kāi)的文件

使用ps命令

命令參數(shù):

  • a 顯示所有進(jìn)程

  • -a 顯示同一終端下的所有程序

  • -A 顯示所有進(jìn)程

  • c 顯示進(jìn)程的真實(shí)名稱(chēng)

  • -N 反向選擇

  • -e 等于“-A”

  • e 顯示環(huán)境變量

  • f 顯示程序間的關(guān)系

  • -H 顯示樹(shù)狀結(jié)構(gòu)

  • r 顯示當(dāng)前終端的進(jìn)程

  • T 顯示當(dāng)前終端的所有程序

  • u 指定用戶(hù)的所有進(jìn)程

  • -au 顯示較詳細(xì)的資訊

  • -aux 顯示所有包含其他使用者的行程

  • -C 列出指定命令的狀況

  • –lines 每頁(yè)顯示的行數(shù)

  • –width 每頁(yè)顯示的字符數(shù)

  • –help 顯示幫助信息

  • –version 顯示版本顯示

查找特定進(jìn)程

ps?-ef|grep?ssh

輸出:

chuchur@linux:~/share$?ps?-ef|grep?bash chuchur????????9448??79650??0?06:05?pts/4????00:00:00?grep?--color=auto?bash chuchur???????79650??79575??0?03:49?pts/4????00:00:00?bash

通過(guò)服務(wù)名字查找PID

查找 nginx 和 python 占用情況

ps?aux?|?egrep?'(nginx|python)'

輸出:

root?????????951??0.0??0.3?425268?27680??????????Ssl???2020???9:48?/usr/libexec/platform-python?-Es?/usr/sbin/tuned?-l?-P root??????212828??0.0??0.1?135300?13924??????????Ss????2020???0:00?nginx:?master?process?/usr/sbin/nginx root?????2488443??0.0??0.1?164676?14892??????????S????Mar06???0:00?nginx:?worker?process

結(jié)束進(jìn)程

kill命令參數(shù)

  • -1 (HUP):重新加載進(jìn)程。

  • -9 (KILL):殺死一個(gè)進(jìn)程。

  • -15 (TERM):正常停止一個(gè)進(jìn)程。

  • -KILL 強(qiáng)制殺死進(jìn)程

kill?-9?65300?#徹底干掉pid為65530的進(jìn)程  kill?-9?$(ps?-ef?|?grep?guest)?#干掉guest?用戶(hù)進(jìn)程 #or kill?-u?guest

推薦學(xué)習(xí):windows教程

? 版權(quán)聲明
THE END
喜歡就支持一下吧
點(diǎn)贊14 分享
站長(zhǎng)的頭像-小浪學(xué)習(xí)網(wǎng)月度會(huì)員