编程开源技术交流,分享技术与知识

网站首页 > 开源技术 正文

查看文件占用的利器lsof(windows 查看文件占用)

wxchong 2024-08-25 16:36:37 开源技术 30 ℃ 0 评论

lsof(List Open Files)是一个用于显示系统当前打开文件的工具,可以查看系统中哪些文件被打开,哪些进程打开了这些文件,以及这些文件被使用的情况等。lsof可以帮助系统管理员和程序员及时发现问题,比如查看系统中占用磁盘空间较多的文件,找出哪些文件正在被某个进程占用等。


lsof的基本用法格式为:lsof [选项] [文件路径]

下面给出一些lsof的常用选项及例子:

1. 显示所有进程打开的文件,加more或者grep来过滤

lsof|more

# lsof |more
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
COMMAND PID TID TASKCMD USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 252,1 4096 2 /
systemd 1 root rtd DIR 252,1 4096 2 /
systemd 1 root txt REG 252,1 1620224 1051400 /usr/lib/systemd/systemd
systemd 1 root mem REG 252,1 1369384 1064234 /usr/lib/x86_64-linux-gnu/libm-2.31.so
systemd 1 root mem REG 252,1 178528 1048921 /usr/lib/x86_64-linux-gnu/libudev.so.1.6.17
systemd 1 root mem REG 252,1 1575112 1051694 /usr/lib/x86_64-linux-gnu/libunistring.so.2.1.0
systemd 1 root mem REG 252,1 137584 1051558 /usr/lib/x86_64-linux-gnu/libgpg-error.so.0.28.0
systemd 1 root mem REG 252,1 67912 1051584 /usr/lib/x86_64-linux-gnu/libjson-c.so.4.0.0


字段说明

  • COMMAND:命令
  • PID:进程ID
  • PPID:父进程ID
  • USER:进程所有者
  • PGID:进程所属组
  • FD:文件描述符,文件描述符,cwd(应用程序的当前工作目录)、txt(程序代码)、mem(内存映射文件)等
  • TYPE:文件类型,如 DIR(目录)、CHR(字符类型)、REG(常规)
  • 等,
  • DEVICE:设备编号
  • SIZE:文件的大小
  • NODE:索引节点(文件在磁盘上的标识)
  • NAME:打开文件的确切名称


2. 显示指定目录下的打开文件

lsof /var/log/messages


3. 查看指定进程所打开的文件


lsof -p 10 (根据进程号)

lsof -c sshd (根据进程名)

4. 查找指定用户打开的文件

lsof -u username


5. 查找某个端口被哪个进程占用


lsof -i :port

lsof -i :53
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd-r 507 systemd-resolve 12u IPv4 18449 0t0 UDP localhost:domain
systemd-r 507 systemd-resolve 13u IPv4 18450 0t0 TCP localhost:domain (LISTEN)


6. 列出所有使用TCP和UDP协议的网络连接

lsof -i tcp

lsof -i udp


7. 显示指定文件的相关进程

lsof /file


8. 查找已被删除但仍被进程占用的文件,这个可以用来恢复删除文件

lsof | grep deleted


9. 列出所有的网络连接

lsof -i


10. 递归列出某目录下所有打开的文件

lsof +D /path/to/directory |more


需要注意的是,lsof需要以root权限运行才能查看所有系统进程和文件,否则只能查看当前用户的进程和文件。

总的来说,lsof是一个功能强大的工具,能够帮助系统管理员及时发现问题,定位文件打开问题,优化系统性能等。通过掌握lsof的用法,可以更好地管理系统资源,提高系统的稳定性和安全性

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表