📘
ovを使用してpsを見やすくする
はじめに
ovはターミナルページャーです。
UTF-8のみをサポートしています。
ps
コマンドは、オプションも多く様々な情報を表示することができますが、その分見づらくなることがあります。
特に、ps
コマンドの出力は、最初の行にヘッダーがあり項目名を表示しますが、プロセス数が多い場合にスクロールするとヘッダーが見えなくなります。
ov
では、psの出力を見やすくできるため紹介します。
ps
のヘッダー
ps
コマンドの出力は、以下のようになります。
$ ps -ef
UID PID PPID C STIME TTY TIME CMD
root 1 0 0 Sep28 ? 00:01:02 /lib/systemd/systemd --system --deserialize 75 splash
root 2 0 0 Sep28 ? 00:00:00 [kthreadd]
root 3 2 0 Sep28 ? 00:00:00 [rcu_gp]
root 4 2 0 Sep28 ? 00:00:00 [rcu_par_gp]
root 5 2 0 Sep28 ? 00:00:00 [slub_flushwq]
root 6 2 0 Sep28 ? 00:00:00 [netns]
root 8 2 0 Sep28 ? 00:00:00 [kworker/0:0H-events_highpri]
root 10 2 0 Sep28 ? 00:00:00 [mm_percpu_wq]
root 11 2 0 Sep28 ? 00:00:00 [rcu_tasks_kthread]
root 12 2 0 Sep28 ? 00:00:00 [rcu_tasks_rude_kthread]
root 13 2 0 Sep28 ? 00:00:00 [rcu_tasks_trace_kthread]
root 14 2 0 Sep28 ? 00:00:10 [ksoftirqd/0]
root 15 2 0 Sep28 ? 00:10:04 [rcu_preempt]
root 16 2 0 Sep28 ? 00:00:05 [migration/0]
root 17 2 0 Sep28 ? 00:00:00 [idle_inject/0]
root 19 2 0 Sep28 ? 00:00:00 [cpuhp/0]
root 20 2 0 Sep28 ? 00:00:00 [cpuhp/1]
...
通常は端末画面に収まらないぐらいにプロセス数が多くなるため、grep
で絞り込んで表示したくなりますが、ヘッダーも除外されてしまうため、工夫する方法が紹介されています。
ov
では、ヘッダーを固定表示できるので、このような工夫をする必要がなくなります。
$ ps -ef | ov --header 1
ps
の列
ov
には幅指定フォーマットの幅を推測する機能を使用して、ps
の列を推測して、列モードにすることができます。
さらに列毎に色を付けるモードを使用すると、ps
の列を見やすくすることができます。
$ ps -ef | ov --header 1 --column-width --column-rainbow
ov
をこのようなオプションで使用しているとps
の様々なオプションに対応できます。
例えば、ps
でメモリの使用量(RSS)を確認したいときには、列がずれてわかりづらくなってしまうことがありますが、ov
では列の確認がしやすいように表示できます。
$ ps aux|ov --header 1 --column-width --column-rainbow
Discussion