Linux系统之fuser命令的基本使用

Linux系统之fuser命令的基本使用

  • 一、fuser命令介绍
  • 二、fuser命令使用帮助
    • 2.1 help帮助信息
    • 2.1 基本语法
      • ①通用选项
      • ②文件/设备相关选项
      • ③网络相关选项
      • ④进程操作选项
      • ⑤其他选项
  • 三、fuser命令的基本使用
    • 3.1 查找挂载点的进程
    • 3.2 查看指定设备进程信息
    • 3.3 查找监听特定端口的进程
    • 3.4 查找使用特定文件的进程
  • 四、注意事项

在这里插入图片描述

一、fuser命令介绍

fuser 是一个在类 Unix 系统中非常有用的命令行工具,它可以帮助用户找出哪些进程正在使用指定的文件、文件系统或网络端口。这对于需要确定某个资源被哪个进程占用的情况特别有用,比如当你尝试卸载一个挂载点但系统提示设备忙时。对于阻塞特别设备,此命令列出了使用该设备上任何文件的进程。

二、fuser命令使用帮助

2.1 help帮助信息

命令行下的help帮助信息

[root@openEuler-test ~]# fuser --help
fuser: Invalid option --help
Usage: fuser [-fIMuvw] [-a|-s] [-4|-6] [-c|-m|-n SPACE]
             [-k [-i] [-SIGNAL]] NAME...
       fuser -l
       fuser -V
Show which processes use the named files, sockets, or filesystems.

  -a,--all              display unused files too
  -i,--interactive      ask before killing (ignored without -k)
  -I,--inode            use always inodes to compare files
  -k,--kill             kill processes accessing the named file
  -l,--list-signals     list available signal names
  -m,--mount            show all processes using the named filesystems or
                        block device
  -M,--ismountpoint     fulfill request only if NAME is a mount point
  -n,--namespace SPACE  search in this name space (file, udp, or tcp)
  -s,--silent           silent operation
  -SIGNAL               send this signal instead of SIGKILL
  -u,--user             display user IDs
  -v,--verbose          verbose output
  -w,--writeonly        kill only processes with write access
  -V,--version          display version information
  -4,--ipv4             search IPv4 sockets only
  -6,--ipv6             search IPv6 sockets only
  udp/tcp names: [local_port][,[rmt_host][,[rmt_port]]]

2.1 基本语法

fuser [-<选项>] <文件/目录/端口号>

①通用选项

  • -a, --all: 显示命令行中指定的所有文件,包括那些当前没有被任何进程使用的文件。
  • -s, --silent: 静默模式。如果没有进程使用指定的文件或端口,则不显示任何输出。
  • -u, --user: 在输出中显示每个进程对应的用户名。
  • -v, --verbose: 详细模式。提供更详细的输出信息。
  • -V, --version: 显示 fuser 命令的版本信息。

②文件/设备相关选项

  • -I, --inode: 总是使用 inode 号来比较文件,而不是路径名。
  • -m, --mount: 显示所有正在使用指定挂载点或块设备的进程。
  • -M, --ismountpoint: 只有当指定的名称是一个挂载点时才执行请求。
  • -w, --writeonly: 只杀死具有写权限的进程。

③网络相关选项

  • -n, --namespace SPACE: 指定搜索的名字空间(可以是 fileudptcp)。
  • -4, --ipv4: 仅搜索 IPv4 套接字。
  • -6, --ipv6: 仅搜索 IPv6 套接字。

④进程操作选项

  • -k, --kill: 杀死访问指定文件或端口的所有进程。
  • -i, --interactive: 在杀死进程之前询问用户(只有与 -k 一起使用时有效)。
  • -SIGNAL: 发送这个信号代替默认的 SIGKILL 信号(只有与 -k 一起使用时有效)。

⑤其他选项

  • -l, --list-signals: 列出可用的信号名称。
  • NAME...: 要检查的一个或多个文件名、目录名或网络端口号。

