在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
        

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

相关推荐
康熙38bdc4 分钟前
Linux 环境变量
linux·运维·服务器
hakesashou1 小时前
python如何比较字符串
linux·开发语言·python
Ljubim.te1 小时前
Linux基于CentOS学习【进程状态】【进程优先级】【调度与切换】【进程挂起】【进程饥饿】
linux·学习·centos
cooldream20091 小时前
Linux性能调优技巧
linux
QMCY_jason2 小时前
Ubuntu 安装RUST
linux·ubuntu·rust
慕雪华年2 小时前
【WSL】wsl中ubuntu无法通过useradd添加用户
linux·ubuntu·elasticsearch
苦逼IT运维2 小时前
YUM 源与 APT 源的详解及使用指南
linux·运维·ubuntu·centos·devops
第六五2 小时前
ubuntu命令行连接wifi
服务器·ubuntu
仍有未知等待探索3 小时前
Linux 传输层UDP
linux·运维·udp
没有余地 EliasJie3 小时前
Windows Ubuntu下搭建深度学习Pytorch训练框架与转换环境TensorRT
pytorch·windows·深度学习·ubuntu·pycharm·conda·tensorflow