os x下网络与系统相关命令
整理在 OS X 上使用 lsof、netstat、telnet 与 dtruss 检查端口、连接和系统调用的方法。
os x下netstat不是十分好使,可以显示端口的进程号,但不能显示是具体哪个程序
比如想要显示有哪些端口在Listen
$ netstat -anLv结果

用lsof可以看到具体的程序名
$ lsof -ni | grep LISTEN
如果想知道某端口是否在监听, 最好使用telnet, 因为lsof对于没有权限的端口返回的结果是空
查看TCP连接
$ lsof -itcp查看ipv6协议的TCP连接
$ lsof -i6tcp查看指定端口的连接
$ lsof -i:1080需要更具体的连接状态就在后面加grep,我自己一般是用grep -i,防止因为大小写漏掉数据
有时lsof的时候可能不会显示端口, 比如显示“callbook”(使用ssh时), 这时可以加上-P参数
lsof -P -itcp:2000跟踪进程的系统调用
在mac下是用dtruss命令,对应的linux命令是strace,使用时需要sudo
dtruss df -h # run and examine "df -h" dtruss -p 1871 # examine PID 1871 dtruss -n tar # examine all processes called "tar" dtruss -f test.sh # run test.sh and follow childrenmac下的dtrace命令对应Linux下的ltrace