lsof命令常见参数说明

部署运行你感兴趣的模型镜像
原文地址:http://www.linuxfly.org/post/182.htm

 lsof全名list opened files,也就是列举系统中已经被打开的文件。我 们都知道,linux环境中,任何事物都是文件,设备是文件,目录是文件,甚至sockets也是文件。所以,用好lsof命令,对日常的linux管理 非常有帮助。以下的说明,大部分内容来自lsof的manual文档。我所做的只是在中文翻译的基础上,进行简单的分类说明,并列举最常用的参数。

一、输出说明
   lsof是linux最常用的命令之一,通常的输出格式为:
引用
COMMAND     PID   USER   FD      TYPE     DEVICE     SIZE       NODE NAME

常见包括如下几个字段:更多的可见manual。
1、COMMAND
默认以9个字符长度显示的命令名称。可使用+c参数指定显示的宽度,若+c后跟的参数为零,则显示命令的全名
2、PID:进程的ID号
3、PPID
父进程的IP号,默认不显示,当使用-R参数可打开。
4、PGID
进程组的ID编号,默认也不会显示,当使用-g参数时可打开。
5、USER
命令的执行UID或系统中登陆的用户名称。默认显示为用户名,当使用-l参数时,可显示UID。
6、FD
是文件的File Descriptor number,或者如下的内容:
(这里很难翻译对应的意思,保留英文)
引用
cwd  current working directory;
Lnn  library references (AIX);
jld  jail directory (FreeBSD);
ltx  shared library text (code and data);
Mxx  hex memory-mapped type number xx.
m86  DOS Merge mapped file;
mem  memory-mapped file;
mmap memory-mapped device;
pd   parent directory;
rtd  root directory;
tr   kernel trace file (OpenBSD);
txt  program text (code and data);
v86  VP/ix mapped file;

文件的File Descriptor number显示模式有:
引用
r for read access;
w for write access;
u for read and write access;
N for a Solaris NFS lock of unknown type;
r for read lock on part of the file;
R for a read lock on the entire file;
w for a write lock on part of the file;
W for a write lock on the entire file;
u for a read and write lock of any length;
U for a lock of unknown type;
x for an SCO OpenServer Xenix lock on part  of the file;
X  for an SCO OpenServer Xenix lock on the entire file;
space if there is no lock.

7、TYPE
引用
IPv4 IPv4的包;
IPv6 使用IPv6格式的包,即使地址是IPv4的,也会显示为IPv6,而映射到IPv6的地址;
DIR 目录
LINK 链接文件

详情请看manual中更多的注释。
8、DEVICE
使用character special、block special表示的设备号
9、SIZE
文件的大小,如果不能用大小表示的,会留空。使用-s参数控制。
10、NODE
本地文件的node码,或者协议,如TCP等
11、NAME
挂载点和文件的全路径(链接会被解析为实际路径),或者连接双方的地址和端口、状态等

二、参数
1、不带额外参数运行
lsof path/filename

显示已打开该目录或文件的所有进程信息
lsof `which httpd`

显示指定命令的信息
2、参见参数
-c w 显示以w开头命令的已打开文件的信息
lsof -c sshd

-p PID 显示指定PID已打开文件的信息
lsof -p 4401

+d dir 依照文件夹dir来搜寻,但不会打开子目录
lsof +d /root

+D dir 打开dir文件夹以及其子目录搜寻
lsof +D /root/

-d s 以FD列的信息进行匹配,可使用3-10,表示范围,3,10表示某些值
lsof -d 3-10

-u 显示某用户的已经打开的文件(或该用户执行程序已经打开的文件)
lsof -u root
lsof -u 0

◎可配合正规表达式使用
表示不包括root用户的信息:
lsof -u ^root

-i 监听指定的协议、端口、主机等的网络信息,格式为:
引用
[46][proto][@host|addr][:svc_list|port_list]

例如:
lsof -i tcp@192.168.228.244
lsof -i:22

还可以使用一些参数控制显示结果:
引用
-l 禁止将userID转换为登陆名称,即显示UID
-n 禁止将IP地址转换为hostname主机文件
-P 不显示端口名称

-g s 从PGID列进行匹配
lsof -g 3-10


