Show GN: 열려있는 포트와 프로세스를 한눈에 보여주는 CLI 도구
(github.com/givvemee)개발하다 보면 lsof -i :3000 같은 명령어를 수도 없이 치게 됩니다.
"이 포트 뭐가 쓰고 있지?", "아까 그 서버 안 끈 것 같은데..."
ports-cli는 현재 열려있는 모든 포트를 프로세스 이름, 프로젝트 경로와 함께 깔끔하게 보여주는 CLI 도구입니다.
주요 기능
- 한눈에 보기: 열린 포트, 프로세스명, 프로젝트 경로를 테이블 형태로 표시
- Node.js 프로젝트 인식: package.json의 name을 읽어서 'node' 대신 실제 프로젝트명으로 표시
-
사용자 프로세스 필터링:
-u옵션으로 시스템 프로세스 제외하고 내가 띄운 것만 확인 - 종료: ports bye 3000으로 해당 포트 프로세스 즉시 kill
설치
brew tap givvemee/tap
brew install ports-cli
사용법
ports # 모든 리스닝 포트 표시
ports -u # 내가 띄운 프로세스만
ports bye 3000 # 3000번 포트 프로세스 종료
출력 예시
PORT PROCESS PATH
---- ------- ----
3000 my-app ~/Documents/GitHub/my-app
5432 postgres -
8080 test-server ~/Documents/GitHub/test-server
macOS 전용, Bash 스크립트로 별도 의존성 없이 가볍게 동작합니다.
피드백 환영합니다. :)
오 편의기능들이 있네요. 👍🏻
macOS 의 경우 별도 설치 없이 아래의 커맨드로 간단히 확인하는 것도 가능합니다.
~/.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"
쌍따옴표 문제가 있어 다시 공유를 드립니다.
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'