このコマンドの意味は何ですか、何をしますか?
ps -aef | grep `pwd`
ps のmanページから:
-a Select all processes except both session leaders (see getsid(2)) and
processes not associated with a terminal.
-f Do full-format listing. This option can be combined
with many other UNIX-style options to add additional
columns. It also causes the command arguments to be
printed. When used with -L, the NLWP (number of
threads) and LWP (thread ID) columns will be added. See
the c option, the format keyword args, and the format
keyword comm.
-e Select all processes. Identical to -A.
grep はprint lines matching a pattern
に使用されます。
それがすること
コマンド
ps -aef | grep `pwd`
ps -aef
の出力から、コマンドpwd
(現在の作業ディレクトリのパスになります)の出力に一致するすべての行を出力します。
e.g:
saji@geeklap:~$ pwd
/home/saji
saji@geeklap:~$ ps -aef | grep `pwd`
saji 2854 2814 0 09:51 ? 00:00:00 /usr/bin/ssh-agent /usr/bin/gpg-agent --daemon --sh --write-env-file=/home/saji/.gnupg/gpg-agent-info-geeklap /usr/bin/dbus-launch --exit-with-session gnome-session --session=ubuntu
saji 2855 2814 0 09:51 ? 00:00:00 /usr/bin/gpg-agent --daemon --sh --write-env-file=/home/saji/.gnupg/gpg-agent-info-geeklap /usr/bin/dbus-launch --exit-with-session gnome-session --session=ubuntu
saji 2879 1 0 09:51 ? 00:00:00 /usr/lib/gvfs//gvfs-Fuse-daemon -f /home/saji/.gvfs
saji 14242 14148 0 15:26 pts/7 00:00:00 grep --color=auto /home/saji
ご覧のとおり、出力には、現在の作業ディレクトリ(/home/saji
)に一致する行が表示されます。
背景情報:
コマンドが$(...)または...
にある場合、コマンドが実行され、出力(画面に出力されるもの)がキャッチされ、元の$()の場所に置き換えられますまたは `` string was was。したがって、実際のコマンド実行はgrep pwdです。
詳細については、これを参照してください link 。(この情報について @ minerz029 に感謝します)。
Manページ自体からの詳細な技術的回答については、次のリンクを確認してください。
ps -aef | grep $(pwd)
working directory
に関連付けられているプロセスのリストに関する完全な情報を検索、取得、表示し、そのディレクトリのパスを出力します。
ps
:アクティブなプロセスの選択に関する情報を表示します。 ps -e
など、現在のすべての作業バックグラウンドプロセスを表示するため
-aefここに何があるのか理解できない
grep
:プロセス内の特定の作業を検索するためのものです。
pwd
:作業ディレクトリを印刷します。
便利で意味のあるコマンドだとは思いません。あなたがそれをどのような目的で使用しているか知っていますか。