ps命令的使用(linux)
文章目录查看占用内存最高的几个服务ps -axu各列的含义ps -ef 各列的含义说了半天怎么在命令中显示列名呢?C列高表示有问题吗超过一天如何查看具体的启动时间更多的列字段含义怎么看ps -a 和 ps -e的区别如何输出指定列那么 ps -efo pid,user 这种命令对吗?如何查看线程号、-L是什么意思如何查看进程号的内容?进程号的内容都放在哪里了?ps命令的作用是查看进程。常用参数-e 查看所有进程(-A和-e作用相同)-f 格式化可以理解为打印的列更多更好看 这个有个默认的格式-o format常用的组合# 查看所有ps-ef# 这个可以查看占用的内存ps-aux查看占用内存最高的几个服务相当于内存倒序。ps-eouser,pid,rss,cmd|sort-k3nr|head-e# 查看所有进程基本必加-o# 指定字段格式化-o后面必须明确指定列user 用户 pid 进程号 rss 内存 cmd 进程命令sort-k3nr# 根据第3列以数值大小排序k3 第3列 n 数值形式 r 倒序head因为有很多行所以head下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 物理内存TTYSTAT 启动时间TIME 已运行时间用掉的cpu时间CMD(COMMAND )运行命令/启动命令 # 这个列很重要如果用-o不加这个列基本什么都拿不到ps -ef 各列的含义UID | PID | PPID | C | STIME | TTY | TIME | CMD---- | ----- | ---- | ---- | ------- | ------ | ----- | ---- | -----root | 28837 | 1 | 0 | 2019 | ? | 00:00:03 | 相关命令(可能会很长不详述)UID 用户ID # 如 root等PID 进程IDPPID 进程ID父进程ID # 一般固定为1(表示根进程)C cpu使用率(%) #STIME 启动时间 # 如果当前内会展示时分超过当前会展示日期所以如果超过一天无法查看具体启动时间。TTY # 值为具体终端编号 如 pts/1 或 ? 这个参数不重要。TIME 已运行时间用掉的cpu时间CMD 运行命令/启动命令说了半天怎么在命令中显示列名呢?ps -ef | grep service 为什么不显示列 ?只能说水平太高了直接到了应用层面了换个简单的命令ps -ef | head是不是发现第一行就是列名。C列高表示有问题吗C列是cpu的实际占用时间总数和运行时间有关系。当然相同时间内C列高的表示比较忙碌。所以C列仅供参考吧。超过一天如何查看具体的启动时间直接ps -ef肯定是不展示详细时间可以用如下命令。ps-eolstart,pid,cmd|grepcustom lstart# 实际启动时间pid# 进程idcmd# 启动命令参数例如进程名等都在这里 这个很重要rss# 实际使用内存%mem# 使用内存和总内存占比注这里是-eo和-ef。更多的列字段含义怎么看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-eopid,user-o 后面跟要显示的列即可。那么ps -efo pid,user这种命令对吗?不对。因为-f是默认格式化输出表示输出所有列。-f和-o是不能一起使用的。如何查看线程号、-L是什么意思ps支持查看线程吗还真支持加-L即可。如ps -eLf | grep 1960-L是什么意思当加这个参数时会展示NLWP和LWP。NLWP(number of light weight process) 轻量级进程(即线程)数量LWP(light weight process) 轻量级进程(即线程)也就是在原有的输出上加上两列线程数和线程id。如何查看进程号的内容?进程号的内容都放在哪里了?很多人还不知道这个。例如找java jdk的目录。先根据java筛选 ps-ef|grep java#假设输出一个列表任选一行拿到它的pid ll/proc/实际的pid 会输出很多内容其中exe这一行就是java的路径如 exe-/data/general-jdk8-1.0.0/bin/java