Linux命令是对Linux系统进行管理的命令。对于Linux系统来说,无论是中央处理器、内存、磁盘驱动器、键盘、鼠标,还是用户等都是文件,Linux系统管理的命令是它正常运行的核心,与之前的DOS命令类似。linux命令在系统中有两种类型:内置Shell命令和Linux命令。本文主要介绍Linux pstree 命令。

1、命令简介

pstree:用于以树状图的方式显示所有运行中的进程,这能够帮助用户了解进程之间的父子关系。

2、命令语法

pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-Z] [-A|-G|-U] [pid|user]
pstree -V

3、命令描述

pstree 命令用于以树状图的形式显示正在运行的进程。这棵树以指定的 pid 或者当 pid 被省略时以 init 进程为根。如果指定了用户名,则显示以该用户拥有的所有进程为根的所有进程树。

pstree 通过将相同的分支用方括号合并并在前面加上重复的次数来直观地合并相同的分支,例如:

init-+-getty
     |-getty
     |-getty
     ‘-getty

变成

init---4*[getty]

进程的子线程位于父进程之下,并用花括号里的进程名显示,例如:

icecast2---13*[{icecast2}]

如果 pstree 被当作 pstree.x11 来调用,它会在行末提示用户按回车键,并且在这样做之前不会返回。这在 pstree 在x终端中运行时非常有用。

4、命令选项

选项

描述

-a

显示命令行参数。

如果进程的命令行已被交换出内存,

则该进程会显示在括号中。

-a

隐式地禁用压缩。

-A

使用ASCII字符绘制树状图。

-c

禁用相同子树的压缩。默认情况下,

只要可能,子树会被压缩。

-G

使用VT100绘图字符。

-h

高亮显示当前进程及其祖先。

如果终端不支持高亮显示,

或者当前进程及其祖先都不在所显示的子树中,

则此选项无效。

-H

与 -h 类似,但高亮显示指定的进程。

与 -h 不同,如果不支持高亮显示,

使用 -H 会导致pstree失败。

-l

显示长行。默认情况下,

如果输出发送到非tty或者显示宽度未知,

则行会被截断到显示宽度或132。

-n

对于有相同祖先的进程,

按PID而不是按名字排序。(数字排序。)

-p

显示PID。PID作为十进制数字

显示在每个进程名之后的括号中。

-p

隐式地禁用压缩。

-u

显示UID转换。

每当进程的UID与其父进程的UID不同时,

新的UID会在进程名之后的括号中显示。

-U

使用UTF-8(Unicode)绘图字符。

在Linux 1.1-54及以上版本中,

可以使用

echo -e ’\033%8’

命令在控制台进入UTF-8模式,

并用 echo -e ’\033%@’

退出。

-V

显示版本信息。

-Z

(SELinux)显示每个进程的安全上下文。

5、使用示例

1)要显示带有进程ID的进程树

pstree -p

2)看到某个特定用户的进程树

pstree username

3)要以图形方式高亮显示当前进程及其祖先进程

pstree -h

4)使用ASCII字符绘制树

pstree -A

这在不支持线框图字符的旧终端中很有用。

5)显示特定用户的进程树

pstree username

username 替换为实际的用户名。

6)不压缩相同子树的树形结构

pstree -c

每个相同的子树都将单独展示,而不是压缩为一个条目。

7)按PID进行排序而不是按名称

pstree -n

8)显示长行

pstree -l

显示完整的行而不截断。

9)显示带有命令行参数的树

pstree -a

每个进程旁显示其启动时的命令行参数。

10)显示UID转换

pstree -u

每当子进程的UID与父进程不同,都会显示出来。

11)使用UTF-8线框图字符

pstree -U

使用UTF-8字符绘制树,需要终端支持UTF-8编码。

12)显示SELinux安全上下文

pstree -Z

适用于启用了SELinux的系统。

推荐文档