18 पॉइंट द्वारा givvemee 2026-01-20 | 6 टिप्पणियां | WhatsApp पर शेयर करें

डेवलपमेंट करते समय lsof -i :3000 जैसी कमांड न जाने कितनी बार चलानी पड़ती है।
"यह port कौन use कर रहा है?", "लगता है वह server अभी बंद नहीं किया..."

ports-cli एक CLI टूल है जो इस समय खुले हुए सभी ports को process नाम और project path के साथ साफ़-सुथरे तरीके से दिखाता है।

मुख्य फीचर्स

  • एक नज़र में देखें: खुले हुए ports, process नाम और project path को table के रूप में दिखाता है
  • Node.js project पहचान: package.json का name पढ़कर node की जगह असली project नाम दिखाता है
  • यूज़र process filtering: -u option से system processes को छोड़कर सिर्फ़ अपने चलाए हुए processes देखें
  • बंद करना: ports bye 3000 से उस port का process तुरंत kill करें

इंस्टॉलेशन

brew tap givvemee/tap  
brew install ports-cli  

उपयोग

ports              # सभी listening ports दिखाएँ  
ports -u           # सिर्फ़ मेरे चलाए हुए processes  
ports bye 3000     # port 3000 का process बंद करें  

आउटपुट उदाहरण

  
PORT     PROCESS                  PATH  
----     -------                  ----  
3000     my-app                   ~/Documents/GitHub/my-app  
5432     postgres                 -  
8080     test-server              ~/Documents/GitHub/test-server  

यह केवल macOS के लिए है, और Bash script होने के कारण बिना किसी अतिरिक्त dependency के हल्के तरीके से चलता है।

फ़ीडबैक का स्वागत है। :)

6 टिप्पणियां

 
channprj 2026-01-26

ओह, इसमें काफ़ी उपयोगी फीचर्स हैं। 👍🏻

macOS के मामले में, बिना अलग से install किए नीचे दिए गए command से आसानी से जाँच करना भी संभव है।
इसे ~/.zshrc में जोड़ सकते हैं।

(संदर्भ के लिए साझा कर रहा/रही हूँ!)

alias portcheck="printf "\033[4;37m%-15s %-8s %-20s %s\033[0m\n" "COMMAND" "PID" "PORT" "DIR"; sudo lsof -iTCP -sTCP:LISTEN -n -P | awk 'NR>1 {print $2, $1, $9}' | sort -u | while read pid cmd port; do dir=$(sudo lsof -p "$pid" -a -d cwd -F n 2>/dev/null | tail -1 | cut -c2-); printf "\033[1;32m%-15s\033[0m \033[1;36m%-8s\033[0m \033[1;33m%-20s\033[0m %s\n" "$cmd" "$pid" "$port" "$dir"; done"

 
givvemee 2026-01-27

अच्छा, तो आपने portcheck alias बनाकर इस तरह इस्तेमाल किया था। यह तरीका भी काम का लग रहा है। धन्यवाद!

 
channprj 2026-01-27

डबल कोट की समस्या थी, इसलिए इसे फिर से साझा कर रहा हूँ।

alias portcheck='printf "\033[4;37m%-36s %-8s %-22s %s\033[0m\n" "COMMAND" "PID" "LISTEN" "CWD"; sudo lsof -nP -iTCP -sTCP:LISTEN -F pcn 2>/dev/null | awk '"'"'BEGIN{pid=cmd=name=""}/^p/{pid=substr($0,2)}/^c/{cmd=substr($0,2)}/^n/{name=substr($0,2);if(pid&&cmd&&name)print pid"\t"cmd"\t"name}'"'"' | sort -u | while IFS=$'"'"'\t'"'"' read -r pid cmd name; do dir=$(sudo lsof -n -p "$pid" -a -d cwd -F n 2>/dev/null | sed -n '"'"'s/^n//p'"'"' | tail -1); [ -z "$dir" ] && dir="-"; printf "\033[1;32m%-36.36s\033[0m \033[1;36m%-8s\033[0m \033[1;33m%-22s\033[0m %s\n" "$cmd" "$pid" "$name" "$dir"; done'

 
chcv0313 2026-01-22

मुझे जानना है कि sudo Netstat -tnlp की तुलना में इसके फायदे क्या हैं

 
channprj 2026-01-26

इस्तेमाल करके देखेंगे तो समझ आएगा कि यह चीज़ों को थोड़ा ज़्यादा व्यवस्थित तरीके से दिखाता है.
यूज़र के लिए सिर्फ़ वे processes देखने का filter feature भी है जो वह सीधे इस्तेमाल कर रहा है.

 
yshrust 2026-01-21

ओह, मैंने इसे तुरंत इंस्टॉल करके इस्तेमाल किया, और यह इतना सरल है कि इस्तेमाल करने में बहुत अच्छा लगा!!
धन्यवाद, हाहा