3、其他参数
+f 所有路径参数都必须是文件系统,否则不能执行
-f 所有路径参数都将作为普通的文件,例如:"-f -- /"中的/,只会匹配单个/路径,而不会是根目录中的所有文件
+f和-f后都应加上“--”表终结符:
lsof -f -- /

+L/-L 打开或关闭文件的连结数计算,当+L没有指定时,所有的连结数都会显示(默认);若+L后指定数字,则只要连结数小于该数字的信息会显示;连结数会显示在NLINK列
例如:+L1将显示没有unlinked的文件信息;+aL1,则显示指定文件系统所有unlinked的文件信息
-L 默认参数,其后不能跟数字,将不显示连结数信息
lsof +L1

-t 仅打印进程,方便shell脚本调用
lsof -t -c sshd

-F 指定输出那个列,可通过lsof -F?查看
-r 不断执行lsof命令,默认每15秒间隔执行一次
+r 也是不断执行lsof命令,但直到没有接受到文件信息,则停止

※部分参数未能完全理解,待以后补充。

您可能感兴趣的与本文相关的镜像

Stable-Diffusion-3.5

Stable-Diffusion-3.5

图片生成
Stable-Diffusion

Stable Diffusion 3.5 (SD 3.5) 是由 Stability AI 推出的新一代文本到图像生成模型,相比 3.0 版本,它提升了图像质量、运行速度和硬件效率

### 常用参数详解 `lsof` 命令提供了丰富的参数选项,用于灵活地查看和筛选系统中打开的文件信息。以下是一些常用的参数及其功能说明: #### 显示所有打开的文件 默认情况下,执行 `lsof` 命令将列出系统中所有进程打开的文件信息: ```bash lsof ``` 该命令输出的内容包括进程 ID(PID)、用户、文件描述符、文件类型、设备、大小/偏移量和文件名等信息[^1]。 #### 根据进程 ID 查看打开的文件 通过 `-p` 参数可以查看特定进程打开的文件: ```bash lsof -p 1234 ``` 该命令将显示 PID 为 1234 的进程所打开的所有文件,适用于诊断特定进程的资源使用情况[^2]。 #### 查看某个用户打开的文件 使用 `-u` 参数可以查看某个用户运行的进程所打开的文件: ```bash lsof -u username ``` 该命令将列出指定用户运行的所有进程所打开的文件,便于系统管理员快速定位特定用户的资源使用情况。 #### 查看某个目录下打开的文件 通过 `+D` 参数可以列出某个目录及其子目录中被打开的文件: ```bash lsof +D /path/to/directory ``` 该命令适用于检查某个特定目录的资源使用情况,例如查看某个挂载点的文件访问情况[^2]。 #### 查看网络连接 由于网络连接在 Linux 中也被视为文件,因此 `lsof` 可以用来查看网络连接的状态。例如,查看所有 TCP 连接: ```bash lsof -i tcp ``` 该命令将列出所有使用 TCP 协议的网络连接,包括本地和远程地址、状态等信息。类似地,可以通过 `-i udp` 查看 UDP 连接[^3]。 如果需要查看特定端口的连接情况,可以结合端口号使用: ```bash lsof -i :3306 ``` 该命令将列出使用 3306 端口的所有连接信息,适用于快速定位某个服务的网络连接情况。 #### 查看已删除但仍被占用的文件 某些文件可能已被删除,但由于仍有进程在使用该文件,其内容仍然存在于磁盘上。通过以下命令可以识别这些文件: ```bash lsof | grep deleted ``` 该命令将列出所有已被删除但仍被某个进程打开的文件,便于进一步恢复操作。 #### 实时监控文件的打开和关闭情况 `lsof` 支持以循环模式运行,持续显示打开文件的变化情况。使用 `-r` 参数可以实现: ```bash lsof -r 5 ``` 该命令每 5 秒刷新一次输出,适用于实时监控系统中文件的打开和关闭情况[^2]。 #### 结合其他工具使用 `lsof` 可与其他命令行工具(如 `grep`、`awk` 和 `sort`)结合使用,进一步分析和筛选输出结果。例如,查看某个用户的活跃网络连接: ```bash lsof -a -u username -i ``` 该命令将列出指定用户的所有活跃网络连接,便于分析用户的网络行为。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值