lsof コマンドを使うとプロセスが開いているファイル(ソケットも含む)を見れるのをそれを使う。-n は名前解決しないためのオプション。-P はポート番号をポート名に変換しないようするオプション

$ sudo lsof -n -P -p [PID] | grep TCP
/home/sonots   606 sonots    4u  IPv4 3718314992      0t0  TCP *:8080(LISTEN) 

逆にポート番号から、プロセスIDを調べる場合は lsof -i:[PORT]
※ 補足: ホスト名まで指定する場合は -i@[HOST]:[PORT]

$ sudo lsof -P -i:8080
COMMAND     PID USER   FD   TYPE     DEVICE SIZE/OFF NODE NAME
/home/sonots   606 sonots    4u  IPv4 3718314992      0t0  TCP *:8080(LISTEN)

netstat に -p オプションをつけると PID が出てくるので、それを grep するという手もある。

$ sudo netstat -anp
Proto Recv-Q Send-Q Local Address Foreign Address State  PID/Program name   
tcp        0      0 0.0.0.0:8649  0.0.0.0:*       LISTEN 24381/gmond         
tcp        0      0 0.0.0.0:8080  0.0.0.0:*       LISTEN 606/plackup  
$ sudo netstat -anp | grep 606     
tcp        0      0 0.0.0.0:8080  0.0.0.0:*       LISTEN 606/plackup