Linux基础命令-uname显示系统内核信息
Linux基础命令-lsof查看进程打开的文件
Linux基础命令-uptime查看系统负载
文章目录
前言
一 命令介绍
二 语法及参数
2.1 使用man查看命令语法
2.2 常用参数
三 参考实例
3.1 以树状图的形式显示所有进程
3.2 以树状图显示进程号
3.3 以完整的样式显示进程
3.4 带有特别标明字体的形式显示执行的程序
3.5 不以精简的模式显示进程
总结
前言
前些时间学习了ps命令,今天来了解一下这个pstree的命令,既是将进程与子进程的结构以树状形式显示出来,还是比较有意思的,先看下命令的介绍。
一 命令介绍
pstree命令来自于英文词组“Process tree”的缩写,其功能是用于以树状图形式显示进程信息,帮助管理员更好的了解进程间的关系。Linux系统中常用ps命令查看进程状态信息,但是却无法了解进程之前的依赖关系,哪个是父进程,哪个是子进程都可以通过pstree进行查看。
二 语法及参数
2.1 使用man查看命令语法
语法:pstree 【参数】
NAME
pstree - display a tree of processes
SYNOPSIS
pstree [-a, --arguments] [-c, --compact] [-h, --highlight-all, -Hpid, --high‐
light-pid pid] [-g] --show-pgids] [-l, --long] [-n, --numeric-sort]
[-N, --ns-sortns [-p, --show-pids] [-s, --show-parents] [-S, --ns-changes]
[-u, --uid-changes] [-Z, --security-context]
[-A, --ascii, -G, --vt100, -U, --unicode] [pid, user]
pstree -V, --version
2.2 常用参数
pstree命令能用到的参数并不需要很多,这个命令有时作为一个了解即可。
-a | 显示完整信息 |
-c | 不使用精简标示法 |
-G | 使用VT100终端机的列绘图字符 |
-h | 特别标明现在执行的程序 |
-p | 显示进程号码 |
三 参考实例
3.1 以树状图的形式显示所有进程
[root@localhost ~]# pstree -a | more
systemd --switched-root --system --deserialize 22
|-ModemManager
| `-2*[{ModemManager}]
|-NetworkManager --no-daemon
| |-dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens32
3.2 以树状图显示进程号
[root@localhost ~]# ps aux | grep vim
root 5797 0.1 0.1 149588 5192 pts/2 S+ 16:35 0:00 vim 1.txt
root 5808 0.0 0.0 112824 972 pts/0 R+ 16:35 0:00 grep --color=auto vim
[root@localhost ~]# pstree -ap 5797
vim,5797 1.txt
当然也可直接使用pstree -p参数
[root@localhost ~]# pstree -p | head
systemd(1)-+-ModemManager(742)-+-{ModemManager}(770)
| `-{ModemManager}(781)
|-NetworkManager(870)-+-dhclient(1002)
| |-{NetworkManager}(876)
| `-{NetworkManager}(879)
|-VGAuthService(715)
|-abrt-dbus(5772)-+-{abrt-dbus}(5773)
| `-{abrt-dbus}(5775)
|-abrt-watch-log(712)
|-abrt-watch-log(713)
3.3 以完整的样式显示进程
[root@localhost /]# pstree -a |head
systemd --switched-root --system --deserialize 22
|-ModemManager
| `-2*[{ModemManager}]
|-NetworkManager --no-daemon
| |-dhclient -d -q -sf /usr/libexec/nm-dhcp-helper -pf /var/run/dhclient-ens32.pid -lf...
| `-2*[{NetworkManager}]
|-VGAuthService -s
|-abrt-watch-log -F BUG: WARNING: at WARNING: CPU: INFO: possible recursive locking detected ernel BUG atlist_del corruption
|-abrt-watch-log -F Backtrace /var/log/Xorg.0.log -- /usr/bin/abrt-dump-xorg -xD
|-abrtd -d -s
3.4 带有特别标明字体的形式显示执行的程序
[root@localhost /]# pstree -h
systemd─┬─ModemManager───2*[{ModemManager}]
├─NetworkManager─┬─dhclient
│ └─2*[{NetworkManager}]
├─VGAuthService
├─2*[abrt-watch-log]
├─abrtd
├─accounts-daemon───2*[{accounts-daemon}]
├─at-spi-bus-laun─┬─dbus-daemon───{dbus-daemon}
当前正在执行的程序看着会更明显
3.5 不以精简的模式显示进程
加上-c参数,显示的内容对比默认形式的命令,内容会显得更加的详细。
[root@localhost /]# pstree -c | head -10
systemd-+-ModemManager-+-{ModemManager}
| `-{ModemManager}
|-NetworkManager-+-dhclient
| |-{NetworkManager}
| `-{NetworkManager}
|-VGAuthService
|-abrt-watch-log
|-abrt-watch-log
|-abrtd
|-accounts-daemon-+-{accounts-daemon}
[root@localhost /]# pstree | head -10
systemd-+-ModemManager---2*[{ModemManager}]
|-NetworkManager-+-dhclient
| `-2*[{NetworkManager}]
|-VGAuthService
|-2*[abrt-watch-log]
|-abrtd
总结
这个命令实际能用到的机会并不会很多,但可以作为一个命令进行了解,若觉得以上内容还行的,可以点赞支持一下!