三、fuser命令的基本使用

3.1 查找挂载点的进程

查询当前的文件系统

[root@openEuler-test ~]# df -hT
Filesystem                 Type      Size  Used Avail Use% Mounted on
/dev/mapper/openeuler-root ext4       69G  2.3G   63G   4% /
devtmpfs                   devtmpfs  4.0M     0  4.0M   0% /dev
tmpfs                      tmpfs     3.7G     0  3.7G   0% /dev/shm
tmpfs                      tmpfs     4.0M     0  4.0M   0% /sys/fs/cgroup
tmpfs                      tmpfs     1.5G  8.8M  1.5G   1% /run
tmpfs                      tmpfs     3.7G     0  3.7G   0% /tmp
/dev/mapper/openeuler-home ext4      512G   30M  486G   1% /home
/dev/sda2                  ext4      974M  175M  732M  20% /boot

执行以下命令,这将列出所有正在使用/home 的进程 ID。

[root@openEuler-test ~]# fuser -mv /home
                     USER        PID ACCESS COMMAND
/home:               root     kernel mount /home

3.2 查看指定设备进程信息

查看指定设备上的进程信息,包括进程的用户、进程ID、对设备的访问方式和命令,此处显示了/dev/mapper/openeuler-home设备上正在使用的进程信息。

[root@openEuler-test ~]# fuser -mv /dev/mapper/openeuler-home
                     USER        PID ACCESS COMMAND
/dev/dm-2:           root     kernel mount /home

3.3 查找监听特定端口的进程

显示出所有正在监听 TCP 端口 80 的进程。

[root@openEuler-test ~]# fuser -n tcp 80
80/tcp:               1944 21789 21790 21797

3.4 查找使用特定文件的进程

在当前终端,监控日志文件。

tail -f /var/log/messages

在这里插入图片描述

新建一个终端,执行以下命令,列出所有正在使用/var/log/messages 的进程 ID。

[root@openEuler-test ~]# fuser  -v /var/log/messages
                     USER        PID ACCESS COMMAND
/var/log/messages:   root       1071 F.... rsyslogd
                     root      25183 f.... tail

四、注意事项

  1. 谨慎使用 -k 选项:在使用 -k 杀死进程之前,请确保你了解这些进程的功能及其对系统的影响。
  2. 结合 -i 选项确认操作:使用 -i 选项可以在杀死进程前要求用户确认,以防止误操作。
  3. 仔细检查目标文件或端口:确保指定正确的文件、目录或网络端口号,避免影响不相关的资源。
  4. 理解命令输出:熟悉 fuser 的输出格式,以便正确解读哪些进程正在使用指定的资源。
  5. 利用 -u 查看用户名:使用 -u 选项可以显示每个进程对应的用户名,帮助更好地识别和管理进程。
  6. 选择合适的命名空间:通过 -n 选项选择正确的命名空间(如 file, tcp, udp)来精确查找相关资源。
  7. 注意权限问题:运行 fuser 可能需要足够的权限,特别是在处理系统关键文件或端口时,可能需要 root 权限。
  8. 考虑使用 -s 静默模式:当不需要任何输出信息时,可以使用 -s 选项来静默执行,适用于脚本中自动化处理。
  9. 避免滥用 -k 信号:除非必要,否则不要随意更改默认的 SIGKILL 信号,因为这可能导致进程无法正常关闭。
  10. 测试与验证:在生产环境中使用前,先在测试环境中进行充分测试,以确保命令的行为符合预期。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/924098.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

守护进程

目录 守护进程 前台进程 后台进程 session&#xff08;进程会话&#xff09; 前台任务和后台任务比较好 本质 绘画和终端都关掉了&#xff0c;那些任务仍然在 bash也退了&#xff0c;然后就托孤了 ​编辑 守护进程化---不想受到任何用户登陆和注销的影响​编辑 如何…

