在Linux中将文件和进程视为树

一看三台Linux命令 - PS,pstree和树 - 在树状格式查看文件和进程。

Linux的提供了几个方便的命令,用于以类似于树的分支格式查看文件和进程,从而很容易查看它们之间的关系。在这篇文章中,我们将会看到ps,pstree命令以及它们提供的一些选项,以帮助您将视图集中在希望看到的内容上。

ps

ps我们用来列出进程的命令有一些有趣的选项,但是很多人从来没有利用过。而常用的ps英孚提供正在运行的进程的完整列表中,ps -ejH命令增加了一个很好的效果。它缩进相关进程,使这些进程在视觉上更清晰的关系 - 在此摘录:

$ ps -ejH PID PGID SID TTY TIME CMD…1396 1396 1396 ?0000:00 sshd 28281 28281 28281 ?0000:00 sshd 28409 28281 28281 ?00:00:00 sshd 28410 28410 pts/0 00:00:00 bash 30968 30968 28410 pts/0 00:00:00 ps

可以看到,正在运行的ps进程是在bash中运行的,而bash是在ssh会话中运行的。

-exjf选项字符串提供了类似的视图,但添加了一些额外的细节和符号来突出流程的层次结构:

$ PS -exjf PPID PID PGID SID TTY TPGID STAT UID time命令... 1 1396 1396 1396?-1 SS 0 0:00 / usr / sbin目录/ sshd的-D 1396 28281 28281 28281?-1 SS 0 0:00 \ _的sshd:SHS [PRIV] 28281 28409 28281 28281?-1 S 1000 0:00 \ _的sshd:SHS @ PTS / 0 28409 28410 28410 28410 PTS / 0 31028个1000 SS 0:00 \ _ -bash 28410 31028 31028 28410 PTS / 0 31028 R + 1000 0:00 \ _ PS axjf

这些命令中使用的选项表示:

-e选择所有进程-j使用作业格式-f提供完整格式清单-H显示进程层次结构(即-x解除“必须与tty关联”的限制

还有一个- 森林选项,提供了类似的图。

$ PS -ef --forest UID PID PPIDÇSTIME TTY TIME CMD ...根1396 1 0 Oct08?00:00:00 / usr / sbin目录/ sshd的-D根28281 1396 0 12时55分?00:00:00 \ _的sshd:SHS [PRIV] SHS 28409 28281 0十二时56?00:00:00 \ _的sshd:SHS @ PTS / 0 SHS 28410 28409 0 12时56分/ 0 00:00:00 \ _ -bash SHS 32351 28410 0 14点39分/ 0 00:00:00 \ _PS -ef --forest

注意,这些示例只是这些命令如何使用的示例。您可以选择最适合您的流程视图的任何选项。

pstree

进程的类似视图可使用pstree命令。虽然连pstree提供了许多选项,命令提供了自己的一个非常有用的显示。请注意,许多父子进程的关系显示在单一线路,而不是后续行。

pstree美元……├─sshd───sshd───sshd───bash───pstree├─systemd─┬─(sd-pam)│├─at-spi-bus-laun─┬─dbus-daemon││└─3 * [{at-spi-bus-laun}]│├─at-spi2-registr───2 * [{at-spi2-registr}]│├─dbus-daemon│├─ibus-portal───2 * [{ibus-portal}]│├─pulseaudio───2 * [{pulseaudio}]│└─xdg-permission -───2 * ({xdg-permission -})

-n选项,pstree以数值(按进程ID)顺序显示进程:

pstree美元- n systemd─┬─systemd-journal├─systemd-udevd├─systemd-timesyn───{systemd-timesyn}├─systemd-resolve├─systemd-logind├─dbus-daemon├─atopacctd├─停止irqbalance───{停止irqbalance}├─accounts-daemon───2 * [{accounts-daemon}]├─acpid├─rsyslogd───3 * [{rsyslogd}]├─freshclam├─udisksd───4 * [{udisksd}]├─networkd-dispat├─ModemManager───2 * [{ModemManager}]├─snapd───10 * [{snapd}]├─avahi-daemon───avahi-daemon├─使───2 *[{使}]├─wpa_supplicant├─cron├─atd├─polkitd───2 * ({polkitd})├─colord───2 * [{colord}]├─unattended-upgr───{unattended-upgr}├─sshd───sshd───sshd───bash───pstree

使用时要考虑的一些选项pstree包括-一种(包括命令行参数)和-G(包括处理组)。

这里有一些快速(截断)的例子。

输出pstree——

└─wpa_supplicant - u - s - o /运行/ wpa_supplicant

输出pstree - g:

├─sshd(1396)───sshd(28281)───sshd(28281)───bash(28410)───pstree(1115)

虽然命令听起来很像pstree,它是一个查看文件而不是进程的命令。它提供了目录和文件的树形视图。

如果使用命令查看/ proc中,你的显示将开始类似于这个:

$树的/ proc / proc中├──1│├──ATTR││├──的AppArmor│││├──当前│││├──EXEC│││└──上一页││├──当前││├──显示││├──EXEC││├──fscreate││├──keycreate││├──分组││├──咂嘴│││└──电流││└──sockcreate│├──autogroup│├──auxv│├──cgroup中│├──clear_refs│├──CMDLINE ...

你会看到很多更详细的,如果你运行像这样的命令,作为根(须藤树的/ proc)因为大部分的内容/ proc中普通用户无法访问。

树- d命令将把您的显示限制在目录中。

美元树- d / proc / proc├──1│├──attr││├──apparmor对││└──│味道├──fd(错误打开dir)│├──fdinfo(错误打开dir)│├──map_files(错误打开dir)│├──净││├──dev_snmp6││├──netfilter││└──stat│├──ns(错误打开dir)│└──任务│└──1│├──attr││├──apparmor对││└──打…

-F选项,将显示完整的路径名。

$树-f / proc中的/ proc├──的/ proc / 1│├──的/ proc / 1 / ATTR││├──的/ proc / 1 / ATTR / AppArmor的│││├──的/ proc / 1 / ATTR/ apparmor的/电流│││├──的/ proc / 1 / ATTR / apparmor的/ EXEC│││└──的/ proc / 1 / ATTR / apparmor的/预防││├──的/ proc / 1 / ATTR /电流││├──的/ proc / 1 / ATTR /显示││├──的/ proc / 1 / ATTR / EXEC││├──的/ proc / 1 / ATTR / fscreate││├──的/ proc / 1 / ATTR /keycreate││├──的/ proc / 1 / ATTR /预防││├──的/ proc / 1 / ATTR /咂嘴│││└──的/ proc / 1 / ATTR /拍击/电流││└──/ PROC/ 1 / ATTR / sockcreate ...

分层显示器通常可以使流程和文件之间的关系更容易理解。虽然可供选择的数量是相当广泛的,你可能会发现一些意见,帮助你看到你要找的。

加入网络世界社区有个足球雷竞技appFacebook的LinkedIn对那些顶级心态的话题发表评论。
相关:

版权©2019Raybet2

工资调查:结果在