fuser 和 lsof 可以用于系统安全检查。
用fuser查看哪些用户和进程在某些地方作什么:
fuser -cu /root 简略显示
fuser -muv /mnt3 分列显示

lsof 拥有更多的功能
# lsof -i 看系统中有哪些开放的端口,哪些进程、用户在使用它们,比 netstat -lptu 的输出详细。

# lsof -i 4  查看IPv4类型的进程
COMMAND    PID        USER   FD   TYPE DEVICE SIZE NODE NAME
exim4     2213 Debian-exim    4u  IPv4   4844       TCP *:smtp (LISTEN)
dhclient3 2306        root    4u  IPv4   4555       UDP *:bootpc

# lsof -i 6  查看IPv6类型的进程
COMMAND  PID        USER   FD   TYPE DEVICE SIZE NODE NAME
exim4   2213 Debian-exim    3u  IPv6   4820       TCP *:smtp (LISTEN)

# lsof -i @192.168.1.2  查看与某个具体的IP相关联的进程
COMMAND  PID USER   FD   TYPE DEVICE SIZE NODE NAME
amule   3620 root   16u  IPv4  11925       TCP 192.168.1.2:42556->77.247.178.244:4242 (ESTABLISHED)
amule   3620 root   28u  IPv4  11952       TCP 192.168.1.2:49915->118-166-47-24.dynamic.hinet.net:5140 (ESTABLISHED)

# lsof -p 5670 查看PID为5670的进程打开的文件。

通过lsof命令工具可以查看某个进程占用了哪些句柄。同时也可以看某个文件被哪些进程使用了。

2.lsof常见的用法

(A)查找应用程序打开的文件

lsof -p pid   可以查看进程号为pid的进程打开了哪些文件或者占用了哪些fd。

(B)查找打开某个文件的应用程序

lsof filename   可以查看名称为filename的文件被哪些进程打开了。

(C)使用lsof查看网络连接

命令格式为:

lsof -i protocol:@ip:port
其中protocol可以是tcp或udp,ip是主机ip,port是端口
具体使用命令有:

lsof -i #列出所有网络连接的进程
lsof -i tcp #列出所有正式使用tcp协议的进行网络通信的进程
lsof -i :8080 #列出正在监听8080端口的进程
lsof -i tcp:80 #列出正在使用tcp协议监听80端口的进程
(D)lsof还有一些其他高级的用法

例如,恢复已经被删除的文件等等。

备注:

(1)使用/usr/sbin/lsof |grep delete查看被rm的文件,仍然被进程占用,最终导致磁盘空间释放不了。当进程打开了某个文件时,只要该进程保持打开该文件,即使将其删除,它依然存在于磁盘中。这意味着,进程并不知道文件已经被删除,它仍然可以向打开该文件时提供给它的文件描述符进行读取和写入。除了该进程之外,这个文件是不可见的,因为已经删除了其相应的目录条目。

(2)lsof输出的信息中,有一列SIZE值,表示文件的大小,单位是Byte

学习资料来源:

http://www.ibm.com/developerworks/cn/aix/library/au-lsof.html

二、fuser介绍和使用

1.fuser

fuser能识别出正在对某个文件或端口访问的所有进程,类似于lsof。但从区别上来说,lsof可以通过文件名找到正在使用该文件的所有进程,同时也可以根据进程id找出该进程使用的哪些文件。fuser则是可以通过文件名找到使用该文件的所有进程。但是fuser有一个特别的用法在于它可以一次杀死那些正在访问指定文件的进程。

2.fuser的命令格式和常用选项

命令格式:

fuser [option] filename
常用的选项:

-v 列出进程的详细信息,而不仅仅是进程id
-u 列出进程所属的用
-k signal 如果不指定signal,那么默认是SIGKILL。当然用户自己指定信号,例如SIGHUP
-l 列出所有支持的信号

3.fuser命令使用举例

fuser /home/work/wahaha.txt #列出所有使用/home/work/wahaha.txt文件的进程
fuser -v /home/work/wahaha.txt #列出进程的详细信息,而不仅仅是进程id
fuser -u /home/work/wahaha.txt #同时列出进程的user
fuser -k /home/work/wahaha.txt #杀死所有正在使用/home/work/wahaha.txt文件的进程
fuser -k SIGHUP /home/work/wahaha.txt #向所有正在使用/home/work/wahaha.txt文件的进程发送HUP信号
fuser -l #列出所有支持的信号

---------------------

