Bashプログラミング
 Computer >> コンピューター >  >> プログラミング >> Bashプログラミング

初心者から上級者まで使える!Linux topコマンドの実例15選

初心者から上級者まで使える!Linux topコマンドの実例15選本記事は、特定のコマンドや機能について15個の実例を紹介する「15例シリーズ」のひとつです。これまでに、findコマンド、crontabの活用例、grepコマンド、historyコマンド、pingコマンド、wgetの実例などを取り上げてきました。

今回は、初心者はもちろん経験豊富なエンジニアにも役立つLinux topコマンドの実例15選を解説します。

1. 任意の列でプロセスをソートする – Oキーを押す

topコマンドはデフォルトでCPU使用率の高い順にプロセスを表示します。実行中にM(大文字)を押すと、メモリ使用量順に並べ替えて表示できます。
初心者から上級者まで使える!Linux topコマンドの実例15選

: Mキーでメモリ使用量順にソート – Unix topコマンド

任意の列でソートしたい場合は、O(大文字)を押してください。ソート可能なすべての列が一覧表示されます。

Current Sort Field: P for window 1:Def
Select sort field via field letter, type any other key to return 
 a: PID = Process Id v: nDRT = Dirty Pages count
 d: UID = User Id y: WCHAN = Sleeping in Function
 e: USER = User Name z: Flags = Task Flags
 ........

さらに、topコマンド実行中にRを押すと、昇順・降順を反転させることができます。

2. topを終了せずにタスクを強制終了する – kキーを押す

終了させたいプロセスが見つかったら、「k」を押します。プロセスID(PID)と送信するシグナルを尋ねられるので入力しましょう。該当PIDを終了する権限があれば、そのままプロセスをkillできます。

PID to kill: 1309
Kill PID 1309 with signal [15]: 
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent
 5136 root 16 0 38040 14m 9836 S 0 0.2 0:00.39 nautilus

3. topを終了せずにプロセスの優先度を変更する – rキーを押す

プロセスをkillするのではなく、優先度だけ変更したい場合は「r」を押します。renice対象のPIDと優先度の値を入力すると、その場でnice値を変更できます。


PID to renice: 1309
Renice PID 1309 to value: 
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent

4. 特定ユーザーのプロセスのみ表示する(top -u)

top -u オプションを使うと、指定したユーザーのプロセスだけを出力できます。

$ top -u geek

また、topコマンド実行中に「u」を押しても同様の絞り込みが可能です。ユーザー名を入力してください。

Which user (blank for all): geek
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent

特定のPIDのプロセスだけを表示する(top -p)

top -p オプションを使えば、指定したPIDのプロセスのみを表示できます。

$ top -p 1309, 1882
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent

5. CPU/コアごとの詳細を表示する – 1(数字のワン)を押す

デフォルトのtop出力では、全CPUの合計値が1行で表示されます。

top - 20:10:39 up 40 days, 23:02, 1 user, load average: 4.97, 2.01, 1.25
Tasks: 310 total, 1 running, 309 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.5%us, 0.7%sy, 0.0%ni, 92.3%id, 6.4%wa, 0.0%hi, 0.0%si, 0.0%st

topコマンド実行中に「1」を押すと、CPU情報が個々のコアごとに分解され、システム上の各CPUの詳細を確認できるようになります。

top - 20:10:07 up 40 days, 23:03, 1 user, load average: 5.32, 2.38, 1.39
Tasks: 341 total, 3 running, 337 sleeping, 0 stopped, 1 zombie
Cpu0 : 7.7%us, 1.7%sy, 0.0%ni, 79.5%id, 11.1%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu1 : 0.3%us, 0.0%sy, 0.0%ni, 94.9%id, 4.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu2 : 3.3%us, 0.7%sy, 0.0%ni, 55.7%id, 40.3%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu3 : 5.0%us, 1.0%sy, 0.0%ni, 86.2%id, 7.4%wa, 0.0%hi, 0.3%si, 0.0%st
Cpu4 : 38.5%us, 5.4%sy, 0.3%ni, 0.0%id, 54.8%wa, 0.0%hi, 1.0%si, 0.0%st
Cpu5 : 0.0%us, 0.0%sy, 0.0%ni,100.0%id, 0.0%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu6 : 0.3%us, 0.7%sy, 0.0%ni, 97.3%id, 1.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu7 : 5.4%us, 4.4%sy, 0.0%ni, 82.6%id, 7.7%wa, 0.0%hi, 0.0%si, 0.0%st
Cpu8 : 1.7%us, 1.7%sy, 0.0%ni, 72.8%id, 23.8%wa, 0.0%hi, 0.0%si, 0.0%st

6. 表示を手動更新する / 更新間隔を変更する

デフォルトでは、topコマンドの出力は3.0秒ごとに自動更新されます。任意のタイミングで即座に更新したい場合は、スペースキーを押してください。

更新頻度を変更したい場合は、インタラクティブモード中に「d」を押し、秒数を入力します。

Change delay from 3.0 to: 10
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent

7. 実行中のプロセスをハイライト表示する – zまたはbキーを押す

「z」または「b」を押すと、実行中(running状態)のプロセスがハイライト表示され、視覚的に把握しやすくなります。
初心者から上級者まで使える!Linux topコマンドの実例15選

: Ubuntu Linux – topコマンドによる実行中プロセスのハイライト

8. コマンドの絶対パスと引数を表示する – cキーを押す

「c」を押すと、COMMAND列の表示が切り替わり、コマンドの絶対パスや起動時の引数を確認できます。

 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 /usr/sbin/gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 /usr/sbin/gagent -l 0 -u pre

