文章目录
ps命令的作用是查看进程。
常用参数:
-e 查看所有进程(-A和-e作用相同)
-f 格式化,可以理解为打印的列更多,更好看
常用的组合:
# 查看所有
ps -ef
# 这个可以查看占用的内存
ps -aux
ps -axu各列的含义
ps -aux的显示效果一般如下表:
USER | PID | %CPU | %MEM | VSZ | RSS | TTY | STAT | START | TIME | COMMAND |
---|---|---|---|---|---|---|---|---|---|---|
root | 28837 | 2.9 | 8.0 | 4755400 | 648340 | pts/2 | Sl | 11:16 | 5:28 | 相关命令(可能会很长,不详述) |
列对应的意思:
USER 用户
PID 进程id(process id)
CPU cpu使用率(%)
MEM 内存占用率(%)
VSZ 虚拟内存
RSS 物理内存
TTY
STAT 启动时间
TIME 已运行时间(用掉的cpu时间)
COMMAND 运行命令/启动命令
ps -ef 各列的含义
UID | PID | PPID | C | STIME | TTY | TIME | CMD |
---|---|---|---|---|---|---|---|
root | 28837 | 1 | 0 | 2019 | ? | 00:00:03 | 相关命令(可能会很长,不详述) |
UID 用户ID
PID 进程ID
PPID 进程ID父进程ID
C cpu使用率(%)
STIME 启动时间
TTY
TIME 已运行时间(用掉的cpu时间)
CMD 运行命令/启动命令
说了半天,怎么在命令中显示列名呢?
ps -ef | grep service 为什么不显示列 ?
只能说水平太高了,直接到了应用层面了,换个简单的命令:
ps -ef | head
是不是发现第一行就是列名。
更多的列字段含义怎么看
man ps
命令查看ps手册,
键入 /FORMAT SPECIFIERS
,找到格式定义,这块内容就是列字段说明。
ps -a 和 ps -e的区别
我发现我真是无聊。
手册描述为:
-a
Select all processes except both session leaders (see getsid(2)) and processes not associated with a terminal.
-e
Select all processes. Identical to -A.
也没看出区别在哪,把这2个都理解为都是选择全部基本就差不多了。
如何输出指定列
用-o即可。
例如,只输出 pid,用户?
ps -eo pid,user
-o 后面跟要显示的列即可。
那么 ps -efo pid,user
这种命令对吗?
不对。
因为-f是默认格式化输出,表示输出所有列。 -f和-o是不能一起使用的。