《Linux中lsof的神奇探秘:打开文件的魔法与更多相似利器》

简介: 《Linux中lsof的神奇探秘:打开文件的魔法与更多相似利器》

欢迎来到我的博客,代码的世界里,每一行都是一个故事

## 前言

在Linux的世界里,lsof(List Open Files)是一个强大的工具,它能帮助我们轻松查看系统上打开的文件及网络连接。然而,除了lsof之外,还有一些与它功能相似且同样强大的命令等待着我们去发现。本文将引领你深入探讨lsof的奇妙功能,并为你揭示更多类似的利器,助你更好地管理系统资源。

lsof的基础用法

lsof(List Open Files)命令用于列出当前系统中打开的文件、文件描述符和网络连接等信息。以下是 lsof 的一些基础用法:

查看打开的文件:

lsof

上述命令将列出系统中当前所有打开的文件和进程。

列出指定用户打开的文件:

lsof -u <username>

<username> 替换为具体的用户名。这个命令将列出指定用户打开的所有文件。

查看指定端口的网络连接:

lsof -i :<port>

<port> 替换为具体的端口号。这个命令将列出使用指定端口的网络连接信息。

例如,如果你想查看系统中所有使用端口号为 8080 的网络连接,可以运行:

lsof -i :8080

这将列出使用端口号为 8080 的网络连接的详细信息,包括进程名、进程 ID、用户等。

lsof 的更多选项和用法可以通过 man lsof 命令查看 lsof 的手册页。这样可以查看完整的 lsof 命令和选项说明,以便更好地利用这个工具。

lsof高级功能

lsof 提供了一些高级功能,可以进一步定制和筛选输出。以下是一些高级功能的使用示例:

列出被删除但仍然被打开的文件:

lsof -a +L1

这个命令将列出那些已被删除(unlinked)但仍然被打开的文件。+L1 表示列出被删除的文件,后面的数字表示链接数。

查看TCP和UDP连接详细信息:

lsof -i tcp
lsof -i udp

这两个命令分别列出所有的 TCP 和 UDP 连接详细信息。你也可以使用 lsof -i 来列出所有网络连接。

通过正则表达式进行过滤:

lsof -i :80 | grep LISTEN

这个命令列出所有监听端口 80 的网络连接,然后通过 grep 进行进一步过滤,只显示包含 “LISTEN” 的行。

查看指定目录下的打开文件:

lsof /path/to/directory

这个命令将列出指定目录下的所有打开文件,包括目录本身。

列出指定用户和指定端口的文件:

lsof -i -a -u <username> -i :<port>

<username> 替换为具体的用户名,<port> 替换为具体的端口号。这个命令将列出指定用户和指定端口的文件信息。

这些高级功能允许你更精细地筛选和查看系统上的打开文件和进程信息。使用 lsof 时,可以根据具体需求选用适当的选项和过滤条件。

更多替代利器:netstat和ss

netstatss 是两个用于查看系统网络状态的命令,它们提供了关于网络连接、路由表、接口统计等方面的信息。在某些系统中,ss 已经逐渐取代了 netstat

使用 netstat 查看系统网络状态:

netstat -a

上述命令将列出所有的网络连接和监听端口。-a 选项表示显示所有连接,包括监听和非监听状态。

使用 ss 查看系统网络状态:

ss

ss 命令的默认行为类似于 netstat -a,它显示所有的套接字连接。相比于 netstatss 提供了更多的过滤和显示选项,使得查看网络状态更加灵活。

ss 的一些用法示例:

  • 查看所有的 TCP 连接:
ss -t
  • 查看所有的 UDP 连接:
ss -u
  • 查看所有监听的端口:
ss -l
  • 查看所有的 UNIX 套接字:
ss -x
  • 显示所有详细信息,包括进程信息:
ss -e

ss 的输出格式更加简洁和易读,而且在性能上相对更高效,因此在一些现代的 Linux 系统中,ss 已经取代了 netstat。在新的系统或环境中,建议优先使用 ss

总体而言,ss 提供了更多的选项和更好的性能,是 netstat 的一个强大替代工具。

