也可在 ps命令实战 查看
ps
命令能够给出当前系统中进程的快照。它能捕获系统在某一时间的进程状态。如果你想不断更新查看的这个状态,可以使用top
命令。ps
命令支持三种使用的语法格式:UNIX
- 风格,选项可以组合在一起,并且选项前必须有
-
- 连字符
BSD
- 风格,选项可以组合在一起,但是选项前不能有
-
- 连字符
GNU
- 风格的长选项,选项前有两个
-
- 连字符
UNIX
风格的ps
命令。这里有在日常生活中使用较多的ps
命令的例子。
- 不加参数执行ps命令
ps
结果默认会显示4列信息。
PID
- : 运行着的命令(
CMD
- )的进程编号
TTY
- : 命令所运行的位置(终端)
TIME
- : 运行着的该命令所占用的
CPU
- 处理时间
CMD
- : 该进程所运行的命令
这些信息在显示时未排序。
- 显示所有当前进程
-a
参数。-a
代表 all
。同时加上x
参数会显示没有控制终端的进程。
$ ps -ax
less
命令和管道来使用。
$ ps -ax | less
- 根据用户过滤进程
-u
参数。比如我们要查看用户pungki
的进程,可以通过下面的命令
$ ps -u pungki
- 通过cpu和内存使用来过滤进程
CPU
或者内存用量来筛选,这样你就找到哪个进程占用了你的资源。要做到这一点,我们可以使用 aux
$ ps -aux | less
less
命令来筛选。–sort
CPU
$ ps -aux --sort -pcpu | less
根据 内存使用 来升序排序
$ ps -aux --sort -pmem | less
我们也可以将它们合并到一个命令,并通过管道显示前10个结果:
$ ps -aux --sort -pcpu,+pmem | head -n 10
- 通过进程名和PID过滤
-C
参数,后面跟你要找的进程的名字。比如想显示一个名为getty
的进程的信息,就可以使用下面的命令:
$ ps -C getty
-f
参数来查看格式化的信息列表:
$ ps -f -C getty
- 根据线程来过滤进程
-L
参数,后面加上特定的PID
。
$ ps -L 1213
- 树形显示进程
-axjf
$ps -axjf
pstrss
显示安全信息
ps
命令加上相关参数:
$ ps -eo pid,user,args
-e
显示所有进程信息,-o
参数控制输出。Pid
,User
和 Args
参数显示PID
,运行应用的用户和该应用。
-e
参数 一起使用的关键字是args
, cmd
, comm
, command
, fname
, ucmd
, ucomm
, lstart
, bsdstart
和start
。
- 格式化输出root用户(真实的或有效的UID)创建的进程
root
用户运行的进程和这个进程的其他相关信息时,可以通过下面的命令:
$ ps -U root -u root u
-U
参数按真实用户ID
(RUID
)筛选进程,它会从用户列表中选择真实用户名或 ID
。真实用户即实际创建该进程的用户。-u
参数用来筛选有效用户ID
(EUID
)。u
参数用来决定以针对用户的格式输出,由User
, PID
, %CPU
, %MEM
, VSZ
, RSS
, TTY
, STAT
, START
, TIME
和COMMAND
这几列组成。
这里有上面的命令的输出结果:
- 使用PS实时监控进程状态
ps
CPU
和内存的使用率来筛选进程,并且我们希望结果能够每秒刷新一次。为此,我们可以将ps
命令和watch
命令结合起来。
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu’
head
命令来做到。
$ watch -n 1 ‘ps -aux --sort -pmem, -pcpu | head 20’
pungki
用户的信息,你可以使用下面的命令:
$ watch -n 1 ‘ps -aux -U pungki u --sort -pmem, -pcpu | head 20’