【Linux】lsof 和 ps命令(让你通晓它们的作用)
lsof 和 ps 都是在 Linux 系统下用于的命令,但它们是有一些区别的,在本文中,我会首先分别介绍lsof命令和ps命令,之后将它们的区别进行对比。
目录
lsof 和 ps 都是在 Linux 系统下用于查看进程相关信息的命令,但它们是有一些区别的,在本文中,我会首先分别介绍lsof命令和ps命令,之后将它们的区别进行对比。
lsof命令
lsof (list open files) 命令是一个用于列出当前系统打开文件和网络连接的工具,它可以显示哪些进程打开了哪些文件、目录、网络连接、设备等资源。
lsof 常用于诊断问题,查找被占用的文件、网络连接、查看进程的详细信息等。
下面是 lsof 命令的常用选项及示例说明:
1、-i 选项
lsof -i :列出当前系统中所有打开的网络连接。
例如:
lsof -i
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 123 root 3u IPv6 4567 0t0 TCP *:22 (LISTEN)
httpd 456 apache 3u IPv4 7890 0t0 TCP localhost:80->localhost:12345 (ESTABLISHED)
2、-p 选项
lsof -p PID :列出特定进程所打开的文件、目录、网络连接等资源信息。
例如:
lsof -p 123
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
sshd 123 root 3u IPv6 4567 0t0 TCP *:22 (LISTEN)
ps命令
运行 ps
命令(即不带任何参数)时,它默认以当前用户的身份列出与该终端(TTY)关联的进程信息。通常情况下,它将显示当前正在执行的 ps
命令的进程信息。
示例输出可能如下所示:
PID TTY TIME CMD
27757 pts/0 00:00:00 ps
上述示例中的输出显示了当前正在运行的 ps
命令的进程信息,其中 PID 是进程 ID,TTY 是所关联的终端,TIME 是进程的运行时间,CMD 是进程的命令。
如果有其他进程同时在运行,在运行 ps
命令的同时,还会显示其他进程的信息。
lsof 和 ps 的主要区别:
1、功能不同:
- lsof: 用于显示当前系统打开的文件列表,包括普通文件、目录、设备文件和网络连接等。
- ps: 用于列出当前系统上正在运行的进程的快照,包括进程ID(PID)、进程状态、CPU占用率、内存占用等信息。
2、输出信息不同:
- lsof: 输出详细的文件或网络连接信息,包括进程ID、进程名、文件描述符、文件类型、文件路径、连接状态等。
- ps: 输出每个进程的简要信息,包括进程ID、进程名、进程状态、父进程ID、使用的CPU和内存等。
3、数据源不同:
- lsof: 通过查询系统的 /proc 文件系统和文件描述符来获取打开文件和网络连接的信息。
- ps: 通过查询系统的进程表和 /proc 文件系统来获取进程的信息。
4、使用方式不同:
- lsof: 通常需要使用额外的参数选项,例如 "lsof -i" 用于查看网络连接信息、"lsof -p PID" 用于查看特定进程的打开文件等。
- ps: 可以直接使用 "ps" 命令来获取当前用户的进程列表,也可以添加不同的选项来过滤和排序进程列表。
“我还是不理解lsof和ps的区别,你能说的通俗点吗”
当排查进程问题时,lsof
和 ps
是两个常用的工具,它们可以提供不同的信息来帮助我们分析和解决问题。
-
ps
:是进程状态(Process Status)的缩写。ps
命令可以列出系统中正在运行的进程,并提供有关这些进程的信息,如进程 ID(PID)、CPU 使用率、内存使用率等。它主要用于获取当前活动进程的快照,以便我们可以查看进程的状态和性能指标。ps
是一个简单而强大的工具,适合查看进程的整体情况。 -
lsof
:是"list open files"的缩写。lsof
命令可以列出系统中打开的文件和网络连接,包括被哪些进程打开、进程的 PID、占用的文件描述符等。它主要用于查看进程正在使用哪些文件或网络连接,以及查找特定文件被哪个进程占用。lsof
可以帮助我们定位与文件相关的问题,如找到占用某个文件的进程、检查进程是否打开了过多的文件等。
简单来说,ps
提供了对进程本身的一般信息和性能指标的查看,而 lsof
则提供了进程所打开的文件和网络连接的查看。它们在排查问题时提供了不同的视角,让我们可以综合使用它们来更全面地了解进程的状态和资源占用情况,以便解决问题。
开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!
更多推荐
所有评论(0)