在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

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

相关推荐
脆皮炸鸡7558 小时前
进程通信----命名管道
linux·经验分享·笔记·算法·学习方法
Mapleay8 小时前
FE-BE 动态路机制之 DPCM 与 DAPM 协作
linux
IT大白鼠9 小时前
Linux故障分析与排查:系统日志、启动故障与文件系统修复
linux·运维·服务器
老詹图解IT9 小时前
统信 UOS 登录界面转圈闪退/卡登录等常见原因及处理
linux·服务器·网络
闫记康9 小时前
Linux学习笔记day1
linux·笔记·学习
轻颂呀9 小时前
进程间关系和守护进程
linux·网络
sbjdhjd9 小时前
02 (中)| K8s Pod 生产化落地:从配置到优化全流程
linux·运维·云原生·kubernetes·开源·podman·kubelet
皓月盈江9 小时前
Linux Ubuntu系统如何编辑Docker容器内的文件
linux·ubuntu·docker·容器·靶场·vulhub·编辑docker内文件
jingyu飞鸟9 小时前
linux系统二进制安装MySQL 8.4、8.0版本数据库,配置crontab和xtrabackup数据库热备份脚本
linux·数据库·mysql
无限进步_9 小时前
从Multics到Linux:操作系统的自由之路
linux·运维·服务器