Linux初级入门百篇-lsof工具
内容提要
1. 熟悉 lsof 的功能
2. 掌握 lsof 命令的使用
losf的功能和命令格式
在系统管理中常常用到 lsof 工具,是系统监测工具之一。lsof(list open files)可以用来查看正在运行中的进程打开了哪些文件、目录和套接字。
lsof的命令格式如下:
lsof [OPTIONS] [names]
lsof 的选项丰富,下面仅列出一些基本的,更多的选项请查阅其手册。
选项 |
说明 |
-h |
显示使用帮助信息 |
-a |
表示所列出的选项是“与”逻辑,都必须满足时才显示结果 |
-R |
显示进程的 PPID 列 |
-l |
不将 UID 转化为用户登录名 |
-n |
不将 IP 转换为主机名 |
-P |
不将服务端口号转化为服务名称 |
-u Username/UID |
显示由属于指定用户的进程打开的文件 |
-g gid |
显示属于指定组的进程打开的文件 |
-d FD |
显示指定文件描述符(file descriptors)的进程 |
-c string |
显示命令列中包含指定字符串 string 的进程打开的文件 |
-c /string/ |
与上面的功能相同,/ / 中可以使用正则表达式 |
+d Dirname |
显示指定目录下被进程打开的文件 |
+D Dirname |
与上面的功能相同,但是会搜索目录下的所有子目录 |
-i |
显示所有网络进程打开的文件 |
下面着重谈一下 -i 选项,它可跟如下参数进行输出限制:
-i [46][protocol][@hostname|hostaddr][:service|port]
其中:
n 4 –– IPv4
n 6 –– IPv6
n protocol –– TCP 或 UDP
n hostname –– 网络主机名
n hostaddr –– IP 地址
n service –– /etc/service 中的服务名
n port –– 服务端口号
下面给出几个使用 -i 选项的例子
n -i 6 –– 仅限于 IPv6
n -i TCP:25 –– TCP 且端口号为 25
n -i @1.2.3.4 –– IPv4 地址为 1.2.3.4
n -i @[3ffe:1ebc::1]:1234 –– IPv6 地址为 3ffe:1ebc::1,端口号为 1234
n -i UDP:who - UDP 协议的 who 服务端口
n -i TCP@lsof.itap:513 –– TCP 协议的 513 端口,主机名为 lsof.itap
n -i tcp@foo:1-10,smtp,99 –– TCP 协议的端口 1到10、smtp 服务端口和端口 99,主机名为 foo
n -i tcp@bar:smtp-nameserver –– TCP 协议的端口 smtp 到 nameserver, 主机名为 bar
n -i :time –– TCP 或 UDP 协议的 time 服务端口
lsof命令举例
下面给出几个使用举例:
# 查看谁在使用指定的文件系统
[root@thinkmo ~]# lsof /media/cdrom/
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
bash 8011 root cwd DIR 253,0 4096 390146 /media/cdrom/
bash 8536 osmond cwd DIR 253,0 4096 390146 /media/cdrom/
# 显示打开指定文件的所有进程
[root@thinkmo ~]# lsof /var/log/messages
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
syslogd 2048 root 2w REG 253,0 108 847031 /var/log/messages
# 显示由指定用户 osmond 打开的所有文件
[root@thinkmo ~]# lsof -u osmond
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 7103 osmond cwd DIR 253,0 4096 2 /
sshd 7103 osmond rtd DIR 253,0 4096 2 /
bash 7104 osmond rtd DIR 253,0 4096 2 /
bash 7104 osmond cwd DIR 253,1 4096 63489 /home/osmond
sshd 7103 osmond txt REG 253,0 387308 824664 /usr/sbin/sshd
sshd 7103 osmond mem REG 253,0 125728 554968 /lib/ld-2.5.so
sshd 7103 osmond mem REG 253,0 11460 826459 /usr/lib/libplds4.so
sshd 7103 osmond DEL REG 0,8 32290 /dev/zero
sshd 7103 osmond 0u CHR 1,3 1402 /dev/null
sshd 7103 osmond 3u IPv6 32264 TCP 192.168.0.101:ssh->192.168.0.77:lontalk-urgnt (ESTABLISHED)
sshd 7103 osmond 4u unix 0xdc29c200 32295 socket
sshd 7103 osmond 6r FIFO 0,6 32305 pipe
sshd 7103 osmond 8u CHR 5,2 693 /dev/ptmx
bash 7104 osmond txt REG 253,0 722684 97572 /bin/bash
bash 7104 osmond 0u CHR 136,0 2 /dev/pts/0
……………………
# 显示指定目录下被进程打开的文件
[root@thinkmo ~]# lsof +d /var
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
crond 2455 root cwd DIR 253,0 4096 845353 /var/spool
# 显示指定文件描述符的进程(多个FD用逗号间隔)
[root@thinkmo ~]# lsof -d txt,1
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root txt REG 253,0 38620 422671 /sbin/init
migration 2 root txt unknown /proc/2/exe
udevd 441 root txt REG 253,0 71928 422820 /sbin/udevd
udevd 441 root 1u CHR 1,3 1402 /dev/null
acpid 2360 root 1w REG 253,0 1722 846999 /var/log/acpid
xinetd 2403 root 1r CHR 1,3 1402 /dev/null
……………………
# 查看属于 root 用户进程所打开的文件描述符为 txt 的文件
[root@thinkmo ~]# lsof -a -u root -d txt
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
init 1 root txt REG 253,0 38620 422671 /sbin/init
migration 2 root txt unknown /proc/2/exe
………………
lsof 8527 root txt REG 253,0 121396 823819 /usr/sbin/lsof
lsof 8528 root txt REG 253,0 121396 823819 /usr/sbin/lsof
# 查看端口号 22 的进程的当前运行情况
[root@thinkmo ~]# lsof -i :22
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 2386 root 3u IPv6 6717 TCP *:ssh (LISTEN)
sshd 7101 root 3u IPv6 32264 TCP 192.168.0.101:ssh->192.168.0.77:lontalk-urgnt (ESTABLISHED)
sshd 7103 osmond 3u IPv6 32264 TCP 192.168.0.101:ssh->192.168.0.77:lontalk-urgnt (ESTABLISHED)
sshd 8533 root 3u IPv6 35679 TCP 192.168.0.101:ssh->192.168.0.77:3998 (ESTABLISHED)
sshd 8535 osmond 3u IPv6 35679 TCP 192.168.0.101:ssh->192.168.0.77:3998 (ESTABLISHED)
# 查看包含指定 IP 的进程的当前运行情况
[root@thinkmo ~]#lsof -i @192.168.0.77
COMMAND PID USER FD TYPE DEVICE SIZE NODE NAME
sshd 7101 root 3u IPv6 32264 TCP 192.168.0.101:ssh->192.168.0.77:lontalk-urgnt (ESTABLISHED)
sshd 7103 osmond 3u IPv6 32264 TCP 192.168.0.101:ssh->192.168.0.77:lontalk-urgnt (ESTABLISHED)
sshd 8533 root 3u IPv6 35679 TCP 192.168.0.101:ssh->192.168.0.77:3998 (ESTABLISHED)
sshd 8535 osmond 3u IPv6 35679 TCP 192.168.0.101:ssh->192.168.0.77:3998 (ESTABLISHED)
lsof的输出项说明
常见的输出项说明:
COMMAND |
进程的名称 |
PID |
进程标识符 |
USER |
进程所有者 |
FD |
文件描述符,应用程序通过文件描述符识别该文件 |
TYPE |
文件类型 |
DEVICE |
磁盘的名称 |
SIZE |
文件的大小 |
NODE |
索引节点(文件在磁盘上的标识) |
NAME |
打开文件的确切名称 |
常见的文件描述符(file descriptors):
cwd |
程序的当前工作目录 |
rtd |
根目录 |
txt |
程序文本(包括代码和数据) |
mem |
内存映像文件 |
n |
n为数值,应用程序的文件描述符,这是打开该文件时返回的一个整数。(0到2,分别表示标准输入、标准输出和标准错误输出)n后的r表示打开的文件只读;w表示打开的文件只写;u表示打开的文件可读写。 |
常见的文件类型(TYPE):
REG |
普通文件 |
LINK |
符号链接文件 |
DIR |
目录 |
CHR |
字符设备 |
BLK |
块设备 |
FIFO |
先进先出队列 |
unix |
UNIX 域套接字 |
sock |
不可知域套接字 |
inet |
Internet域套接字 |
IPv4 |
IPv4 套接字 |
IPv6 |
IPv6 网络文件 |
转载于:https://blog.51cto.com/12806109/2129993
Linux初级入门百篇-lsof工具相关推荐
- Linux初级入门百篇-LVM 简介
LVM 简介 内容提要 1. 理解 LVM 及其基本术语 2. 理解 LVM 与文件系统之间的关系 3. 掌握使用 LVM 的一般方法 什么是 LVM LVM 是逻辑盘卷 ...
- Linux初级入门(第一次作业)
Linux初级入门 在本科期间学过一些Linux的简单命令,再次接触Linux不仅巩固了知识还学习到了很多新的东西. 什么是操作系统? 操作系统,英文名称Operating System,简称OS,是 ...
- 内核 入门_好消息:奔跑吧Linux内核入门酱香篇配套视频可以下载啦
有不少小伙伴给笨叔留言,能不能直接提供入门酱香篇的配套视频下载啊?我问:B站有,为啥要下载?答曰:收藏!笨叔一时被感动了,我马上把这本书配套视频的原始文件共享出来,而且以GPL v2的协议分享,大家可 ...
- Linux Capabilities 入门教程--进阶实战篇
该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...
- Linux Capabilities 入门教程--基础实战篇
该系列文章总共分为三篇: Linux Capabilities 入门教程:概念篇 Linux Capabilities 入门教程:基础实战篇 Linux Capabilities 入门教程:进阶实战篇 ...
- 嵌入式 Linux 入门 环境篇(二、安装虚拟机 — 体验 Ubuntu 22.04)
嵌入式 Linux入门 环境篇第二课,正好换了新电脑,更新 Ubuntu 虚拟机的安装, 体验一下 Ubuntu 22.04 ...... by 矜辰所致 前言 因为以前的电脑虚拟机环境我都配置好了, ...
- 第1章 Kali Linux入门 一篇就够了
文章目录 第1章 Kali Linux入门 1.1 Kali的发展简史 1.2 Kali Linux工具包 1.3 下载Kali Linux 1.4 使用Kali Linux 1.4.1 Live D ...
- Linux 从入门到精通之入门篇
第一章节 开山篇 基础篇: Linux入门 vm和Linux的安装 Linux目录结构 实操篇: 远程登录(XShell XFtp) vi 和vim 编辑器 开机.重启和用户登录注销 用户管理 实用指 ...
- 嵌入式 Linux 入门 环境篇(三、开发板和 PC 的网络互通)
嵌入式 Linux入门 环境篇第三课,开发板与PC的网络配置, 我们要实现 windows.ubuntu 和开发板三者的互通. ...... by 矜辰所致 前言 在环境篇前面的文章我们通过终端工具使 ...
- Linux基础入门篇知识回顾
Linux基础入门篇知识回顾 一.回顾书籍 二.基础知识 1.计算机基础知识 1.1计算机的特点及发展趋势 ①特点 ②发展趋势 1.2计算机系统组成 ①计算机硬件概念 ②计算机硬件各部分功能 ![在这 ...
最新文章
- 层次遍历二叉树(编程之美3.10)
- golang beego 数据输出 返回值
- ASP.NET Core 运行原理解剖[2]:Hosting补充之配置介绍
- linux网络编程之setsockopt()函数来设置socket状态以及getsockopt函数只用总结
- 直面桌面云带来的现状优势
- python os.path模块常用方法详解
- linux学习第四周作业练习
- 谁说程序员找不到女朋友,你们是不知道当程序员撩妹,一撩一个准
- SLAM系统原理推导
- 看各行从业人员给你一一点透的黑幕!亮点惊人!
- 嵌入式Linux应用开发完全手册 pdf 韦东山
- hdu5385 wyh2000 and pupil 二分图
- 黑盒测试方法之错误推测法概述
- PG数据库内核分析学习笔记_XLOG日志恢复策略
- python模拟网页点击_python模拟点击
- 【腾讯Bugly干货分享】QFix探索之路—手Q热补丁轻量级方案
- 算法设计与分析——位图(BitMap)
- 利用jquery插件的图片剪切上传功能
- 2021年MathorCupA题
- 基于COMSOL的固体力学或压力声学模块仿真声子晶体