作者: RunThem
未经允许, 禁止转载, 尤其 CSDN
, 违者必究
引言
在 Linux
使用过程中经常需要看看某个端口是由哪个进程占用了, 本文来记录以下Linux下 lsof
的常见用法.
1. lsof 介绍
lsof(list open files)
是一个列出当前系统打开文件的工具, 开源在
.
lsof
查看端口占用语法格式:
2. 演示
让我们来看以下 3000
端口的占用, 这是 gitea
默认的端口.
1
2
3
4
5
6
7
8
9
10
11
12
| $ sudo lsof -i:3000 # lsof需要root权限哦
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
gitea 848 gitea 13u IPv6 23025 0t0 TCP *:3000 (LISTEN)
# COMMAND: 进程的名称
# PID: 进程标识符
# USER: 进程所有者
# FD: 文件描述符
# TYPE: 文件类型
# DEVICE: 指定磁盘的名称
# SIZE: 文件大小
# NODE: 索引节点
# NAME: 打开文件的确切名称
|
3. 其他用法
1
2
3
4
5
6
7
8
9
| lsof -i:8080 # 查看8080端口占用
lsof abc.txt # 显示开启文件abc.txt的进程
lsof -c abc # 显示abc进程现在打开的文件
lsof -p 1234 # 列出进程号为1234的进程所打开的文件
lsof -g gid # 显示归属gid的进程情况
lsof +d /usr/local/ # 显示目录下被进程开启的文件
lsof +D /usr/local/ # 同上, 递归调用, 时间较长
lsof -d 4 # 显示使用fd为4的进程
lsof -i -U # 显示所有打开的端口和UNIX domain文件
|
4. other
netstat
是一个很老牌的网络工具.
ss
和 ip
都是新的取代 netstat
的工具, 但是旧的Linux发行版不一定有这些.