作者介绍:简历上没有一个精通的运维工程师。请点击上方的蓝色《运维小路》关注我,下面的思维导图也是预计更新的内容和当前进度(不定时更新)。
在上一章节中,我们详细讲解了Linux系统自带的日志服务,帮助大家对其有了初步的了解。接下来,我们将深入探讨一些进阶命令,这些命令涵盖了系统操作、系统查看和处理、Linux文本处理、逻辑判断、重定向、网络传输、服务启动、文件句柄等方面。通过学习这些操作,您将能够更加灵活地操作Linux系统。具体内容将分为以下章节进行讲解:
Linux进阶命令-echo&date&alias
Linux进阶命令-top
Linux进阶命令-ps&kill
Linux进阶命令-sort&wc
Linux进阶命令-sed&split
Linux进阶命令-awk&uniq
Linux进阶命令-逻辑或&逻辑与
Linux进阶命令-重定向
Linux进阶命令-scp
Linux进阶命令-rsync
Linux进阶命令-rsync-daemon
Linux进阶命令-nohup&screen
Linux进阶命令-lsof(本章节)
Linux进阶命令-小结
在介绍Linux入门-Linux目录时,我们提到过,Linux系统中一切皆文件;在讲解Linux基础软件-库文件时,我们也提到,库文件实际上是系统自带的一些函数的集合,普通应用程序通过调用这些函数来实现对文件的增删查改等操作。同样,在Linux中有一个命令lsof,可以用来显示所有打开的文件。这个命令与ps命令类似,ps用于查看所有进程,而lsof则用于查看所有打开的文件。
lsof
lsof是一个在类Unix操作系统中用于列出打开文件的工具。这个命令的名字源自“list open files”的缩写。在Unix和类Unix系统中,文件不仅仅指的是磁盘上的文件,还包括各种类型的文件,如目录、设备、管道、套接字等。使用lsof命令,您可以查看哪些进程打开了哪些文件,以及这些文件的状态。
在最小化安装的情况下,lsof命令通常不会自带,需要手动安装。
yum -y install lsof
常用选项和用法
lsof
这个命令将列出系统中所有打开的文件和相关的进程信息,但由于信息量巨大,通常不具备参考意义,除非用于过滤和搜索。
lsof /path/to/file
显示哪个进程打开了指定路径的文件。
lsof -p <pid>
显示指定进程ID打开的所有文件。在实际应用中,如果某些应用程序找不到它们使用的配置或日志文件,可以通过这种方式找到它们所使用的配置或日志文件。
lsof -u <username>
显示由指定用户打开的所有文件。
lsof -i :<port>
显示所有使用指定端口的网络连接和进程,可以替代netstat和ss命令的部分功能。
lsof -i
列出所有网络连接和相关的进程,相当于ss和netstat命令。
lsof +D /usr
列出该目录下被打开的文件。
lsof | grep '(deleted)'
显示那些被删除的文件仍然被进程打开,因此某些未确定的大文件可以通过Linux进阶命令-重定向的方式来释放空间。
COMMAND:启动文件的命令名。PID:进程ID。TID:线程ID(对于多线程进程)。USER:打开文件的用户。FD:文件描述符,指示文件在进程中的访问方式。TYPE:文件类型(如REG表示常规文件,DIR表示目录,CHR表示字符设备等)。DEVICE:设备号,标识文件所在的设备。SIZE/OFF:文件大小或偏移量。NODE:文件的节点号。NAME:文件的名称或路径。
总结
lsof最常用的可能是找出删除文件而空间未释放的问题,也就是第八个用法。当然,这个时候文件仍然可以恢复,具体内容将在讲解proc时详细说明。
以上就是Linux进阶命令-lsof的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号