您的位置:首页 >如何使用ps命令查看进程详细信息
发布于2026-04-24 阅读(0)
扫一扫,手机访问
在Linux和Unix系统的管理工具箱里,ps命令堪称是查看进程状态的“瑞士军刀”。无论是排查系统负载,还是追踪某个程序的运行细节,它都是你首先会想到的工具。不过,你真的会用ps吗?下面,我们就来深入聊聊如何通过不同的选项组合,精准地获取你所需要的进程详细信息。

ps
直接输入ps,不带任何参数,它会非常“克制”地只显示当前终端会话下的进程信息。这对于快速确认当前终端启动了哪些程序,是个不错的起点。
ps aux
当你想知道系统里究竟在跑些什么时,ps aux这个组合命令就该登场了。这里的三个选项各有分工:
a:打破用户界限,列出所有用户的进程。u:提供“用户友好”的视图,额外展示CPU、内存占用率等关键指标。x:把那些没有关联控制终端(比如后台服务、守护进程)的“隐藏”进程也揪出来。可以说,ps aux是系统管理员最常敲的命令之一,它能给你一个完整的系统进程快照。
ps aux | grep username
系统用户太多,进程列表太长?别急,用管道符|连接grep命令,再把上面的username替换成实际用户名,你就能瞬间过滤出只属于该用户的所有进程。这在多用户环境或权限审计时特别有用。
ps -p PID -o pid,ppid,cmd,%cpu,%mem
如果你已经知道目标进程的ID(PID),那么-p选项能让你直击要害。配合-o选项,你可以自定义输出的信息列。比如上面这个命令,就能清晰展示该进程的PID、父进程PPID、完整命令、CPU和内存占用率,信息一目了然。
ps aux --forest
进程之间并非孤立,它们往往存在父子或层级关系。--forest这个参数妙就妙在它能以树状图的形式展示进程,让你一眼就看明白哪个进程启动了哪些子进程。这对于分析进程链、排查僵尸进程非常有帮助。
ps -eo lstart,pid,cmd,%cpu,%mem
想知道那个耗资源的进程是什么时候开始“捣乱”的?试试-eo lstart。这里的-e代表显示所有进程,-o用于指定格式,而lstart则会输出进程确切的启动日期和时间,帮你进行时间线上的溯源分析。
ps -aux --sort=-%mem | head
感觉系统内存吃紧?这个命令组合是你的好帮手。--sort=-%mem会让结果按照内存使用率降序排列,再通过head命令截取最前面的几条(通常是占用最高的)。瞬间,谁是“内存吞噬者”就无所遁形了。
ps -T -p PID
现代应用很多是多线程的。使用-T选项,并指定进程PID,你就能看到该进程下的所有线程列表。这对于分析多线程程序的性能或排查线程阻塞问题至关重要。
lsof -p PID
严格来说,这已经不是ps命令了,但却是进程诊断中不可或缺的一环。lsof命令能列出指定进程打开的所有文件、套接字等描述符。当你怀疑进程是因为文件句柄泄露导致异常时,用它就对了。
netstat -tunlp | grep PID
同样,这也是一个强大的组合命令。通过netstat查看所有网络连接,再用grep过滤出特定PID,你可以清楚地看到这个进程正在监听或建立了哪些网络连接(TCP/UDP,以及对应的端口)。排查网络相关问题时,这是标准操作。
看到这里,你应该发现了,ps命令的真正威力在于其丰富的选项和与其他命令(如grep, sort, lsof, netstat)的组合。灵活运用这些组合,你几乎可以获取到进程任何一个维度的运行信息,从而高效地进行系统监控、性能分析和故障排查。
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
售后无忧
立即购买>office旗舰店
正版软件
正版软件
正版软件
正版软件
正版软件
1
2
3
7
9