18 poin oleh givvemee 2026-01-20 | 6 komentar | Bagikan ke WhatsApp

Saat mengembangkan, kita jadi tak terhitung berapa kali mengetik perintah seperti lsof -i :3000.
"Port ini sedang dipakai apa?", "Sepertinya server yang tadi belum dimatikan..."

ports-cli adalah alat CLI yang menampilkan semua port yang sedang terbuka dengan rapi beserta nama proses dan path proyeknya.

Fitur utama

  • Sekali lihat: Menampilkan port yang terbuka, nama proses, dan path proyek dalam bentuk tabel
  • Pengenalan proyek Node.js: Membaca package.json lalu menampilkan nama proyek sebenarnya alih-alih node
  • Filter proses pengguna: Dengan opsi -u, mengecualikan proses sistem dan hanya memeriksa proses yang saya jalankan
  • Hentikan: ports bye 3000 untuk langsung membunuh proses pada port tersebut

Instalasi

brew tap givvemee/tap  
brew install ports-cli  

Cara pakai

ports              # tampilkan semua port listening  
ports -u           # hanya proses yang saya jalankan  
ports bye 3000     # hentikan proses pada port 3000  

Contoh output

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

Khusus macOS, berjalan ringan sebagai skrip Bash tanpa dependensi tambahan.

Masukan sangat disambut. :)

6 komentar

 
channprj 2026-01-26

Oh, ada beberapa fitur praktis juga ya. 馃憤馃徎

Untuk macOS, tanpa instalasi terpisah pun Anda bisa mengeceknya dengan sederhana lewat perintah di bawah ini.
Kalau ditambahkan ke ~/.zshrc, akan lebih praktis.

(Saya bagikan sebagai referensi!)

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

Jadi Anda membuat alias portcheck seperti ini untuk dipakai. Metode seperti ini juga bisa jadi pilihan. Terima kasih!

 
channprj 2026-01-27

Saya membagikannya lagi karena ada masalah dengan tanda kutip ganda.

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

Saya penasaran apa kelebihannya dibanding sudo netstat -tnlp.

 
channprj 2026-01-26

Kalau dicoba, Anda akan tahu bahwa alat ini menampilkannya dengan susunan yang lebih rapi.
Ada juga fitur filter sehingga pengguna bisa melihat hanya proses yang sedang mereka gunakan secara langsung.

 
yshrust 2026-01-21

Oh, saya langsung pasang dan coba pakai, ternyata simpel jadi enak digunakan!!
Terima kasih wkwk