文件系统探秘:lstat和stat

lstatstat 是用于查看文件属性的两个常见命令,它们提供了有关文件的详细信息,包括文件类型、权限、所有者、大小等。

使用 lstat 查看符号链接信息:

lstat 命令用于显示符号链接文件的信息,而不是显示符号链接指向的实际文件的信息。以下是 lstat 的一些用法示例:

lstat <filename>

<filename> 替换为具体的文件名。这个命令将显示符号链接文件本身的信息,而不是它指向的文件的信息。

使用 stat 获取文件详细属性:

stat 命令用于显示文件的详细属性,包括文件的大小、权限、所有者、修改时间等。以下是 stat 的一些用法示例:

stat <filename>

<filename> 替换为具体的文件名。这个命令将显示文件的详细属性信息。

例如,要查看文件 example.txt 的属性,可以运行:

stat example.txt

输出可能包含文件类型、权限、所有者、大小、修改时间等信息。

这两个命令在查看文件信息时非常有用。lstat 主要用于查看符号链接文件的信息,而 stat 则用于查看文件的详细属性。选择使用哪个命令取决于你想要查看的信息和文件类型。

总结:

通过本文的学习,你将不仅掌握lsof的强大功能,还将了解到其他一些同样好用的命令。这些工具能够在不同的场景中帮助你更好地管理和调试系统资源。让我们一起走进Linux文件查看的神秘世界,发掘更多隐藏在命令行后的魔法吧!

结语

深深感谢你阅读完整篇文章,希望你从中获得了些许收获。如果觉得有价值,欢迎点赞、收藏,并关注我的更新,期待与你共同分享更多技术与思考。

相关文章
|
19天前
|
监控 Linux
掌握Linux系统管理利器:深度解读Linux top命令
掌握Linux系统管理利器:深度解读Linux top命令
30 0
|
9月前
|
Linux
Linux大文件查看利器:掌握Less命令的使用和技巧
Linux大文件查看利器:掌握Less命令的使用和技巧
479 0
|
19天前
|
Linux C语言
【Linux】 拿下 系统 基础文件操作!!!
怎么样,我们的猜测没有问题!!!所以语言层的文件操作函数,本质底层是对系统调用的封装!通过不同标志位的封装来体现w r a+等不同打开类型! 我们在使用文件操作时,一般都要使用语言层的系统调用,来保证代码的可移植性。因为不同系统的系统调用可以会不一样!
22 2
|
19天前
|
存储 Linux 开发工具
Linux下的系统编程——文件与目录操作(六)
Linux下的系统编程——文件与目录操作(六)
53 0
Linux下的系统编程——文件与目录操作(六)
|
19天前
|
Linux 开发工具 数据安全/隐私保护
【Linux】基础命令大全、实用快捷键 —— 掌握linux使用,一文足矣。
【Linux】基础命令大全、实用快捷键 —— 掌握linux使用,一文足矣。
110 1
|
10月前
|
Java Unix Linux
开发常用的 Linux 命令4(系统、进程和其它)
开发常用的 Linux 命令4(系统、进程和其它)
|
Linux Shell
linux基本功系列之wc命令实战
linux基本功系列之wc命令实战
164 0
linux基本功系列之wc命令实战
|
Linux 计算机视觉
【Linux从入门到精通】之操作文件命令
【Linux从入门到精通】之操作文件命令
94 0
【Linux从入门到精通】之操作文件命令
|
NoSQL Linux C++
Linux开发coredump文件分析实战分享
Linux开发coredump文件分析实战分享
162 1
Linux开发coredump文件分析实战分享
|
存储 Linux Windows
2000多字教你三招在Linux中找出大文件,最后一个命令简直太简单了!
使用Windows的朋友大家都使用过各类电脑管家,时不时去扫描电脑中有没有大文件,因为大文件会占用很大的磁盘空间,造成浪费,这个在Windows系统中很好实现,但是如果是Linux系统呢?
707 0
2000多字教你三招在Linux中找出大文件,最后一个命令简直太简单了!