GNU/Linux >> Linux の 問題 >  >> Linux

tree と pstree:Unix プロセスとディレクトリを階層構造で視覚化する


Steffe 提供の写真

この記事は SathiyaMoorthy によって書かれました。
 
従来の ps コマンドを使用すると、PID と親 PID を手動で調べて、プロセス間の依存関係を特定する必要があります。親プロセスの下にある子プロセスを示す階層形式で Linux プロセスを表示すると役立つ場合があります。 pstree コマンド (プロセス ツリー) プロセスを階層的に表示します。
 
通常、ls コマンドを使用して、ディレクトリ構造の内容を表示します。ディレクトリ構造を階層表示で表示すると非常に役立つ場合があります。 tree コマンド (ディレクトリ ツリー) ディレクトリ構造を階層的に表示します。
 
この記事では、詳細な例を使用して、プロセスとディレクトリをツリー形式で表示する方法を確認します
 

I.プロセス ツリー – pstree コマンド

1. PID に基づくプロセス ツリーの表示

Syntax: pstree <PID>

 
次の例では、gdm プロセスのプロセス ID を指定しました。これにより、gdm プロセスのすべての子プロセスが表示されます。つまり、xsession、開かれているコンソール、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 がマシンに su し、3 つのシェル スクリプトを実行し、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

II.ディレクトリ ツリー – ツリー コマンド

1.さまざまなディレクトリ構造を表示

  • # 木 / |もっと – このコマンドを実行して、OS 全体のディレクトリ構造を参照します。 Linux のディレクトリ階層を理解したい学習モードでない限り、通常、ルート ディレクトリ構造でツリーを作成しても意味がありません。
  • # ツリー $HOME – これを使用して、ホーム ディレクトリ構造の内容を相互検証します。
  • # ツリー PROJECT-DIR – プロジェクトのディレクトリ構造の確認

2. tree コマンドの出力を変更します。

  • # ツリー -d ディレクトリのみを表示します。つまり、ファイルは表示されません。
  • # ツリー -a ディレクトリやファイルとともに隠しファイルを表示します。
  • # ツリー -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
  • # ツリー -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

 
man ページのオプション -H の定義:

  • -H baseHREF: HTTP 参照を含む HTML 出力をオンにします。 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

 
この記事は、 の著者、SathiyaMoorthy によって書かれました。 numbertotext Vim プラグイン。数字を Vim 内の同等のテキストに置き換えます。 The Geek Stuff は、あなたのヒントやゲスト記事を歓迎します。


Linux
  1. Linux – Unix / linux Osesの標準および/または共通ディレクトリ?

  2. UNIX / Linux :/tmp および /var/tmp ディレクトリの正しい権限は何ですか

  3. ツリーとしてのCentOSディレクトリ構造?

  1. Linux ファイルとディレクトリの削除

  2. tree -a を取得して .git ディレクトリを無視するには?

  3. 古いプロセスを見つけて (そして kill して)

  1. Unix で空のディレクトリとファイルを見つけて削除する方法

  2. すべてのファイルとディレクトリを再帰的に一覧表示する方法

  3. unix - ファイルの先頭と末尾