Linux 命令行利器之 lsof

本贴最后更新于 2903 天前,其中的信息可能已经时异事殊

1 前言

在 Linux 上一切皆文件, 所以 lsof 命令空前强大

2 lsof 含义

list open file

3 lsof 常用命令行参数

-a 将所有命令行参数按照 and 的方式做过滤, lsof 默认的是 or
-i [46][protocol][@hostname|hostaddr][:service|port] 列出网络连接,46代表ipv4,ipv6.service代表/etc/services里面端口号的名字
-p pid 列出进程pid打开的文件
-P 禁止将端口号转换为/etc/services里面端口号的名字

tips
lsof 默认是将各种选项以 or 的方式过滤的, 如果想要以 and 的方式过滤, 加上 -a 吧
lsof 在查看其它用户的进程时需要 sudo 权限

4 举几个栗子🌰🌰

4.1 列出某进程打开的以 .log 结尾的文件

lsof -p{pid} | egrep *.log

4.2 列出某进程所有监听的 TCP 端口

lsof -a -p{pid} -iTCP -P | grep LISTEN

或者, 更优雅的写法

lsof -a -p{pid} -iTCP -sTCP:LISTEN -P

哈哈, 想知道上面 -s 参数的意义吗, 想知道更多的 lsof 使用技巧吗?
去你的 Linux 机器上 man lsof 一下吧!

  • Linux

    Linux 是一套免费使用和自由传播的类 Unix 操作系统,是一个基于 POSIX 和 Unix 的多用户、多任务、支持多线程和多 CPU 的操作系统。它能运行主要的 Unix 工具软件、应用程序和网络协议,并支持 32 位和 64 位硬件。Linux 继承了 Unix 以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。

    939 引用 • 940 回帖
  • lsof
    2 引用 • 3 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...