Linux.提供几个方便的命令,用于查看分支,树状格式的文件和进程,使其易于查看它们的相关关系。在这篇文章中,我们将看看PS.那Psstree.和树命令以及他们提供的一些选项,以帮助将您的观点集中在您想要看到的内容上。
PS.
该PS.命令我们所有人都用来列表进程有一些有趣的选项,其中许多人从未利用过。虽然常用PS -EC.提供运行进程的完整列表,ps -ejh.命令添加了一个很好的效果。它缩进相关过程,以便在视觉上更清楚地进行这些过程之间的关系 - 如在本摘录中:
$ ps -ejh pid pgid sid tty time cmd ... 1396 1396 1396?00:00:00 SSHD 28281 28281 28281 28281?00:00:00 SSHD 28409 28281 28281?00:00:00 SSHD 28410 28410 28410 PTS / 0 00:00:00 Bash 30968 30968 28410 PTS / 0 00:00:00 PS
如您所见,PS流程正在运行,在SSH会话中以BASH和BASH运行。
该-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 PTS / 0 31028 SS 1000 0:00 \ _ _ -BASH 28410 31028 31028 28410 PTS / 0 31028 R + 1000:00 \ _ PS AXJF
这些命令中使用的选项表示:
-e选择所有进程-j使用作业格式-f提供完整格式列表-h显示过程层次结构(即,“森林格式”)-x升降机“必须与tty关联”限制
还有一个- 森林选项提供类似的视图。
$ ps -eas-forest uid pid ppid c sty tty time cmd ...根1396 1 0 Oct08?00:00:00 / usr / sbin / sshd -d根toot 28281 1396 0 12:55?00:00:00 \ _ sshd:shs [priv] shs 28409 28281 0 12:56?00:00:00 \ _ SSHD:SHS @ PTS / 0 SHS 28410 28409 0 12:56 PTS / 0 00:00:00 \ _ -bash SHS 32351 28410 0 14:39 PTS / 0 00:00:00 \ _PS -EF - 林业
请注意,这些示例只是如何使用这些命令的采样。您可以选择为您提供最适合您的进程查看的任何选项。
Psstree.
使用类似的过程视图Psstree.命令。虽然偶数Psstree.提供许多选项,该命令自己提供了非常有用的显示。请注意,许多父子流程关系都显示在单行而不是后续行上。
$ pstree ...├─sshd────────────────────(sd-pam)│├ - at-spi-bus-laun──守护守护进程│└─3* [{at-spi-bus-laun}]│├──--Portal──2* [{ibus-portal}]││─pulseaudio───xdg-permission-───2* [{xdg-permission-}]
与之-N选项,Psstree.以数字(按进程ID)顺序显示该过程:
$ pstree-n systemd──Systemd-journal├─systemd-udevd├ - ysystemd-timeyn────────────rsyslogd───3* [{rsyslogd}]├─freshclam├───────────────────────4°[{Udisksd}]├entworkd-dispat├─modemmanager─────[{modemmanager}]├─snapd───10* [{snapd}]├─avahi-daemon────nnetworkmanager───[{networkManager}]├─wpa_supplicant├─cr├──polkitd──────2* [{polkitd}]├─colord───2* [{colord}]├ - 不丹 - 升级─────────────────────
使用时需要考虑的一些选项Psstree.包括-一种(包括命令行参数)和-G(包括过程组)。
这里有一些快速(截断)的示例。
输出从Pstree -a.
└─wpa_supplicant-u -s -o /运行/ wpa_supplicant
输出从Pstree-g.:
├─SSHD(1396)───SSHD(28281)───SSHD(28281)─── - 洗涤(28410)───Pstree(1115)
树
虽然这一点树命令听起来像它会非常相似Psstree.,它是查看文件而不是流程的命令。它提供了一个类似的树木和文件的树状视图。
如果你使用树命令看/ proc.,您的显示将开始与此类似:
$树/ proc / proc├──1│───attharmor│├──当前│││├──exec│││└──prev││├──当前││├─展示││├──exod││────自动组│├──奥克平│├──CGROUP│├──CLEAR_REFS│───CMDLINE......
如果您将这样的命令运行,您将看到更详细的详细信息sudo树/ proc)从大部分内容/ proc.普通用户无法访问。
该树-D命令将显示您的显示目录。
$树-d / proc / proc├──1│───attharmor│───smack│├──fd [错误打开dir]│├──fdinfo[错误打开dir]│├─map_files [错误打开dir]│├──网││├──dev_snmp6│├──netfilter││└──统计│├──ns [错误打开dir]│└──任务│└─────1│──attr││├──Apparmor││└──咂...
与之-F选项,树将显示完整的路径名。
$树-f / proc / proc├─/ proc / 1│├──/ proc / 1 / attr││───/ proc / 1 / attr / apparmor│││├──/ proc / 1 / art/ Apparmor / Current│││├──/ Proc / 1 / attr / apparmor / ex││└──/ proc / 1 / attr / apparmor / prev││├──/ proc / 1 / attr / tryer│├──/ proc / 1 / attr /展示││├───/ proc / 1 / attr / ex││├──/ proc / 1 / attr / fscreate││├──/ proc / 1 / attr /Keycreate││───/ proc / 1 / attr / prev││├──/ proc / 1 / attr / smack│││└──/ proc / 1 / attr / smack / current││└──/ proc/ 1 / attr / sockcreate ...
分层显示通常可以使进程和文件之间的关系更易于理解。虽然可用的选项数量相当广泛,但您可能会发现一些帮助您查看您正在寻找的东西。