服务器之家:专注于服务器技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 每天一条神级Linux命令:升职加薪第一步

每天一条神级Linux命令:升职加薪第一步

2023-11-28 17:16未知服务器之家 Linux

lsof(list open files)是一个列出当前系统打开文件的工具,它可以列出某个进程打开的文件,或某个用户打开的文件,甚至是系统上打开的所有文件。 lsof命令提供了非常全面的文件检视功能,它既可以查看普通文件,也可以查看目录、网络连

lsof(list open files)是一个列出当前系统打开文件的工具,它可以列出某个进程打开的文件,或某个用户打开的文件,甚至是系统上打开的所有文件。

每天一条神级Linux命令:升职加薪第一步

lsof命令提供了非常全面的文件检视功能,它既可以查看普通文件,也可以查看目录、网络连接、管道等,大大方便了日常管理和诊断工作。

一、lsof命令的起源

lsof命令最初是在UNIX System V环境下由Purdue大学团队开发,后来Sun将其移植到Solaris上,成为系统内建工具。

目前所有主流Linux发行版包括Red Hat、Debian等都内置了lsof命令。Apple也在其macOS系统中集成了lsof。

lsof随着时间成长为一个功能强大且不可或缺的日常管理工具。

二、lsof命令的功能作用

lsof命令的主要用途有:

1、查看进程打开的文件,可用于查看程序访问情况。

2、查看网络连接信息,如打开的端口。

3、快速查看目录下被打开的文件。

4、与其他命令组合定位程序问题。

5、查看用户打开的文件信息。

6、查看伪设备、管道等打开的文件情况。

所以lsof是管理员排查问题的“瑞士军刀”。

三、lsof命令的应用场景

lsof适用于许多场景:

1、查看进程打开的端口,确认网络程序运行情况。

2、查看目录被占用情况,快速定位故障。

3、查找打开特定文件的进程,分析程序访问文件情况。

4、与strace合用追踪程序访问系统调用。

5、查找大量打开文件的程序,分析资源占用情况。

6、查看被删除文件是否还在被进程持有。

四、lsof命令语法格式

lsof基本语法格式为:

lsof [选项] [文件名或目录名]

常用选项包括:

-a:逻辑与列出多项

lsof -a -u user1 -c nginx

-c:列出指定命令的文件

lsof -c nginx

-p:列出指定pid的文件

lsof -p 1234

-u:列出指定用户名的文件

lsof -u user1

五、lsof各项参数使用详解

-a:或操作,显示多个选项的结果

lsof -a -u user1 -i :80

-c:查看执行指定命令的进程所打开的文件

lsof -c nginx

-d:查看某个目录被进程占用情况

lsof -d /home/user1

-i:查看打开的网络连接

lsof -i :80

+d+D:递归查看目录内容

lsof +D /usr/bin

-p:查看指定pid进程打开的文件

lsof -p 1234

-t:仅显示pid号

lsof -t -c nginx

-u:查看某用户打开的文件信息

lsof -u user1

六、lsof命令使用示例

1、查看80端口的网络连接

lsof -i :80

2、查看nginx进程打开的文件

lsof -c nginx

3、查看目录被打开情况

lsof -d /home

4、查看/usr目录被占用文件

lsof +D /usr

5、查看指定进程及用户打开的文件

lsof -p 1234 -u root

七、lsof命令技巧总结

1、结合grep或者awk可以进行过滤和处理

lsof -i | grep nginx

2、设置alias,创建快捷方式

alias lopen='lsof -c'

3、查看文件链接数,定位被删除文件

lsof -p 1234 | grep deleted

4、统计不同用户或程序打开的文件数

lsof -u user1 | wc -l

5、与strace结合定位程序问题

strace -p 1234 & lsof -p 1234

八、lsof命令常见问题解析

1、lsof默认只能查看当前用户打开的文件,要查看其他用户打开的文件需要root权限。

2、lsof显示的用户名如果是数字,说明它显示的是用户的uid而不是用户名。可以通过id命令查uid和用户名的对应。

3、某些情况下lsof统计的打开文件数太多,可以用-n参数限制显示的结果数。

4、lsof查看文件或目录时如果找不到,很可能是提供的路径不正确,应检查路径是否写正确。

延伸 · 阅读

精彩推荐
  • Linuxssh 登录很慢该如何解决

    ssh 登录很慢该如何解决

    这篇文章主要介绍了ssh 登录很慢该如何解决的相关资料,这里提供了两种方法,DNS反向解析及关闭ssh的gssapi认证的解决办法,需要的朋友可以参考下...

    linuxeye9922021-12-16
  • LinuxLinux系统下无法卸载挂载的目录怎么办?

    Linux系统下无法卸载挂载的目录怎么办?

    我们在日常运维中经常性会遇到需要进行磁盘的扩容、卸载、挂载等操作,但是有时候这个系统上跑的应用并没有停止或者有其他的运维同事在操作这个目...

    今日头条10302020-12-30
  • Linuxlinux top命令详解

    linux top命令详解

    这篇文章主要介绍了linux top命令详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧...

    sparkdev5622022-03-01
  • Linux在Linux系统中创建新的亚马逊AWS访问密钥的方法

    在Linux系统中创建新的亚马逊AWS访问密钥的方法

    如何在Linux系统中创建新的亚马逊AWS访问密钥?我在配置一个需要访问我的亚马逊AWS帐号的应用时被要求提供AWS访问密钥ID和秘密访问密钥,我怎样创建一个...

    Linux教程网6182019-10-30
  • Linuxlinux驱动程序开发详细介绍

    linux驱动程序开发详细介绍

    前提,一般来说内核代码的错误可能会引起一个用户进程的死亡,或者整个系统的瘫痪,更严重的后果,可能导致磁盘损伤~因此建议最好有一台实验机进行...

    Linux教程网5392019-12-17
  • Linuxlinux设置tomcat自启动的方法

    linux设置tomcat自启动的方法

    这篇文章主要介绍了linux设置tomcat自启动的方法,需要的朋友可以参考下...

    Linux教程网8512021-10-10
  • Linux理解 Linux/Unix 登录脚本的技巧

    理解 Linux/Unix 登录脚本的技巧

    有一些常见的情况,例如从Debian的包管理程序到Iaas的管理中,很多任务需要设置环境变量才能正常运行。 有时,程序通常只需要在 登陆时运行一次,例如...

    未知1042023-05-12
  • Linux将 Linux 终端与 Nautilus 文件管理器结合起来

    将 Linux 终端与 Nautilus 文件管理器结合起来

    Nautilus 是 GNOME 桌面环境中的图形化文件浏览器。你可以使用它来访问和管理系统中的文件和文件夹。 尽管并非所有人都喜欢使用终端来管理文件和目录,...

    未知812023-08-08