top・ps・kill コマンドの使い方
はじめに
top
コマンドは、UNIX系オペレーティングシステム(macOSを含む)で、システムのプロセスとリソース使用状況をリアルタイムで表示するために使用されます。このコマンドは、CPUやメモリの使用状況、実行中のプロセス、システムアップタイムなど、システムのパフォーマンスに関する多くの情報を提供します。
top コマンド
top
コマンドを実行すると、システムの現在の状態が表示されます。この表示は自動的に更新され、最新の情報を提供し続けます。
top
topコマンドの操作
top
コマンドを実行中には、いくつかのキーボードショートカットで操作を行うことができます。
キー | 説明 |
---|---|
q |
top を終了します。 |
e |
単位を変更します(例:メモリ表示をK、M、Gで切り替えます)。 |
r |
プロセスの優先順位(renice値)を変更します。 |
k |
プロセスを終了(kill)します。プロセスIDを入力する必要があります。 |
オプションとしてよく使われるもの
オプション | 説明 |
---|---|
-n |
更新の頻度を秒単位で指定します。例えば、top -n 2 は2秒ごとに情報を更新します。 |
-o |
特定の列を基準にプロセスをソートするために使用します。例えば、top -o cpu はCPU使用率でプロセスをソートします。 |
-U |
特定のユーザーのプロセスのみを表示します。例えば、top -U username はusername に該当するユーザーのプロセスのみを表示します。 |
これはtop
コマンドの基本的な使い方とオプションの一部ですが、詳細なオプションや機能については、man top
コマンドを使用してマニュアルページを参照してください。
htop コマンド
top
コマンドが見づらい場合はhtop
がおすすめ。グラフィカルなCLIで表示してくれる。
brew install top
でmacOSにもインストール可能だ。

free コマンド
メモリを使用量を確認したいだけならば、シンプルなfreeコマンドがおすすめ。
free -h
ps コマンド
ps
コマンドは、現在実行中のプロセスのスナップショットを表示するUNIX系システムのコマンドです。以下の表に、よく使用されるオプションとその説明をまとめました。
psコマンドのオプション
オプション | 説明 |
---|---|
-A , -e |
全てのプロセスを表示します。 |
-a |
ターミナルに関連付けられたプロセスを表示します。デーモンプロセスなどのターミナルに関連付けられていないプロセスは除外されます。 |
-u <ユーザー名> |
指定したユーザー名のプロセスを表示します。 |
-x |
ターミナル制御なしでプロセスを表示します。 |
-f |
フルフォーマットで表示します。ユーザー名、プロセスID、親プロセスID、メモリ使用量、ターミナル番号、プロセスの状態など、より詳細な情報を含みます。 |
-o <フィールド名> |
出力をカスタマイズして、指定したフィールドのみを表示します。例えば、pid,comm
を指定すると、プロセスIDとコマンド名のみが表示されます。 |
-p |
指定したプロセスIDのプロセスを表示します。複数のPIDをカンマで区切って指定することもできます。 |
-l |
長いフォーマットで表示します。プロセスに関するより詳細な情報を含みます。 |
--forest |
プロセスを木構造で表示します。プロセスの親子関係がわかりやすくなります。 |
ps
コマンドは非常に多機能で、システムの現在の状態を把握するのに役立ちます。実際の使用例をいくつか紹介します。
全てのプロセスを表示
ps -A
ユーザー名、プロセスID、プロセスの状態、コマンド名を含む、全てのプロセスを表示
ps aux
文字列に一致するプロセスを検索
ps aux | grep [文字列]
完全なコマンド文字列を含む、実行中のすべてのプロセスをリスト表示
ps auxww
プロセスの親 PID を取得
ps -o ppid= -p pid
メモリ使用量に基づいてプロセスを並べ替え
ps -m
CPU 使用率でプロセスを並べ替え
ps -r
特定のユーザーのプロセスを表示
ps -u ユーザー名
プロセスID、コマンド名を表示
ps -o pid,comm
ps
コマンドのオプションはシステムによって異なる場合があります。使用するシステムの
man
ページや ps --help
コマンドを参照して、使用可能なオプションを確認してください。
kill コマンド
kill
コマンドは、指定されたプロセスにシグナルを送信するために使用されます。主にプロセスの終了を目的としていますが、様々なシグナルを送信することで異なるアクションを引き起こすことができます。
killコマンドの基本的な使用法
kill [シグナルオプション] プロセスID
よく使われるオプションとシグナル
オプション | 説明 |
---|---|
-l |
利用可能なシグナルのリストを表示します。 |
-s |
送信するシグナルを指定します。シグナル名またはシグナル番号で指定できます。 |
-9 |
強制終了(KILLシグナル)を送信します。最も強力で、ほとんどのプロセスを即座に終了させます。 |
シグナルの例
シグナル | 名前 | 説明 |
---|---|---|
1 | SIGHUP | プロセスにハングアップを通知します。 |
2 | SIGINT | プロセスに中断を通知します(例: Ctrl+C)。 |
9 | SIGKILL | プロセスを強制終了させます。終了を拒否することはできません。 |
15 | SIGTERM | プロセスに終了を通知します。デフォルトのシグナルです。 |
プロセスID 12345 のプロセスを終了させる(SIGTERM)
kill 12345
プロセスID 12345 のプロセスを強制終了させる(SIGKILL)
kill -9 12345
利用可能なシグナルのリストを表示
kill -l
kill
コマンドは多くのUNIX系OSで標準的に利用されるツールであり、プロセス管理において非常に重要な役割を果たします。正しく使用することで、システムの制御をより柔軟に行うことができます。
関連記事
- dateコマンドで日時の表示 macOS/Linux/Unix
- diff(colordiff)|シェル
- macOSで学ぶfind・grepの基本テクニック・実用例
- iconvコマンドでエンコーディング変換 macOS/Linux/Unix
- less|シェル