当前位置:首页 > 编程语言 > 正文内容

Linux运维基础之lsof命令详解

a811625532年前 (2024-02-26)编程语言12

lsof 命令是 “List Open Files(列出打开的文件)” 的缩写,它是 Linux 操作系统中的一个强大工具,可提供有关各种进程打开的文件的重要信息。这条多功能命令允许系统管理员监控和管理文件、套接字和 *** 连接,提供系统内资源使用情况的全面视图。

netstatfuser 命令类似,lsof 命令用于识别不同进程正在访问的文件,是故障排除和系统维护不可或缺的工具。无论你是寻求解决冲突的 *** 管理员,还是希望优化资源分配的开发人员,lsof 命令(通常与 等命令一起使用)都是你工具包中的得力助手。

如何安装 lsof 命令

许多 Linux 发行版都预装了 lsof 命令。不过,如果你的系统上没有,也可以使用发行版专用的软件包管理器轻松安装。

基于 Debian 的系统(如 Ubuntu)

安装:

sudo apt-get update
sudo apt-get install lsof

卸载:

sudo apt-get remove lsof

基于红帽的系统(如 CentOS、RHEL)

使用 安装(旧版本):

sudo yum install lsof

使用 安装(较新版本):

sudo dnf install lsof

使用 Yum 卸载:

sudo yum remove lsof

使用 DNF 卸载:

sudo dnf remove lsof

Fedora

安装(旧版本使用 Yum):

sudo yum install lsof

安装(使用 DNF 的较新版本):

sudo dnf install lsof

使用 Yum 卸载:

sudo yum remove lsof

使用 DNF 卸载:

sudo dnf remove lsof

如何使用 lsof

1. 列出所有打开的文件

语法: lsof

说明:列出系统中所有打开的文件。

示例: lsof

输出:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
systemd    1 root  cwd    DIR  253,1     4096      2 /
bash    1234 user  txt    REG  253,1   111350 123456 /bin/bash

该输出会显示所有打开的文件,包括命令名称、进程 ID ( PID )、用户、文件描述符 ( FD )、类型、设备、大小和文件路径。

2. 列出特定用户打开的文件

语法: lsof -u <username>

说明:列出特定用户打开的所有文件。

示例: lsof -u john

输出:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
bash    5678 john  cwd    DIR  253,1     4096  78901 /home/john

该输出会列出用户 john 打开的所有文件,包括命令名称、PID、用户和其他详细信息。

3. 列出特定进程使用的文件

语法: lsof -p <PID>

说明:列出特定进程 ID 使用的所有文件。

示例: lsof -p 1234

输出:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
bash    1234 user  cwd    DIR  253,1     4096  78901 /home/user

该输出列出了 PID 为 1234 的进程使用的所有文件,包括命令名称、PID、用户和其他详细信息。

4. 列出特定端口上的文件

语法: lsof -i :<port>

说明:列出与特定 *** 端口相关联的所有文件。

示例: lsof -i :80

输出:

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
apache  1234 www-data  4u  IPv4  12345      0t0  TCP *:http (LISTEN)

此输出列出了与 80 端口(通常用于 HTTP)相关的所有文件。其中包括命令名称、PID、用户和其他与 *** 连接相关的详细信息。

5. 列出特定命令打开的文件

语法: lsof -c <command_name>

说明:列出特定命令打开的所有文件。

示例: lsof -c sshd

输出:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
sshd    1234 root  cwd    DIR  253,1     4096      2 /

该输出会列出 sshd 命令打开的所有文件,包括命令名称、PID、用户和其他详细信息。

6. 列出在特定文件系统上打开的文件

语法: lsof +D <directory>

说明:列出在特定目录或文件系统中打开的所有文件。

示例: lsof +D /var

输出:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
syslog  567 root    5w   REG  253,2     4096  12345 /var/log/syslog

该输出会列出在 /var 目录中打开的所有文件,包括命令名称、PID、用户和其他详细信息。

7. 列出特定协议的 *** 文件

语法: lsof -i <protocol>

说明:列出使用特定协议(如 TCP 或 UDP)的所有 *** 文件。

示例: lsof -i TCP

输出:

