linux查看文件的进程,在 Linux 上以树状查看文件和进程 | Linux 中国

原标题:在 Linux 上以树状查看文件和进程 | Linux 中国

caae5d237b8f380507eee451f5cac790.png

介绍三个 Linux 命令:ps、pstree 和 tree 以类似树的格式查看文件和进程。

-- Sandra Henry-stocker

提供了一些方便的命令,用于以树状分支形式查看文件和进程,从而易于查看它们之间的关系。在本文中,我们将介绍 、 和 命令以及它们提供的一些选项,这些选项可帮助你将注意力集中在要查看的内容上。

ps

我们用来列出进程的 命令有一些有趣的选项,但是很多人从来没有利用过。虽然常用的 提供了正在运行的进程的完整列表,但是 命令增加了一个不错的效果。它缩进了相关的进程以使这些进程之间的关系在视觉上更加清晰——就像这个片段:

$ps-ejH

PID PGID SID TTY TIME CMD

...

139613961396?00:00:00sshd

282812828128281?00:00:00sshd

284092828128281?00:00:00sshd

284102841028410pts/000:00:00bash

309683096828410pts/000:00:00ps

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

-exjf 选项字符串提供了类似的视图,但是带有一些其它细节和符号以突出显示进程的层次结构性质:

$ps-exjf

PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND

...

1139613961396?-1Ss00:00/usr/sbin/sshd-D

1396282812828128281?-1Ss00:00_sshd:shs[priv]

28281284092828128281?-1S10000:00_sshd:shs@pts/0

28409284102841028410pts/031028Ss10000:00_-bash

28410310283102828410pts/031028R+10000:00_psaxjf

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

-e选择所有进程

-j使用工作格式

-f提供完整格式列表

-H分层显示进程(如,树状格式)

-x取消“必须与tty相关联”的限制

同时,该命令也有一个 --forest 选项提供了类似的视图。

$ps-ef--forest

UID PID PPID C STIME TTY TIME CMD

...

root139610Oct08?00:00:00/usr/sbin/sshd-D

root282811396012:55?00:00:00_sshd:shs[priv]

shs2840928281012:56?00:00:00_sshd:shs@pts/0

shs2841028409012:56pts/000:00:00_-bash

shs3235128410014:39pts/000:00:00_ps-ef--forest

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

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 选项, 以数值(按进程 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

├─NetworkManager───2*[{NetworkManager}]

├─wpa_supplicant

├─cron

├─atd

├─polkitd───2*[{polkitd}]

├─colord───2*[{colord}]

├─unattended-upgr───{unattended-upgr}

├─sshd───sshd───sshd───bash───pstree

使用 时可以考虑的一些选项包括 -a(包括命令行参数)和 -g(包括进程组)。

以下是一些简单的示例(片段)。

命令 的输出内容:

└─wpa_supplicant-u-s-O/run/wpa_supplicant

命令 的输出内容:

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

tree

虽然 命令听起来与 非常相似,但这是用于查看文件而非进程的命令。它提供了一个漂亮的树状目录和文件视图。

如果你使用 命令查看 /proc 目录,你显示的开头部分将类似于这个:

$ tree/proc

/proc

├──1

│├──attr

││├──apparmor

│││├──current

│││├──exec

│││└──prev

││├──current

││├──display

││├──exec

││├──fscreate

││├──keycreate

││├──prev

││├──smack

│││└──current

││└──sockcreate

│├──autogroup

│├──auxv

│├──cgroup

│├──clear_refs

│├──cmdline

...

如果以 root 权限运行这条命令(sudo tree /proc),你将会看到更多详细信息,因为 /proc 目录的许多内容对于普通用户而言是无法访问的。

命令 将会限制仅显示目录。

$ tree-d/proc

/proc

├──1

│├──attr

││├──apparmor

││└──smack

│├──fd[error openingdir]

│├──fdinfo[error openingdir]

│├──map_files[error openingdir]

│├──net

││├──dev_snmp6

││├──netfilter

││└──stat

│├──ns[error openingdir]

│└──task

│└──1

│├──attr

││├──apparmor

││└──smack

...

使用 -f 选项, 命令会显示完整的路径。

$ tree-f/proc

/proc

├──/proc/1

│├──/proc/1/attr

││├──/proc/1/attr/apparmor

│││├──/proc/1/attr/apparmor/current

│││├──/proc/1/attr/apparmor/exec

│││└──/proc/1/attr/apparmor/prev

││├──/proc/1/attr/current

││├──/proc/1/attr/display

││├──/proc/1/attr/exec

││├──/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

...

分层显示通常可以使进程和文件之间的关系更容易理解。可用选项的数量很多,而你总可以找到一些视图,帮助你查看所需的内容。

作者: 选题: 译者: 校对:

本文由 原创编译, 荣誉推出返回搜狐,查看更多

责任编辑:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值