1.什么是PS?
要监视和控制一个进程,首先要了解当前进程的情况,即需要查看当前进程。 ps命令是最基本的进程查看命令。 使用这个命令可以判断哪些进程正在运行以及它们的运行状态,进程是否已经结束,进程中是否有僵尸进程,哪些进程占用资源过多等等,总之大部分信息都可以通过执行这个来获取命令。
ps显示的是瞬时过程的状态,不是动态的、连续的; 如果你想实时监控进程,你应该使用top命令。
基本参数:
输出格式规划:
现在我们来实践一下命令,看看不同的参数有什么效果。
2、不加参数执行ps命令会输出什么?
这是ps的基本用法。 我们来看看在控制台中执行该命令并查看结果。
结果默认会显示4列信息:
显示的信息未排序。
3、如何显示当前所有进程?
使用-a参数,-a代表全部。 同时添加x参数会显示不控制终端的进程。
$ ps -ax
# 这个命令的结果或许会很长。为了便于查看,可以结合less命令和管道来使用。
$ ps -ax | less
4. 如何根据流程的用户过滤信息?
在我们需要查看特定用户进程的情况下,可以使用-u参数。 例如,如果我们想查看用户''的进程,可以使用以下命令:
$ ps -u pungki
5. 如何按cpu和内存使用情况过滤进程?
也许您想按 CPU 或内存使用情况过滤结果,以便找到哪些进程正在消耗您的资源。 为此,我们可以使用 aux 参数来显示综合信息:
$ ps -aux | less
当结果很长时,我们可以使用管道和less命令来过滤。
默认结果集是未排序的。 可以使用 --sort 命令来完成排序。
5.1 根据CPU使用率升序排序
$ ps -aux --sort -pcpu | less
5.2 根据内存使用情况升序排序
$ ps -aux --sort -pmem | less
5.3 我们还可以将它们组合成一个命令并通过管道传输前 10 个结果:
$ ps -aux --sort -pcpu,+pmem | head -n 10
6. 如何按进程名和PID过滤?
使用 -C 参数,后跟您要查找的进程的名称。 例如,如果要显示名为 getty 的进程的信息,可以使用以下命令:
$ ps -C getty
如果我们想查看更多详细信息,可以使用-f参数来查看格式化的信息列表:
$ ps -f -C getty
7. 如何根据线程过滤进程?
如果我们想知道特定进程的线程,可以使用-L参数后跟特定的PID。
$ ps -L 1213
8. 如何以树形方式展示流程?
有时我们想以树形结构显示进程,我们可以使用-axjf参数。
$ ps -axjf
或者您可以使用其他命令。
$ pstree
9. 如何显示防伪信息?
如果您想查看当前谁登录到您的服务器。 您可以使用带相关参数的 ps 命令:
$ ps -eo pid,user,args
-e参数显示所有进程信息,-o参数控制输出。 Pid、User和Args参数显示PID、运行应用程序的用户和应用程序。
可以与 -e 参数一起使用的关键字有 args、cmd、comm、、fname、ucmd、ucomm、和 start。
10. 如何格式化 root 用户创建的进程的输出(真实或有效的 UID)?
当系统管理员想要查看root用户运行的进程以及该进程的其他相关信息时,可以使用以下命令:
$ ps -U root -u root u
-U 参数按真实用户 ID (RUID) 过滤进程,RUID 从用户列表中选择真实用户名或 ID。 真正的用户是实际创建进程的用户。
-u参数用于过滤有效用户ID(EUID)。
最后一个 u 参数用于确定用户的输出格式,由 User、PID、%CPU、%MEM、VSZ、RSS、TTY、STAT、START、TIME 和这些列组成。
以下是上述命令的输出:
11.如何使用PS实时监控进程状态?
ps 命令将显示系统当前的进程状态,但结果是静态的。
当存在上面第 4 点提到的需要按 CPU 和内存使用情况过滤进程的情况,并且我们希望结果每秒刷新一次时。 为此,我们可以将 ps 命令与 watch 命令结合起来。
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’
如果输出太长,我们也可以对其进行限制,比如前20条,我们可以使用head命令来做到这一点。
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’
这里的动态查看和top或者htop命令不一样。 但使用ps的好处是可以定义要显示的字段,并且可以选择想要查看的字段。
例如,如果您只需要查看名为“”的用户的信息,则可以使用以下命令:
$ watch -n 1 ‘ps -aux -U pungki u --sort -pmem, -pcpu | head 20’
12.最后
您可以每天使用 ps 命令来监控您的 Linux 系统。 但实际上,你可以通过ps命令的参数生成你需要的各种报告。
ps命令的另一个优点是,各种Linux系统上都默认安装了ps,因此您只需使用它即可。 不要忘记通过 man ps 检查更多参数。