网络安全在现代企业中的重要作用

网络安全是这个数字时代最令人担忧的事情之一。对技术的依赖性越来越强&#xff0c;使其同时面临多种网络威胁。其声誉和法律后果的大幅下降可能归因于一次妥协。 这使得良好的网络安全成为所有企业的选择和必需品。本文介绍了网络安全的重要性、企业中常见的网络威胁以及公司…

C++学习日记---第14天(蓝桥杯备赛)

笔记复习 1.对象的初始化和清理 对象的初始化和清理是两个非常重要的安全问题&#xff0c;一个对象或者变量没有初始状态&#xff0c;对其使用后果是未知&#xff0c;同样的使用完一个对象或者变量&#xff0c;没有及时清理&#xff0c;也会造成一定的安全问题 构造函数&…

Kotlin DSL Gradle 指南

本文是关于 Kotlin DSL Gradle 的指南&#xff08;上篇&#xff09;&#xff0c;介绍了 Gradle 作为 Android 开发构建工具的作用及优势&#xff0c;包括初始配置、生命周期、依赖管理、Task 相关内容。如 Task 的创建、自定义、各种方法和属性&#xff0c;以及文件操作等&…

深度学习笔记之BERT(三)RoBERTa

深度学习笔记之RoBERTa 引言回顾&#xff1a;BERT的预训练策略RoBERTa训练过程分析静态掩码与动态掩码的比较模型输入模式与下一句预测使用大批量进行训练使用Byte-pair Encoding作为子词词元化算法更大的数据集和更多的训练步骤 RoBERTa配置 引言 本节将介绍一种基于 BERT \t…

扫振牙刷设计思路以及技术解析

市面上目前常见的就两种&#xff1a;扫振牙刷和超声波牙刷 为了防水&#xff0c;表面还涂上了一层防水漆 一开始的电池管理芯片&#xff0c;可以让充电更加均衡。 如TP4056 第一阶段以恒流充电&#xff1b;当电压达到预定值时转入第二阶段进行恒压充电&#xff0c;此时电流逐…

机器学习基础--基于常用分类算法实现手写数字识别

# 1.数据介绍 >MNIST 数据集来自美国国家标准与技术研究所, National Institute of Standards and Technology (NIST). 训练集 (training set) 由来自 250 个不同人手写的数字构成, 其中 50% 是高中学生, 50% 来自人口普查局 (the Census Bureau) 的工作人员. 测试集(test …

解决jupyter notebook 新建或打开.ipynb 报500 : Internal Server Error(涉及jinja2兼容性问题)

报错&#xff1a; [E 10:09:52.362 NotebookApp] 500 GET /notebooks/Untitled16.ipynb?kernel_namepyt hon3 (::1) 93.000000ms refererhttp://localhost:8888/tree ...... 重点是&#xff1a; from .exporters import * File "C:\ProgramData\Anaconda3\lib\site-p…

基于Springboot企业级工位管理系统【附源码】

基于Springboot企业级工位管理系统 效果如下&#xff1a; 系统登录页面 员工主页面 部门信息页面 员工管理页面 部门信息管理页面 工位信息管理页面 工位分配管理页面 研究背景 随着计算机技术的发展以及计算机网络的逐渐普及&#xff0c;互联网成为人们查找信息的重要场所。…

GoogleTest做单元测试

目录 环境准备GoogleTest 环境准备 git clone https://github.com/google/googletest.git说cmkae版本过低了&#xff0c;解决方法 进到googletest中 cmake CMakeLists.txt make sudo make installls /usr/local/lib存在以下文件说明安装成功 中间出了个问题就是&#xff0c;…

Android 11 三方应用监听关机广播ACTION_SHUTDOWN

前言 最近有项目过程中&#xff0c;有做app的同事反馈&#xff0c;三方应用无法监听关机广播。特地研究了下关机广播为啥监听不到。 1.原因&#xff1a;发送关机广播的类是ShutdownThread.java&#xff0c;添加了flag:Intent.FLAG_RECEIVER_FOREGROUND | Intent.FLAG_RECEIVER…

