私はunix / linuxコマンドを書く方法を学んでいます。 ps -efを使用してプロセスを表示する方法はありますが、コマンドがrootのときに所有者を無視するようにできますか?
答え1
procps-ng
実装ps
(非組み込みLinuxシステムで一般的に見られる)を使用すると、そのオプションを削除し、ルートを除くすべてのユーザーで実行されているプロセスを表示することに-e
置き換えることができます。-N -u root
ps
ps -f -N -u root
コマンドラインを短くするか、一緒にパッケージすることができます(一緒に-f -N
パッケージする方法と似ています)。-Nf
-fN
-e -f
-ef
ps
デフォルトでは、すべてのプロセスが選択されたことを示すオプション()をrootとして実行されているプロセスのみを選択することを示すオプション()に置き換え、負のオプション-e
()を追加すると、実行中のプロセスを除くすべてのプロセスがrootとして選択されます。このオプションはユーザーのリストを取得するため、ルートまたはデーモンをフィルタリングしたい場合はそれを使用できます。ps
-u root
-N
ps
-u
ps -f -N -u root,daemon
マニュアルps
ページでは、機能(簡単なプロセス選択、リストによるプロセス選択、出力フォーマット制御など)に従ってオプションをグループ化するため、この-N
オプションを使用して他のプロセス選択オプションの動作を無効化/反転できます。たとえば、ps -f -p 123
プロセスIDのみが選択され、プロセスID以外の123
すべてps -f -N -p 123
のプロセスが表示されます123
。