Ferramenta CLI que mostra de relance as portas abertas e os processos
(github.com/givvemee)Ao desenvolver, é comum acabar digitando comandos como lsof -i :3000 inúmeras vezes.
"O que está usando esta porta?", "Acho que não desliguei aquele servidor antes..."
ports-cli é uma ferramenta CLI que mostra de forma organizada todas as portas atualmente abertas, junto com o nome do processo e o caminho do projeto.
Principais recursos
- Visualização rápida: exibe portas abertas, nome do processo e caminho do projeto em formato de tabela
- Reconhecimento de projetos Node.js: lê o
namedo package.json e mostra o nome real do projeto no lugar denode - Filtro de processos do usuário: com a opção
-u, exclui processos do sistema e mostra apenas os que você iniciou - Encerrar:
ports bye 3000mata imediatamente o processo da porta correspondente
Instalação
brew tap givvemee/tap
brew install ports-cli
Como usar
ports # mostra todas as portas em escuta
ports -u # apenas os processos iniciados por mim
ports bye 3000 # encerra o processo da porta 3000
Exemplo de saída
PORT PROCESS PATH
---- ------- ----
3000 my-app ~/Documents/GitHub/my-app
5432 postgres -
8080 test-server ~/Documents/GitHub/test-server
Exclusivo para macOS, funciona de forma leve como um script Bash sem dependências adicionais.
Feedbacks são bem-vindos. :)
6 comentários
Oh, tem uns recursos de conveniência bem legais aí. 👍🏻
No caso do macOS, também dá para verificar de forma simples com o comando abaixo, sem instalar nada separadamente.
É só colocar no
~/.zshrc.(Compartilhando como referência!)
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"
Então você criou e usou um alias
portcheckassim. Esse também pode ser um bom jeito. Obrigado!Estou compartilhando novamente por causa de um problema com aspas duplas.
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'
Quero saber quais são as vantagens em relação a
sudo netstat -tnlp.Se você usar, vai perceber que ele mostra as informações de forma mais organizada.
Também parece haver um recurso de filtro para visualizar apenas os processos que o próprio usuário está usando.
Nossa, instalei e testei na hora, e como é simples, fica bem fácil de usar!!
Obrigado(a) hehe