Açık portları ve süreçleri tek bakışta gösteren CLI aracı
(github.com/givvemee)Geliştirme yaparken lsof -i :3000 gibi komutları sayısız kez yazmak zorunda kalıyoruz.
"Bu portu ne kullanıyor?", "Sanırım az önceki sunucuyu kapatmadım..."
ports-cli, şu anda açık olan tüm portları süreç adı ve proje yolu ile birlikte düzenli şekilde gösteren bir CLI aracıdır.
Başlıca özellikler
- Tek bakışta görünüm: Açık portları, süreç adını ve proje yolunu tablo halinde gösterir
- Node.js proje algılama:
package.jsoniçindekinamedeğerini okuyaraknodeyerine gerçek proje adını gösterir - Kullanıcı süreçlerini filtreleme:
-useçeneğiyle sistem süreçlerini hariç tutup yalnızca benim başlattıklarımı gösterir - Kapatma:
ports bye 3000ile ilgili porttaki süreci anında kill eder
Kurulum
brew tap givvemee/tap
brew install ports-cli
Kullanım
ports # tüm listening portları göster
ports -u # sadece benim başlattığım süreçler
ports bye 3000 # 3000 portundaki süreci sonlandır
Çıktı örneği
PORT PROCESS PATH
---- ------- ----
3000 my-app ~/Documents/GitHub/my-app
5432 postgres -
8080 test-server ~/Documents/GitHub/test-server
macOS’a özeldir; Bash betiği olarak ek bağımlılık olmadan hafif şekilde çalışır.
Geri bildirimlere açığım. :)
6 yorum
Oo, kullanışlı özellikler varmış. 👍🏻
macOS için ayrıca kurulum yapmadan aşağıdaki komutla bunu kolayca kontrol etmek de mümkün.
~/.zshrciçine ekleyebilirsiniz.(Bilgi amaçlı paylaşıyorum!)
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"
Demek
portcheckalias'ını böyle oluşturup kullanıyormuşsunuz. Böyle bir yöntem de mümkünmüş. Teşekkürler!Çift tırnak sorunu olduğu için yeniden paylaşıyorum.
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'
sudo netstat -tnlpile kıyaslandığında üstün yanı nedir merak ediyorum.Kullandığınızda göreceğiniz gibi, bilgileri biraz daha düzenli şekilde gösteriyor.
Ayrıca yalnızca kullanıcının doğrudan kullanmakta olduğu süreçleri görebilmeniz için bir filtre özelliği de var.
Oh, hemen kurup denedim; basit olduğu için kullanımı çok iyi!!
Teşekkürler haha