【linux】lsof的常用命令汇总
lsof,就是"ls open file"的意思,是一个显示文件打开句柄的工具,下面汇总一些常用的命令
展示系统中所有
直接执行lsof,就是现实系统中所有打开句柄
# lsofCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 8,1 4096 2 /
init 1 root txt REG 8,1 124704 917562 /sbin/init
init 1 root 0u CHR 1,3 0t0 4369 /dev/null
init 1 root 1u CHR 1,3 0t0 4369 /dev/null
init 1 root 2u CHR 1,3 0t0 4369 /dev/null
init 1 root 3r FIFO 0,8 0t0 6323 pipe
展示title中的字段解释
- COMMAND
调用命令 - PID
process ID - USER
用户 - FD
file description
cwd – Current Working Directory 当前位置
txt – Text file 文本文件
mem – Memory mapped file 内存映射文件
mmap – Memory mapped device 内存映射设备
NUMBER – r for read, w for write, u for read and write. 权限数字表示 - TYPE
REG – Regular File 普通文件
DIR – Directory 文件夹
FIFO – First In First Out 先入先出文件(一般为管道文件)
CHR – Character special file 字符串文件
查看文件被那些进程使用
# lsof /var/log/syslogCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsyslogd 488 syslog 1w REG 8,1 1151 268940 /var/log/syslog
显示文件夹下所有占用文件的句柄信息
# lsof +D /var/log/COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rsyslogd 488 syslog 1w REG 8,1 1151 268940 /var/log/syslog
rsyslogd 488 syslog 2w REG 8,1 2405 269616 /var/log/auth.log
console-k 144 root 9w REG 8,1 10871 269369 /var/log/ConsoleKit/history
显示某个程序执行的句柄
通过-c 指定, 它是字符串前缀匹配
# lsof -c ssh -c initCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root txt REG 8,1 124704 917562 /sbin/init
init 1 root mem REG 8,1 1434180 1442625 /lib/i386-linux-gnu/libc-2.13.so
init 1 root mem REG 8,1 30684 1442694 /lib/i386-linux-gnu/librt-2.13.so
...
ssh-agent 1528 lakshmanan 1u CHR 1,3 0t0 4369 /dev/null
ssh-agent 1528 lakshmanan 2u CHR 1,3 0t0 4369 /dev/null
ssh-agent 1528 lakshmanan 3u unix 0xdf70e240 0t0 10464 /tmp/ssh-sUymKXxw1495/agent.1495
查看mount文件或者文件夹被谁占用
# lsof +D /mnt/glusterFS/cache/
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
test 29757 root 84u REG 0,331 122880 13547194176911157464 /mnt/glusterFS/cache/365701222416481548_767717188491542528.mp3
查看某个用户打开的句柄
# lsof -u lakshmananCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
update-no 1892 lakshmanan 20r FIFO 0,8 0t0 14536 pipe
update-no 1892 lakshmanan 21w FIFO 0,8 0t0 14536 pipe
bash 1995 lakshmanan cwd DIR 8,1 4096 393218 /home/lakshmanan
如果你希望列出所有但是排除用户lakshmanan,可以这样
# lsof -u ^lakshmananCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rtkit-dae 1380 rtkit 7u 0000 0,9 0 4360 anon_inode
udisks-da 1584 root cwd DIR 8,1 4096 2 /
如果想找到某个用户下使用的进程ID信息,可以执行
lsof -t -u lakshmanan
配合kill可以执行按用户杀进程
kill -9 `lsof -t -u lakshmanan
查看某个进程的句柄
# lsof -p 1753COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
bash 1753 lakshmanan cwd DIR 8,1 4096 393571 /home/lakshmanan/test.txt
bash 1753 lakshmanan rtd DIR 8,1 4096 2 /
bash 1753 lakshmanan 255u CHR 136,0 0t0 3 /dev/pts/0
...
按AND组合条件
如果将不同的命令条件组合使用,这里默认是OR的关系,如
# lsof -u lakshmanan -c initCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
init 1 root cwd DIR 8,1 4096 2 /
init 1 root txt REG 8,1 124704 917562 /sbin/init
bash 1995 lakshmanan 2u CHR 136,2 0t0 5 /dev/pts/2
bash 1995 lakshmanan 255u CHR 136,2 0t0 5 /dev/pts/2
...
如果要实现AND的组合,需要添加-a,如lsof -u lakshmanan -c init -a
repeat模式
有点类似ping的方式,通过-r参数来让命令重复执行
如lsof -u lakshmanan -c init -a -r5
r后面的数字表示间隔秒数
特别注意的是,可以使用==+r== 表示直到没有结果返回结束
显示所有网络连接
# lsof -iCOMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
avahi-dae 515 avahi 13u IPv4 6848 0t0 UDP *:mdns
avahi-dae 515 avahi 16u IPv6 6851 0t0 UDP *:52060
cupsd 1075 root 5u IPv6 22512 0t0 TCP ip6-localhost:ipp (LISTEN)
可以指定-i4或者-i6单独来看IPv4或者IPv6
可以指定tcp/udp来单独看,如lsof -i tcp; lsof -i udp;
查看指定端口的占用情况
# lsof -i :25COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
exim4 2541 Debian-exim 3u IPv4 8677 TCP localhost:smtp (LISTEN)
【linux】lsof的常用命令汇总相关推荐
- linux更新项目常用命令汇总
linux服务器线上更新项目常用命令汇总 因为之前nginx和uwsgi已经配好了要运行的项目位置,所以服务器上的项目文件夹建议不要变动,要变动的只是项目文件夹下的所有文件,用新的所有文件直接覆盖,可 ...
- Linux之find常用命令汇总
查找当前目录下文件名rumenz.txt > find rumenz.txt rumenz.txt 查找/home下文件名为ruemnz.txt的文件,忽略大小写 > find /home ...
- Linux运维常用命令汇总
线上查询及帮助命令 (2 个) man查看命令帮助,命令的词典,更复杂的还有 info,但不常用. help查看 Linux 内置命令的帮助,比如 cd 命令. 文件和目录操作命令 (18 个) l ...
- linux日志汇总,Linux日志分析常用命令汇总(示例代码)
1.查看当天有多少个IP访问: awk '{print $1}' log_file|sort|uniq|wc –l 2.查看某一个页面被访问的次数: grep "/index.php&quo ...
- linux常用命令汇总
linux常用命令汇总,以便需要时快速查询 中文释义 相应命令 备注 在文件中查找 grep error catalina.out 在catalina.out文件中查找error信息 重启nginx ...
- 史上最全的Linux常用命令汇总①收藏这一篇就够了!(超全,超详细)
史上最全的Linux常用命令汇总①(超全面!超详细!)收藏这一篇就够了! Linux命令基础 Shell Linux命令分类 Linux命令行的格式 编辑Linux命令行的辅助操作 获取命令帮助的方法 ...
- Linux常用命令汇总【思维导图】
Linux常用命令汇总[文章末尾附有完整常用命令的思维导图,建议收藏] 文章大致分为以下小节 Linux入门 Linux目录结构 VI/VIM编辑器(重点) 网络配置 常用基本命令(重点) 常用命令思 ...
- linux常用的命令shell,Linux操作系统Shell和常用命令汇总
简述 本文主要介绍Shell和Linux常用命令. Shell Shell 是一个用 C 语言编写的应用程序,提供了用户访问Linux操作系统内核服务的界面,它可以用来启动.挂起.停止.编写程序.Sh ...
- linux 常用命令汇总(面向面试)
linux 常用命令汇总 个人认为先掌握一些比较常用的,剩下的需要再学 总结了一些面试比较可能会问道的命令 文章目录 linux 常用命令汇总 基础命令 ulimit dos2unix和unix2do ...
最新文章
- kernel 3.10内核源码分析--中断--中断和异常返回流程
- 高性能网站架构设计之缓存篇(6)- Redis 集群(中)
- android 日期相,Android日历始终保持相同的日期
- tar解压出错tar: Child returned status 1
- Module build failed: ReferenceError: Unknown plugin module-resolver specified
- 查询mysql数量_Linux 运维基础 Mysql性能优化
- 基于struts2、spring的应用闲置一段时间后报空指针错(转)
- 私生子与假婊子——谈中国手机JAVA游戏
- 消防工程师 10.1 火灾自动报警系统-组成和工作原理
- 在mac上使用PDF Expert中常见问题解答
- vue树形权限菜单_基于Vue的树形菜单之两种方式实现
- 开发会自测为什么测试还会单独存在?软件测试八大误区
- 软件定义网络(PART 3)
- 基于C++实现视频聊天软件(一)
- 同盾李晓林:打造互联互通机制,化解数据安全保护与数据共享矛盾
- 服务器发不了邮件,发邮件服务器-如何发邮件?为什么发不出去?服务器是什么?发邮件时,信息要服务器 爱问知识人...
- (NO.00001)iOS游戏SpeedBoy Lite成形记(二十)
- 基于深度学习的图像增强综述
- 综合能源系统仿真,冷热电三联供仿真,simulink仿真
- 【捷哥浅谈PHP】第十一弹---NoSQL数据库之MongoDB的CURD操作(二)
热门文章
- DataFrame类型数据的主要处理方法
- R语言-路径设置与工作目录修改
- 容器必须设置宽度吗_消防泵必须设置自动巡检柜吗
- BMC:幼年特发性关节炎患儿肠道菌群的特征、生物标记的识别及其在临床预测中的作用...
- 高分文章精选 | 纳米孔宏基因组测序的表现
- Cell重磅发布15万人体微生物基因组!超大规模宏基因组研究揭示数千计人体微生物新物种...
- Error: cannot allocate vector of size XX Gb
- Python计算医疗数据训练集、测试集的对应的临床特征:训练集(测试集)的阴性和阳性的样本个数、连续变量的均值(标准差)以及训练测试集阳性阴性的p值、离散变量的分类统计、比率、训练测试集阳性阴性的p值
- ModuleNotFoundError: No module named ‘cx_Oracle‘
- Error in exists(x): 第一个参数不对