tree 和 pstree:在层次结构中可视化 linux 进程和目录
【摘要】 使用传统的 ps 命令,您必须手动查看 PID 和 Parent PID 以识别进程之间的依赖关系。有时以分层格式查看 Linux 进程可能会有所帮助,显示父进程下的子进程。pstree 命令(进程树)将按层次显示进程。
使用传统的 ps 命令,您必须手动查看 PID 和 Parent PID 以识别进程之间的依赖关系。有时以分层格式查看 Linux 进程可能会有所帮助,显示父进程下的子进程。pstree 命令(进程树)将按层次显示进程。
使用 ls 命令,您通常可以查看目录结构的内容。有时以分层显示方式查看目录结构可能会很有帮助。树命令(Directory Tree)将分层显示目录结构。
在本文中,让我们通过详细示例回顾如何以树状格式查看进程和目录
一、进程树——pstree命令
1.根据PID显示进程树
Syntax: pstree <PID>
在下面的例子中,我给出了我的 gdm 进程的进程 ID,它显示了我的 gdm 进程的所有子进程。即它显示 xsession、打开的 konsole、nautilus、ssh 和其他与 gdm 进程相关的进程。
$ pstree 5038
gdm---gdm-+-Xorg
`-x-session-manag-+-gnome-panel---{gnome-panel}
|-gnome-settings--+-pulseaudio-+-gconf-helper
| | `-2*[{pulseaudio}]
| `-{gnome-settings-}
|-konsole---3*[bash]
|-metacity
|-nautilus---{nautilus}
|-python
|-seahorse-agent
|-ssh-agent
|-trackerd---{trackerd}
`-{x-session-manag}
2. 为用户显示进程树
Syntax: pstree <username>
下面的例子表明用户id ramesh 已经进入机器,并且运行了3 个shell 脚本,并打开了一个vim 编辑器。
$ pstree ramesh
su---bash-+-3*[sh---sleep]
`-vim---{vim}
3. 以层次结构显示所有进程
Syntax: pstree
不带参数的 pstree 将以层次结构显示所有进程。请注意,下面仅显示部分输出。
$ pstree | more
init-+-acpid
|-avahi-daemon---avahi-daemon
|-bonobo-activati---{bonobo-activati}
|-cron
|-cupsd
|-gdm---gdm-+-Xorg
| `-x-session-manag-+-gnome-panel---{gnome-panel}
| |-gnome-settings--+-pulseaudio-+-gconf-helper
| | | `-2*[{pulseaudio}]
| | `-{gnome-settings-}
| |-konsole---3*[bash]
| |-metacity
| |-ssh-agent
| `-{x-session-manag}
|-getty
|-konsole-+-2*[bash]
| |-bash---vim
| `-bash-+-pstree
| `-vim
|-thinMS
`-udevd
4. 显示提供给进程的命令行参数
Syntax: pstree -a
使用选项 -a 如下所示,显示与特定进程关联的命令行参数。
$ pstree -a ramesh
su bk
`-bash
|-sh ./test.sh
| `-sleep 1000
|-sh ./test.sh
| `-sleep 1000
|-sh ./test.sh
| `-sleep 1000
`-sh test.sh [1-9]
`-sleep 1000
二、目录树——树命令
1. 查看不同的目录结构
- # tree / | more – 执行此命令可浏览整个操作系统的目录结构。通常在根目录结构上做树是没有意义的,除非你处于学习模式并且想了解 Linux 的目录层次结构。
- # tree $HOME – 使用它来交叉验证主目录结构内容。
- # tree PROJECT-DIR – 检查项目的目录结构。
2. 改变 tree 命令的输出。
- # tree -d将只显示目录。即文件将不会显示。
- # tree -a将显示隐藏文件以及目录和文件。
- # tree -s将显示文件大小,如下所示。使用此选项时,它会打印出文件的大小以及文件名。
# tree -s
.
|-- [ 4096] Articles
| `-- [ 4096] Tree
| `-- [ 5489] article
|-- [ 4096] Compression
| |-- [ 2584] article
| `-- [ 4223] article.safe
`-- [ 4096] DiskSpace
|-- [ 722] article
`-- [ 530] old_article
4 directories, 5 files
- # tree -p将显示权限和文件。使用此选项时,它会打印出文件的权限以及文件名,如下所示。
# tree -p
.
|-- [drwx------] Articles
| `-- [drwx------] Tree
| `-- [-rw-------] article
|-- [drwx------] Compression
| |-- [-rw-------] article
| `-- [-rw-------] article.safe
`-- [drwx------] DiskSpace
|-- [-rw-------] article
`-- [-rw-------] old_article
4 directories, 5 files
3. 从 tree 命令生成 HTML 输出
您还可以使用 -H 和 -o 选项将 tree 命令的输出重定向到一个 html 文件,如下所示。
# tree -H . -o output.html
手册页中选项 -H 的定义:
- -H baseHREF:打开 HTML 输出,包括 HTTP 引用。对 ftp 站点很有用。baseHREF 在使用 HTML 输出时给出基本 ftp 位置。即本地目录可能是`/local/ftp/pub',但必须引用为`ftp://hostname.organization.domain/pub'
4.根据指定模式显示树输出
使用选项 -P 列出与模式匹配的文件,如下所示。
Syntax: tree -P PATTERN
$ tree -P *.safe
.
|-- Articles
| `-- Tree
|-- Compression
| `-- article.safe
`-- DiskSpace
使用选项 -I 列出与模式不匹配的文件,如下所示。
Syntax: tree -I PATTERN
$ tree -I *.safe
.
|-- Articles
| `-- Tree
| `-- article
|-- Compression
| `-- article
|-- DiskSpace
| |-- article
| `-- old_article
`-- t.html
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)