Linux/Unix:pstree命令示例:查看进程树
如何使用bash shell提示以易于阅读的树格式在基于Linux的服务器或者台式机/笔记本电脑上显示该过程?
Linux和Unix是多任务操作系统,即可以在同一时间段内运行多个任务(进程)的系统。
进程不过是Linux或者类似Unix的系统上正在运行的程序(命令)。
pstree命令将正在运行的进程显示为树。
目的
在Linux上将运行的进程显示为树
语法
基本语法如下:
pstree
或者
pstree pid
id
或者
pstree user
或者
pstree [options] pid|user
如果将pid
作为命令行参数,则从此PID开始。
默认值为1(初始值)。
如果将user
作为命令行参数给出,则仅显示植根于该用户进程的树。
pstree只接受一个参数,该参数可以是user
或者pid
。
在Unix上安装pstree
缺省情况下,pstree命令已安装且仅在Linux操作系统上可用。对于FreeBSD,OS X等类似Unix的系统,您需要使用源代码或者第三方二进制存储库进行安装。您可以在大多数Unix下编译pstree,并测试了AIX,Linux,HP-UX,A/UX,SunOS,Solaris,(Free | Open | Net)BSD,MacOSX/Darwin等。使用wget命令获取源代码:
$ wget ftp://ftp.thp.uni-duisburg.de/pub/source/pstree.tar.gz
使用tar命令提取文件并使用c编译器(cc)构建源代码:
$ tar zxvf pstree.tar.gz $ cc -O -o pstree pstree.c ## install binary in /usr/local/bin/ directory ## $ sudo cp pstree /usr/local/bin
在MacOS X上安装pstree
执行以下命令:
$ brew install pstree
pstree命令示例
要查看服务器上当前所有进程的树形图,请执行:
# pstree # pstree | less # pstree | more
在图的顶部,您将看到进程init,这是Linux上线时启动的第一个进程。
init是系统上所有进程的父级,它由内核执行并负责启动所有其他进程。
您可以通过传递-A选项来使用ASCII字符来绘制树:
# pstree -A
显示命令行参数
要查看命令行参数列表,请传递-a
选项:
$ pstree -a
显示PID
要显示每个进程名称的PIDS,请传递-p选项:
$ pstree -p
如何对进程排序?
要通过PID而不是名称(即数字排序)对具有相同祖先的进程进行排序,请按以下方式传递-n
选项:
$ pstree -n $ pstree -np
如何查看谁是流程的所有者/用户?
要在括号中找出进程的所有者,请将-u选项传递给pstree命令:
$ pstree -u
我如何突出当前的过程及其祖先?
传递-h选项以突出显示当前进程及其祖先。
通过-H
选项突出显示指定的进程(按名称/pid):
$ pstree -h
或者使用PID 60093突出显示过程:
$ pstree -H 60093
如何按PID或者用户查看进程?
pstree可以接受PID或者用户名作为命令行参数。
语法如下,以查看有关PID 1313的信息
$ pstree 1313 $ pstree -H 1313
在下面的示例中,仅显示用户名为theitroad的用户启动的那些树枝(进程):
$ pstree theitroad
pstree命令选项
在pstree(1)命令手册页中:
选项 | 含义 |
---|---|
-a | 显示命令行参数。 |
-A | 使用ASCII线描字符。 |
-c | 不要压缩相同的子树。 |
-h | 突出显示当前过程及其祖先。 |
-H | 突出显示此过程及其祖先。 |
-G | 使用VT100线条图字符。 |
-l | 不要截断长行。 |
-n | 通过PID排序输出。 |
-p | 显示PID;表示-c。 |
-u | 显示uid转换。 |
-U | 使用UTF-8(Unicode)线描字符。 |
-V | 显示版本信息。 |
-Z | 显示SELinux安全上下文。 |