Linux top コマンドの使い方|プロセスのソート・検索・フィルタ
Linux で実行中のプロセスを確認したいときに最も手軽なのが top コマンドです。ターミナルで top と入力するとそのまま対話モードに入り、一定間隔でプロセス一覧が更新されていきます。デフォルトのままでも十分使えますが、真価はキー 1 つで絞り込みやソートができるショートカットにあります。
検索とソート
ユーザーで絞り込む
u を押すと画面上部に Which user (blank for all) と表示されます。ユーザー名を入力して Enter を押すと、そのユーザーのプロセスだけが表示されます。フィルタを解除したいときは、もう一度 u を押して空欄のまま Enter を押せば、全ユーザーの表示に戻ります。
コマンド名で絞り込む
o を押すと add filter #1 (ignoring case) as: [!]FLD?VAL と表示されます。ここで列名と値を指定すると任意の列でフィルタできます。たとえば Java 関連のプロセスだけを表示したい場合は次のように入力します。
COMMAND=java
Enter を押すと COMMAND 列に java を含む行だけが表示されます。さらに o を押せば条件を追加でき、複数のフィルタを重ねられます。
フィルタをまとめてクリアしたいときは = キーを押してください。
ソート
- メモリ使用量でソート:大文字
M。補足として、小文字mは画面上部のメモリ情報の表示形式を切り替えます。 - CPU 使用率でソート:大文字
P。 - CPU 時間でソート:大文字
T。補足として、小文字tは画面上部の CPU 情報の表示形式を切り替えます。 - PID でソート:大文字
N。 - 逆順ソート:大文字
R。現在のソート状態を反転します。例えばMでメモリ使用量順にしたあとRを押すと昇順になり、もう一度押すと降順に戻ります。
その他の操作
移動とページ送り
- 1 行ずつ移動:方向キーの上下。
- 1 ページずつ移動:
<と>。
列が多すぎて画面に収まらないときは、方向キーの左右で横方向にもスクロールできます。
ヘルプを開く
- 方法 1:ターミナルで
top -hを実行すると簡単な説明が表示されます。 - 方法 2:ターミナルで
man topを実行すると詳細なマニュアルが見られます。 - 方法 3:対話モードで
hを押すとヘルプが開きます。もう一度hを押すと次のページへ進み、qで対話モードに戻ります。
top の終了
対話モードで q を押すだけです。
補足:プログラムとプロセスの違い
「プログラム」はディスク上の実行可能なコード、つまりオペレーティングシステム (OS) が読み込んで実行できる 1 つ(または 1 まとまり)のファイルを指します。一方「プロセス」は、OS がそのプログラムを実際に読み込み、ライフサイクルを与えて動かしている状態のものです。1 つのプログラムから複数のプロセスを生み出すことができます。たとえば電卓はディスク上には 1 つしかなくても、同時に複数の電卓ウィンドウを立ち上げれば、それぞれが独立したプロセスになります。
プロセスはメモリ上に自分専用の領域を持ち、その中にコード、ヒープ、スタックなどのデータを配置します。1 つのプロセスの中ではさらに複数のスレッドを生成でき、プロセスから子プロセスを生成することもあります。オペレーティングシステムの授業や、プログラミング言語の設計に関する授業(言語の使い方ではなく、言語そのものを設計する側を学ぶ授業)では、こうした概念をより深く学べます。