Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux fuser 命令。

1、命令简介

fuser:用于通过文件或端口号识别进程。

2、命令用法

fuser [-a|-s|-c] [-4|-6] [-n space ] [-k [-i] [-signal ] ] [-muvf] name
fuser -l
fuser -V

3、命令描述

fuser命令用于显示使用指定文件或文件系统的进程的pid。在默认显示模式下,每个文件名后面都有一个字母表示访问类型:

访问类型

描述

c

当前目录。

e

正在运行的可执行文件。

f

打开的文件。默认显示模式下省略f。

F

打开文件进行写入。默认显示模式下省略F。

r

根目录。

m

指示进程使用该文件进行内存映射,

或者该文件为共享库文件,被进程映射进内存。

如果没有访问指定的文件或发生致命错误,fuser返回一个非零返回码。如果找到至少一个访问,则fuser返回0。

为了查找使用TCP和UDP套接字的进程,必须使用-n选项选择相应的名称空间。默认情况下,fuser将查找IPv6和IPv4套接字。要更改默认的行为,请使用-4-6选项。套接字可以由本地和远端端口以及远端地址指定。所有字段都是可选的,但是缺失字段前必须有逗号:

[lcl_port][,[rmt_host][,[rmt_port]]]

IP地址和端口号可以使用符号值或数值。

fuser只输出pidstdout,其他的都发送到stderr

4、命令选项

参数

描述

-a,–all

显示命令行中指定的所有文件;

-i,–interactive

杀死进程前需要用户进行确认;

-k,–kill

杀死访问指定文件的所有进程;

-l,–list-signals

列出所有已知信号名;

-m,–mount

指定一个被加载的文件系统或一个被加载的块设备;

-M,–ismountpoint

仅当名称为挂载点时满足请求

-n,–namespace SPACE

选择不同的名称空间;

-s,–silent

保持静默

-SIGNAL

仅发送信号

-u,–user

在每个进程后显示所属的用户名。

-v,–verbose

输出详细信息

-w,–writeonly

仅终止具有写访问权限的进程

-V,–version

显示命令软件版本信息

-4,–ipv4

只搜索IPV4套接字

-6,–ipv6

只搜索IPV4套接字

-

重置选项

5、使用示例

1)列出使用某文件的进程号

fuser /etc/passwd

2)列出使用某文件的进程号和用户名

fuser -u /home/wuhs

3)终止给定文件的所有进程

fuser -uk /home/wuhs/

4)列出指定端口的进程号

fuser -n tcp 8080

5)终止使用给定文件系统的所有进程

fuser -kuc /home/

6)终止进程前进行确认

 fuser -u -k -i /home/apache-tomcat/logs/catalina.out

7)发送指定信号并显示详细信息

fuser -k -SIGHUP -v /home/apache-tomcat/logs/catalina.out

推荐文档