空白区切りの横長コマンド出力をtrコマンドで見やすくする

投稿者:しんさん        2016/03/19

コマンド出力が横に長過ぎて見づらい

LinuxをはじめとしたUNIX系OSで、
コマンドの出力が横長で見づらい!
ということが多々あるかと思います。

例えば、

  • 引数を大量にもったプロセスをpsで見た時の出力

といった場合には、出力が非常に横長になりがちです。

この状態で

  • 特定のプロセスがどのような引数を持って起動しているか

といったことを目視で探すことは難しく、間違いを起こしがちです。

かといって、同じ行に空白区切りで出力されているため、そのままではgrepで抽出することもできません

trを使用して空白を改行に変換

そこで、trコマンドを使用して空白を改行に変換することで、

  • 空白で区切られたカラムごとに改行することで見やすく表示する
  • 必要に応じてgrepで結果をフィルターする

という手法が有効です。

例えば引数を大量に持ったプロセスについて詳細を確認したいと仮定します。

以下ではWebSphereのJVMプロセスをps -ef コマンドで見た際の結果を例にあげていますが、ただ表示しただけの場合、非常に横長の出力になっています。


[user@testsv ~]$ ps -ef|grep TestJvm|grep -v grep
wasuser 4472 9216 1 Feb08 ? 04:58:57/usr/WebSphere/AppServer/java/bin/java -Declipse.security-Dwas.status.socket=42575

**(あまりに長すぎるので中略)**

/usr/WebSphere/AppServer/profiles/hogehoge/config Cell01 Node01 TestJvm

この横長の出力をtrコマンドで空白=>改行変換することで、一つ一つがだいぶ見やすくなります。


[user@testsv ~]$ ps -ef|grep TestJvm|grep -v grep|tr ' ' '\n'
wasuser

4472

9216

1
Feb08
?

04:58:57
/usr/WebSphere/AppServer/java/bin/java
-Declipse.security
-Dwas.status.socket=42575
-Dosgi.install.area=/usr/WebSphere/AppServer
-Dosgi.configuration.area=/usr/WebSphere/AppServer/profiles/hogehoge/servers/TestJvm/configuration

**(中略)**

Cell01
Node01
TestJvm

例えばここで、
Xms(javaのヒープサイズ)オプションに何が指定されているか知りたい
のであれば下記のようにgrepを掛けることができます。


[user@testsv ~]$ ps -ef|grep TestJvm|grep -v grep|tr ' ' '\n'|grep 'Xms'
-Xms256m

この使い方が、実際のサーバ運用の中では1番使い勝手が良いですね。

まとめ

上記ではpsコマンドの出力整形を例に出しましたが、
「空白区切りの横長コマンド出力を見やすくしたい」
という色々な場面で
「trコマンドを使用した空白=>改行変換」
が役立ちます。是非ご活用ください。

この記事が気に入ったら
いいね ! しよう

Twitter で

 - サーバー運用 , , ,