📘

ovを使用してpsを見やすくする

2023/10/09に公開

はじめに

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

psの列

ovには幅指定フォーマットの幅を推測する機能を使用して、psの列を推測して、列モードにすることができます。

さらに列毎に色を付けるモードを使用すると、psの列を見やすくすることができます。

$ ps -ef | ov --header 1 --column-width --column-rainbow

ps

ovをこのようなオプションで使用しているとpsの様々なオプションに対応できます。
例えば、psでメモリの使用量(RSS)を確認したいときには、列がずれてわかりづらくなってしまうことがありますが、ovでは列の確認がしやすいように表示できます。

$ ps aux|ov --header 1 --column-width --column-rainbow

ps

Discussion