优雅的使用 Mac

起头

MacOSX 是平时工作生活所使用的系统,从 Windows 走过来,乐不思蜀

lsof

Mac 上使用(netstat -an -ptcp)来查看端口使用情况,也可以用 lsof 来查看, 这里是几个基本用法,来自于这篇博文,感谢博主。

lsof -i[46] [protocol][@hostname|hostaddr][:service|port]
           46 --> ipv4 or ipv6
           protocol --> tcp or udp
           hostname --> internet host name
           hostaddr --> ipv4地址
           service --> /etc/service中的 service name (可以不只一个)
           port --> 端口号 (可以不只一个)

lsof 查看端口占用

lsof -i:9100

lsof 查看文件被什么进程占用

lsof /etc/hosts

COMMAND     PID      USER   FD   TYPE DEVICE SIZE/OFF     NODE NAME
Gas\x20Ma 39968 zhoujing2    5r   REG    1,4      301 22679474 /private/etc/hosts
Google    41670 zhoujing2   25r   REG    1,4      301 22679474 /private/etc/hosts

Gas Mask 一直报有其他的进程在改 hosts 文件,之前一直不知道为什么,今天用这个命令找到了,居然是 Chrome 。

lsof 常用参数列表

lsof filename 显示打开指定文件的所有进程
lsof -a 表示两个参数都必须满足时才显示结果
lsof -c string   显示command列中包含指定字符的进程所有打开的文件
lsof -u username 显示所属user进程打开的文件
lsof -g gid 显示归属gid的进程情况
lsof +d /dir/ 显示目录下被进程打开的文件
lsof +d /dir/ 同上,但是会搜索目录下的所有目录,时间相对较长
lsof -d fd 显示指定文件描述符的进程
lsof -n 不将ip转换为hostname,缺省是不加上-n参数
lsof -i 用以显示符合条件的进程情况

lsof 分页显示

lsof | less
comments powered by Disqus