1、显示所有进程
ps aux
ps -ef
参数a和e都表示Select all processes
2、显示指定用户进程:
首先不能加a、e,然后通过-u指定用户,多个用户用逗号分隔
ps -f -u mysql
ps -f -u root
ps -f -u root,www,mysql
3、-C搜索进程
ps -C nginx
ps -C sshd
4、按cpu或者内存排序
--sort排序,逗号分隔多字段,-+分别代表升序和降序(注意-是升序)
ps aux --sort=-pcpu,+pmem
显示前5个消耗cpu的进程
ps aux --sort=-pcpu | head -5
5、树形结构显示父子进程
ps -f --forest -C nginx
6、自定义显示列
ps -e -o pid,uname,pcpu,pmem,comm
7、查看进程运行时间
ps -e -o pid,comm,etime
8、利用watch把ps变成实时查看器
watch能周期性的执行下一个命令,并打印结果,可以用-n指定周期时间间隔。
watch -n 1 'ps -e -o pid,uname,cmd,pmem,pcpu --sort=-pmem,-pcpu | head -15'
9、不加参数的ps
显示了当前ps命令的进程以及父进程bash,可以用ps -f --forest查看父子关系,-f为显示全部字段
ps -f --forest
10、一个关闭当前终端的例子
a)、获取当前bash的tty终端pid
ps -o ppid -p $$ | tail -1
b)、关闭当前会话终端
kill `ps -o ppid -p $$|tail -1`
-p:指定pid
$$:当前pid