📘
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