Linux学习笔记:fuser和lsof的更多相关文章

  1. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  2. linux学习笔记2-linux的常用命令

    第一篇博客:linux学习笔记1-ubuntu的安装与基本设置 之中,已经介绍了如何安装linux操作系统,以及一些基本的设置修改. 本篇博客主要介绍linux中的一些常用的终端命令 ======== ...

  3. Linux学习笔记(一)2015.4.13

    研究生由单片机转Linux学习 首先安装VMware虚拟机,用的是VMware 10.0 在VMware 10.0上安装视频上推荐的Red Hat Linux 5 安装后正式进入Linux学习 笔记1 ...

  4. 20160127 linux 学习笔记

    Linux学习笔记第一天 Linux基本介绍 Linux的起源和发展: 简单说linux是一种操作系统,可以安装在包括服务器.个人电脑,乃至PDA.手机.打印机等各类设备中. 起源: Linux起源于 ...

  5. linux —— 学习笔记(汇总)

    笔记目录:一.系统知识 和 基本概念                    二.常用操作                   三.系统管理(内存.设备.服务等管理)                   ...

  6. Linux学习笔记-林耐斯Notes-Linux就该这么学

    Linux学习笔记... 参考的优秀Linux网站: http://www.w3cschool.cn/linux/ http://www.linuxeye.com/ http://linux.vbir ...

  7. Linux~学习笔记目录索引

    回到占占推荐博客索引 本篇文章是对自己学习Linux及在它的环境下部署工具的一个总结,以方便自己查阅,也给他人一个帮助,本文章同时会不断的更新,欢迎大家订阅! 本目录包括的内容会包括linux基础命令 ...

  8. deepin linux学习笔记(四)进不去图形界面怎么办?

    目录 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 更换成lxde桌面 进不去图形界面怎么办? 总结 deepin linux学习笔记(四)进不去图形界面怎么办? 前言 生命不息 ...

  9. deepin linux 学习笔记(二)——文本编辑器

    目录 deepin linux 学习笔记(二)--文本编辑器 前言 nano 小巧的命令行编辑器 通用 编辑 定位 排版 配置 vim 思路独特的超级编辑器 命令模式 插入模式 底线模式(末行模式) ...

随机推荐

  1. K2 BPM_携手捷普:让流程立于云端,臻于至上_全球领先的工作流引擎

    在工业4.0地催化下,新一代信息技术与高科制造业深度融合,正在引发影响深远的产业变革,形成了新的生产方式.产业形态.商业模式和经济增长点. 捷普作为世界上最大型的电子制造服务公司之一,正站在新的历史发 ...

  2. Ubuntu的apt-get代理设置

    三种方法 -o选项 # sudo apt-get -o Acquire::http::proxy="http://127.0.0.1:8080/" update 配置文件 # vi ...

  3. 2.TCP/IP的三次握手与四次挥手

    参考文章:http://357742954.blog.51cto.com/368705/1317226 TCP(Transmission Control Protocol) 传输控制协议,是一个面向连 ...

  4. go语言学习(基本数据类型)

    值类型: int/uint :根据系统确定是32还是64位.此外还有int8/uint8.int16/uint16.int32/uint32.int64/uint64 byte:字节型,相当于uint ...

  5. hibernate使用注解生成表,有时无法生成数据表的原因

    待生成表中有字段“desc”或“descripe”等和hibernate关键字,导致和hibernate冲突

  6. 【jmeter】无GUI界面,命令行运行测试脚本

    一.应用场景 1.无需交互界面或受环境限制(linux text model) 2.远程或分布式执行 3.持续集成,通过shell脚本或批处理命令均可执行,生成的测试结果可被报表生成模块直接使用,便于 ...

  7. linux实操_权限管理

    rwx权限详解 作用到文件: [r]代表可读(read):可以读取,查看 [w]代表可写(write):可以修改,但是不代表可以删除文件,删除一个文件的前提条件时对该文件所在的目录有写权限,才能删除该 ...

  8. scrollReveal(页面缓入效果插件)

    scrollReveal(页面缓入效果插件)实现页面滚动时动画加载元素效果 前面我去了解了元素距页面视图距离,想实现页面滚动是动画加载元素(https://www.cnblogs.com/chengh ...

  9. BZOJ 4129 Haruna’s Breakfast ( 树上带修莫队 )

    题面 求树上某路径上最小的没出现过的权值,有单点修改 添加链接描述 分析 树上带修莫队板题,问题是怎么求最小的没出现过的权值. 因为只有nnn个点,所以没出现过的最小值一定在[0,n][0,n][0, ...

  10. deferred.pipe([doneFilter],[failFilter],[progressFilter])

    deferred.pipe([doneFilter],[failFilter],[progressFilter]) 概述 筛选器和/或链Deferreds的实用程序方法. deferred.pipe( ...