在Linux/Ubuntu/Debian中使用lsof和fuser查看/解除文件占用

"lsof"(列出打开的文件)和"fuser"(使用文件识别进程)类似,但功能略有不同:

1.lsof

- `lsof` 列出有关进程打开的文件的信息。 它提供有关打开哪些文件、哪些进程正在访问这些文件以及其他相关详细信息的详细信息。
- `lsof` 可用于检查在特定设备(例如 MMC 块设备)上打开文件的进程。 它有助于识别可能正在访问设备的进程并防止其被弹出。
- `lsof /dev/sdb`:此命令将列出与整个块设备`/dev/sdb`关联的所有打开的文件。 它将包括在"/dev/sdb"上的任何分区或卷上打开文件的所有进程。 如果你想查看是否有任何进程正在访问整个设备(无论分区如何),此命令非常有用。
- `lsof /dev/sdb1`:此命令将列出与分区"/dev/sdb1"专门关联的打开文件。 它只包括在该特定分区上打开文件的进程。 如果你有兴趣查看哪些进程正在访问设备上的特定分区,则此命令非常有用。
  1. fuser:

    • fuser 使用文件或套接字识别进程。 它显示哪些进程正在使用特定文件或目录。

    • fuser 对于识别使用特定文件或目录的进程特别有用,但不能提供与 lsof 一样多的详细信息。 它通常用于检查使用特定资源的进程,以便可以安全地修改或删除它。

    • 以下是使用 fuser 的一些示例:

      1. 显示使用特定文件的进程:

          fuser /path/to/file
        
      2. 显示使用特定文件系统上的文件的进程(例如,安装在"/mnt"):

          fuser -m /mnt
        
      3. 显示更详细的输出:

          fuser -v /path/to/file
        
      4. 使用文件显示进程的用户名:

          fuser -u /path/to/file
        
      5. 使用文件终止进程:

          fuser -k /path/to/file
        

当你无法弹出设备时,这两个命令对于排除故障非常有用,因为它们有助于识别可能正在访问该设备的进程。 根据你的具体需求和所需的详细程度,你可以选择其中之一。 在许多情况下,同时使用这两个命令可以提供系统文件和进程活动的全面视图。

相关推荐
Sagice33 分钟前
CVE-2019-13272(Linux本地内核提权)
linux·运维·服务器·网络·安全
Kendra9191 小时前
RHCE SELINUX安全管理
linux
白书宇2 小时前
19.QT程序简单的运行脚本
linux·arm开发·嵌入式硬件·物联网·arm
宁静致远20213 小时前
Linux驱动开发(速记版)--设备树插件
linux·驱动开发·嵌入式linux
Winston Wood3 小时前
Linux中的共享内存
linux·内存·共享内存·进程通信·性能
努力的Andy4 小时前
Linux(Ubuntu)升级openssh至9.6版本
linux·安全·ubuntu
0110编程之路4 小时前
ubuntu 安装proxychains
linux·运维·ubuntu
Linux运维老纪6 小时前
linux系统运维面试题(二)(Linux System Operations Interview Questions II)
linux·服务器·面试·云计算·运维开发·devops
G皮T6 小时前
【Linux】常用系统工作命令
linux·运维·服务器·ps·top·kill
基极向上的三极管6 小时前
【Linux学习】【Ubuntu入门】2-3 make工具和makefile引入
linux·ubuntu