ps -o 列幅の拡大

ps -o 列幅の拡大

コマンドを実行すると

ps -e -o cmd,stime,etime=

cmdが切り捨てられ、cmdパスも切り捨てられます。すべてのテキストが表示されるように列幅をフォーマットするにはどうすればよいですか?

答え1

GNU/Linux では、列幅を次のように設定できます。

ps -e -o cmd:50,stime,etime=

からps(1)マニュアルページ:

-o フォーマット

ユーザー定義のフォーマット。format は、空白またはカンマで区切られたリスト形式の単一の引数で、個々の出力列を指定する方法を提供します。認識されるキーワードについては、以下の「標準フォーマット指定子」セクションで説明します。ヘッダーは、必要に応じて名前を変更できます (ps -o pid,ruser=RealUser -o comm=Command)。すべての列ヘッダーが空の場合 (ps -o pid= -o comm=)、ヘッダー行は出力されません。列幅は、幅の広いヘッダーに応じて増加します。これは、WCHAN などの列を広くするのに使用できます (ps -o pid,wchan=WIDE-WCHAN-COLUMN -o comm)。明示的な幅制御 (ps opid,wchan:42,cmd) も提供されます。ps -o pid=X,comm=Y の動作はパーソナリティによって異なります。出力は「X,comm=Y」という名前の 1 つの列になる場合もあれば、「X」と「Y」という名前の 2 つの列になる場合もあります。疑わしい場合は、複数の -o オプションを使用してください。PS_FORMAT 環境変数を使用して、必要に応じてデフォルトを指定します。DefSysV と DefBSD は、デフォルトの UNIX または BSD 列を選択するために使用できるマクロです。

答え2

Ubuntu 18.04 では、次のコマンドを実行します。

ps -eo comm:25,pid

確かに COMMAND 列は広がりますが、25 文字未満のコマンドであっても切り捨ては止まりません。

gsd-printer                2384 
gvfsd-trash                2397
evolution-calen            2401
ibus-engine-sim            2429
dconf-service              2436
evolution-calen            2445
evolution-addre            2457
evolution-addre            2468
fwupd                      2488

関連情報