一篇文章了解Linux

目录 一&#xff1a;命令 1 ls命令作用 2 目录切换命令&#xff08;cd/pwd&#xff09; &#xff08;1)cd切换工作目录命令 3 相对路径、绝对路径和特殊路径 (1)相对路径和绝对路径的概念和写法 (2)几种特殊路径的表示符 (3)练习题&#xff1a; 4 创建目录命令&#x…

css—动画

一、背景 本文章是用于解释上一篇文章中的问题&#xff0c;如果会动画的小伙伴就不用再次来看了&#xff0c;本文主要讲解一下动画的设定规则&#xff0c;以及如何在元素中添加动画&#xff0c;本文会大篇幅的讲解一下&#xff0c;动画属性。注意&#xff0c;这是css3的内容&am…

MATLAB下的RSSI定位程序,二维平面上的定位,基站数量可自适应

文章目录 引言程序概述程序代码运行结果待定位点、锚点、计算结果显示待定位点和计算结果坐标 引言 随着无线通信技术的发展&#xff0c;基于 R S S I RSSI RSSI&#xff08;接收信号强度指示&#xff09;的方法在定位系统中变得越来越流行。 R S S I RSSI RSSI定位技术特别适…

排序算法之选择排序堆排序

算法时间复杂度辅助空间复杂度稳定性选择排序O(N^2)O(1)不稳定堆排序O(NlogN)O(1)不稳定 1.选择排序 这应该算是最简单的排序算法了&#xff0c;每次在右边无序区里选最小值&#xff0c;没有无序区时&#xff0c;就宣告排序完毕 比如有一个数组&#xff1a;[2,3,2,6,5,1,4]排…

电视网络机顶盒恢复出厂超级密码大全汇总

部分电视机顶盒在按遥控器设置键打开设置时&#xff0c;会弹出设置密码弹窗&#xff0c;需输入密码才能操作其中内容。 如下图所示&#xff1a; 部分电视机顶盒在选择恢复出厂设置时&#xff0c;会出现设置密码弹窗&#xff0c;只有输入操作密码后才能进行恢复出厂设置的操作。…

继续完善wsl相关内容:基础指令

文章目录 前言一、我们需要安装wsl,这也是安装docker desktop的前提,因此我们在这篇文章里做了介绍:二、虽然我们在以安装docker desktop为目的时,不需要安装wsl的分发(distribution),但是装一个分发也是有诸多好处的:三、在使用wsl时,不建议把东西直接放到系统里,因…

基于STM32的智能风扇控制系统

基于STM32的智能风扇控制系统 持续更新&#xff0c;欢迎关注!!! ** 基于STM32的智能风扇控制系统 ** 近几年&#xff0c;我国电风扇市场发展迅速&#xff0c;产品产出持续扩张&#xff0c;国家产业政策鼓励电风扇产业向高技术产品方向发展&#xff0c;国内企业新增投资项目投…

Zero to JupyterHub with Kubernetes中篇 - Kubernetes 常规使用记录

前言&#xff1a;纯个人记录使用。 搭建 Zero to JupyterHub with Kubernetes 上篇 - Kubernetes 离线二进制部署。搭建 Zero to JupyterHub with Kubernetes 中篇 - Kubernetes 常规使用记录。搭建 Zero to JupyterHub with Kubernetes 下篇 - Jupyterhub on k8s。 参考&…

docker-compose搭建xxl-job、mysql

docker-compose搭建xxl-job、mysql 1、搭建docker以及docker-compose2、下载xxl-job需要数据库脚本3、创建文件夹以及docker-compose文件4、坑来了5、正确配置6、验证-运行成功 1、搭建docker以及docker-compose 略 2、下载xxl-job需要数据库脚本 下载地址&#xff1a;https…