学一个Linux命令-pstree

简介: 学一个Linux命令-pstree

pstree是一个Linux下的命令,通过它可以列出当前的进程,以及它他们的树状结构。通过pstree可用于分析进程的状态、间关系已经在特定的场合,比病毒排查中有重要的作用。

说直白一点,即ps+tree,ps命令可以显示当前正在运行的那些进程的信息,tree主要功能是创建文件列表,将所有文件以树的形式列出来。pstree命令是用于查看进程树之间的关系,即哪个进程是父进程,哪个是子进程,以树状展示,可以清楚的看出来是谁创建了谁。


安装


默认系统中是没有安装pstree命令的,使用pstree需要安装psmisc软件包。

#不同的操作系统使用以下命令来安装
#在 Mac OS上
brew install pstree
#在 Fedora/Red Hat/CentOS
yum -y install psmisc
#在 Ubuntu/Debian
apt-get install psmisc


语法


pstree [-a] [-c] [-h|-Hpid] [-l] [-n] [-p] [-u] [-G|-U] [pid|user]
#或使用man函数查找使用方法
man pstree

-a 显示该行程的完整指令及参数, 如果是被记忆体置换出去的行程则会加上括号

-c 如果有重覆的行程名, 则分开列出(预设值是会在前面加上 *) -A: 各进程树之间的连接以ASCII码字符来连接 -U:各进程树之间的连接以utf8字符来连接,某些终端可能会有错误 -p:同时列出每个进程的PID -u: 同时列出每个进程的所属账号名称:


例子


#1.以树状图只显示进程的名字,且相同进程合并显示:
[root@blog ~]# pstree
systemd─┬─NetworkManager───2*[{NetworkManager}]
        ├─YDLive───6*[{YDLive}]
        ├─YDService─┬─YDEdr───11*[{YDEdr}]
        │           └─22*[{YDService}]
        ├─acpid
        ├─2*[agetty]
        ├─atd
        ├─auditd───{auditd}
        ├─barad_agent─┬─barad_agent
        │             └─barad_agent───4*[{barad_agent}]
        ├─crond
        ├─dbus-daemon
……
#2.显示进程并显示pid,每个进程括号里的则是pid号
[root@blog ~]# pstree -p
systemd(1)─┬─NetworkManager(32014)─┬─{NetworkManager}(32020)
           │                       └─{NetworkManager}(32022)
           ├─YDLive(1804)─┬─{YDLive}(1805)
           │              ├─{YDLive}(1806)
           │              ├─{YDLive}(1807)
           │              ├─{YDLive}(1810)
           │              ├─{YDLive}(1813)
           │              └─{YDLive}(21032)
           ├─YDService(1812)─┬─YDEdr(1828)─┬─{YDEdr}(1832)
           │                 │             ├─{YDEdr}(1833)
           │                 │             ├─{YDEdr}(1834)
           │                 │             ├─{YDEdr}(1835)
           │                 │             ├─{YDEdr}(1836)
           │                 │             ├─{YDEdr}(1837)
           │                 │             ├─{YDEdr}(1838)
           │                 │             ├─{YDEdr}(1839)
           │                 │             ├─{YDEdr}(1840)
           │                 │             ├─{YDEdr}(1841)
           │                 │             └─{YDEdr}(1855)
           │                 ├─{YDService}(1814)
……
#3.查看pid的进程与子进程:pstree -p [pid]
[root@blog ~]# pstree -p 1408
sshd(1408)───sshd(24182)─┬─bash(19110)───sleep(19120)
                         ├─bash(24184)───pstree(19135)
                         ├─bash(24231)───top(24325)
                         └─sftp-server(24223)
#4.以树状图显示进程,相同名称的进程不合并显示,并且会显示命令行参数。
[root@blog ~]# pstree -a
systemd --switched-root --system --deserialize 22
  ├─NetworkManager --no-daemon
  │   └─2*[{NetworkManager}]
  ├─YDLive
  │   └─6*[{YDLive}]
  ├─YDService
  │   ├─YDEdr
  │   │   └─11*[{YDEdr}]
  │   └─22*[{YDService}]
  ├─acpid
  ├─agetty --noclear tty1 linux
  ├─agetty --keep-baud 115200,38400,9600 ttyS0 vt220
  ├─atd -f
  ├─auditd
  │   └─{auditd}
  ├─barad_agent
  │   ├─barad_agent
  │   └─barad_agent
  │       ├─sh -c ntpdate -b -d ntpupdate.tencentyun.com 2>&1 | grep 'step time server' | sed -r 's/.*offset(.*)sec.*/\\1/'
  │       │   ├─grep step time server
……

以上为常用的参数搭配,可实践敲一下,感受下Linux系统设计与pstree命令巧妙之处。

相关文章
|
14天前
|
监控 Linux
如何检查 Linux 内存使用量是否耗尽?这 5 个命令堪称绝了!
本文介绍了在Linux系统中检查内存使用情况的5个常用命令:`free`、`top`、`vmstat`、`pidstat` 和 `/proc/meminfo` 文件,帮助用户准确监控内存状态,确保系统稳定运行。
102 6
|
15天前
|
Linux
在 Linux 系统中,“cd”命令用于切换当前工作目录
在 Linux 系统中,“cd”命令用于切换当前工作目录。本文详细介绍了“cd”命令的基本用法和常见技巧,包括使用“.”、“..”、“~”、绝对路径和相对路径,以及快速切换到上一次工作目录等。此外,还探讨了高级技巧,如使用通配符、结合其他命令、在脚本中使用,以及实际应用案例,帮助读者提高工作效率。
56 3
|
15天前
|
监控 安全 Linux
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景
在 Linux 系统中,网络管理是重要任务。本文介绍了常用的网络命令及其适用场景,包括 ping(测试连通性)、traceroute(跟踪路由路径)、netstat(显示网络连接信息)、nmap(网络扫描)、ifconfig 和 ip(网络接口配置)。掌握这些命令有助于高效诊断和解决网络问题,保障网络稳定运行。
45 2
|
22天前
|
缓存 监控 Linux
|
26天前
|
Linux Shell 数据安全/隐私保护
|
27天前
|
域名解析 网络协议 安全
|
9天前
|
运维 监控 网络协议
运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面
本文介绍了运维工程师日常工作中最常用的20个Linux命令,涵盖文件操作、目录管理、权限设置、系统监控等方面,旨在帮助读者提高工作效率。从基本的文件查看与编辑,到高级的网络配置与安全管理,这些命令是运维工作中的必备工具。
40 3
|
2月前
|
运维 监控 网络协议
|
2月前
|
监控 Linux Shell
|
15天前
|
安全 网络协议 Linux
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。
本文详细介绍了 Linux 系统中 ping 命令的使用方法和技巧,涵盖基本用法、高级用法、实际应用案例及注意事项。通过掌握 ping 命令,读者可以轻松测试网络连通性、诊断网络问题并提升网络管理能力。
51 3