9. 指定回数の更新後に自動終了する(top -n)

「q」を押すまで、topは出力を表示し続けます。一定回数だけ表示して自動的に終了させたい場合は、-nオプションを使用します。

次の例では、2回分の出力を表示した後、自動的に終了します。

$ top -n 2

10. バッチモードでtopコマンドを実行する

バッチモードで実行したい場合は、-bオプションを指定します。

$ top -b -n 1

注: このオプションは、topコマンドの出力を読みやすいテキストファイルとして保存したい場合に非常に便利です。cronでの定期監視などにも活用できます。

11. 出力を複数パネルに分割する – Aキーを押す

「A」を押すと、topの出力を複数のウィンドウ(パネル)に分割して表示できます。「a」キーで各ウィンドウを順番に切り替えられます。ウィンドウごとに異なる列でソートできるため、複数の観点から同時に監視したい場合にとても便利です。

12. ヘルプを表示する(コマンドライン・インタラクティブ両方)

コマンドラインオプションの概要は、top -h で手軽に確認できます。

$ top -h
 top: procps version 3.2.0
usage: top -hv | -bcisS -d delay -n iterations [-u user | -U user] -p pid [,pid ...]

また、topコマンド実行中に「h」を押すと、インタラクティブコマンドのヘルプが表示されます。

Help for Interactive Commands - procps version 3.2.0
Window 1:Def: Cumulative mode Off. System: Delay 3.0 secs; Secure mode Off.
 Z,B Global: 'Z' change color mappings; 'B' disable/enable bold
 l,t,m Toggle Summaries: 'l' load avg; 't' task/cpu stats; 'm' mem info
 1,I Toggle SMP view: '1' single/separate states; 'I' Irix/Solaris mode
 ..........

13. 表示するプロセス数を減らす – nキーを押す

インタラクティブモード中に「n」を押すと、表示件数を尋ねられるので、数値を入力します。次の例では、常に2つのプロセスのみを表示します。

Maximum tasks = 0, change to (0 is unlimited): 2
 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
 1309 geek 23 0 2483m 1.7g 27m S 0 21.8 45:31.32 gagent
 1882 geek 25 0 2485m 1.7g 26m S 0 21.7 22:38.97 gagent

14. ヘッダー表示を切り替えて、より多くのプロセスを表示する

デフォルトでは、topは画面の高さに収まる範囲でプロセスを表示します。より多くのプロセスを一度に見たい場合は、ヘッダー情報の一部を非表示にするとよいでしょう。

以下は、topがデフォルトで表示するヘッダー情報です。

top - 23:47:32 up 179 days, 3:36, 1 user, load average: 0.01, 0.03, 0.00
Tasks: 67 total, 1 running, 66 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.7% user, 1.2% system, 0.0% nice, 98.0% idle
Mem: 1017136k total, 954652k used, 62484k free, 138280k buffers
Swap: 3068404k total, 22352k used, 3046052k free, 586576k cached
  • 「l」を押す – ロードアベレージ(1行目)の表示/非表示を切り替えます。
  • 「t」を押す – CPU状態(2〜3行目)の表示/非表示を切り替えます。
  • 「m」を押す – メモリ情報(4〜5行目)の表示/非表示を切り替えます。

15. topの設定を保存する – Wキーを押す

上記の例で紹介したようなインタラクティブな設定を行った場合、今後も同じ設定を使いたくなるでしょう。設定を保存しておけば、次回topコマンドを起動したときに、保存済みの設定が自動的に適用されます。

設定を保存するには「W」を押します。設定ファイルが ~/.toprc に書き込まれ、書き込み完了のメッセージが表示されます。

top - 23:47:32 up 179 days, 3:36, 1 user, load average: 0.01, 0.03, 0.00
Tasks: 67 total, 1 running, 66 sleeping, 0 stopped, 0 zombie
Cpu(s): 0.7% user, 1.2% system, 0.0% nice, 98.0% idle
Mem: 1017136k total, 954652k used, 62484k free, 138280k buffers
Swap: 3068404k total, 22352k used, 3046052k free, 586576k cached
Wrote configuration to '/home/ramesh/.toprc'

  1. シェルトレース活用ガイド:シェルスクリプトのコマンド実行をトレースしてデバッグする方法

    シェルスクリプトデバッグシリーズの本記事では、3つ目のデバッグモードであるシェルトレース(shell tracing)について解説します。具体的な例を通じて、その仕組みと実際の使い方を見ていきましょう。 シリーズの前回までの記事では、残り2つのデバッグモードであるverboseモードと構文チェックモードについて、わかりやすい例とともにシェルスクリプトのデバッグを有効化する方法を紹介しました。 Linuxでシェルスクリプトのデバッグモードを有効にする方法 – Part 1 シェルスクリプトで構文チェックによるデバッグを行う方法 – Part 2 シェルトレースとは何か シェルトレースとは、シ

  2. PCの暇な時間を有効活用!生産性アップと娯楽を両立する30のアイデア

    by Ramesh Natarajan(2010年3月1日) パソコンの前に座っているのに、何をしていいかわからない――そんな経験はありませんか?実は、ちょっとした空き時間でも有意義に使えることはたくさんあります。この記事では、生産性を高める実用的なタスクから、純タスクから、純粋に楽しめる娯楽まで、30のアイデアを厳選してご紹介します。 技術系ブログを読む – 毎日質の高い記事を発信している技術ブログは数多く存在します。かつてTechnoratiには9,600件以上のテクノロジー系ブログが登録されていました。興味のあるブログを探して読んでみましょう。当ブログのアーカイブには、見逃したかもし