COMMAND  PID  USER   FD   TYPE DEVICE SIZE/OFF NODE NAME
sshd    1234 root    3u  IPv4  56789      0t0  TCP *:ssh (LISTEN)

此输出会列出所有 TCP *** 连接,包括命令名称、PID、用户和其他与 *** 连接相关的详细信息。

8. 列出不包括特定用户打开的文件

语法: lsof -u ^<username>

说明:列出所有文件,但不包括特定用户打开的文件。

示例: lsof -u ^john

输出:

COMMAND  PID USER   FD   TYPE DEVICE SIZE/OFF   NODE NAME
systemd    1 root  cwd    DIR  253,1     4096      2 /

该输出列出了除用户 john 打开的文件外的所有文件,包括命令名称、PID、用户和其他详细信息。

更多 Linux 命令

目录操作  ·  ·  ·  · 
文件操作  ·  ·  ·  ·  ·  ·  ·  · 
文件系统操作  ·  · 
***  ·  ·  ·  · 
搜索和文本处理  ·  ·  ·  ·  ·  · 
系统信息和管理  ·  ·  ·  ·  ·  · 
用户和会话管理  ·  ·  · 

扫描二维码推送至手机访问。

版权声明:本文由2345好导航站长资讯发布,如需转载请注明出处。

本文链接:http://2345hao.cn/blog/index.php/post/8199.html

分享给朋友:

“Linux运维基础之lsof命令详解” 的相关文章

宝塔面板教程之FTP管理篇

宝塔面板教程之FTP管理篇

使用宝塔面板,您可以快速地创建一个FTP管理账户,对网站文件进行管理。但有必要提醒大家的是,使用FTP远不如使用SFTP安全,你可以查看文章“”进一步了解两者之间的差异。 此外,宝塔面板的文件管理模块其实已经能够满足站长的大部分文件管理需求。当然,如果你非得要使用FTP管理服务器文件,可以参照以下...

宝塔面板教程之文件管理篇

宝塔面板教程之文件管理篇

宝塔面板其中一个最为便捷的功能之一,无需SFTP或者FTP即可对服务器的文件内容进行上传、下载、编辑及删除等管理操作。 文件管理,用于管理该服务器上的文件内容。 文件的基础操作 文件的基础操作有哪些了,主要有这些方面:复制、粘贴、剪切、删除、重命名、压缩、刷新、新建文件、新建目录。...

MongoDB vs MySQL:哪个是更好的数据库管理系统?

MongoDB vs MySQL:哪个是更好的数据库管理系统?

由于市场上有各种可用的数据库,用户经常会就MongoDB与MySQL进行辩论,以找出更好的选择。 使用MySQL等关系数据库的组织在根据不断变化的需求管理和存储数据时可能会面临一定的困难。同时,新公司想知道选择什么数据库,这样他们就不会在开发过程中遇到问题。 同时,构建金融应用程序的开发人员...

2022年PHP开发人员的平均工资统计报告

2022年PHP开发人员的平均工资统计报告

PHP开发:有些人认为它是,另一些人认为它是一种过时的技术,不值得花时间学习。但是这些数字说明了什么,尤其是当您查看PHP开发人员的薪水时? 虽然肯定有许多更新、更炫、更令人兴奋的语言,但PHP仍然是后端Web开发的可靠主食,也是许多雇主仍在寻找的技能。 有兴趣自己成为PHP开发人员吗?我们...

如何成为一名出色的Java开发人员

如何成为一名出色的Java开发人员

美国劳工统计局估计在美有超过软件开发人员。根据2021年的数据,其中,这是世界上使用最广泛的五种编程语言之一。 自然,学习Java并成为Java开发人员对于任何对软件开发感兴趣的人来说都是明智的职业选择。 在本综合指南中,您将学习成为Java开发人员所需的一切知识。我们将分解您需要的技能、工...

正面对比Node.js与PHP

正面对比Node.js与PHP

Node.js和PHP是Web开发工作中常用的两种基本Web技术。两者都为服务器端开发做出了贡献,Node.js甚至同时服务于客户端和服务器端开发。 PHP已经为开发人员服务了近3年,现在它为78%的网络提供支持。相比之下,Node.js相对较新,但扩展速度非常快,由于其全栈开发能力而成为流行...