
私はOracle Solaris 11.2 SPARCの使用を開始しました。
Linuxでは、次のように書くことができます。
ps aux | grep *some_data*
...しかし、Solarisでは結果は表示されません。
代わりに私は言わなければなりません
ps auxww | grep *some_data*
man ps
の詳細情報を見つけました。ww
オプション文字が繰り返される場合(例:-ww)、このオプションはランダムに広い出力を使用します。
ww
なぜ何かを得るために使用する必要がありますかgrep
?
答え1
LinuxでもSolarisでも、非標準BSDオプションを使用しています。
-o
移植可能な方法は、hereのようにオプションを使用して表示するフィールドを指定することですps -o pid,args
。最新の 11.3 アップデート以降を使用しない限り、引数のリストはルートであるか、プロセスを所有していない限り 80 文字に制限されます。
または、pgrep -f
whichを使用してコマンドライン全体を検索できます。
答え2
Linuxでは、このps
コマンドは出力が端末に移動するかどうかを検出します。端末の場合、出力は端末の幅に合わせて切り捨てられます。端末にないと切り捨てられません。実際にww
フラグを自動的に追加するのと同じように動作します。
ps aux
次のように入力して違いを確認できます。ps aux | cat
あなたの例では、出力をにパイプするので、入力したように動作しgrep
ますps auxww | grep
。
移植性のためにww
80文字を超えるすべてのデータを表示するには、常にこれらのフラグを使用する必要があります。
注:BSD形式のps
コマンドを使用しているので、Solarisでは正しいコマンドを呼び出していることを確認してください。