$PATH 全体を検索しません。

$PATH 全体を検索しません。

実行すると、sudo which abcスーパーユーザー$ PATHで "abc"プログラムを検索すると予想されますが、サブセットのみを検索しているようです。

sudo echo $PATH検索されたパスを実行して比較すると、これがわかります。

$ sudo which abc
which: no abc in (/sbin:/bin:/usr/sbin:/usr/bin)

$ sudo echo $PATH
/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/aws/bin:/home/ec2-user/.local/bin:/home/ec2-user/bin

ここで何が起こっているのでしょうか?

答え1

$PATHsudo実行する前に拡張してください。したがって、あなたが見るのは、あなたPATHがsudoするユーザーの価値ではなく、あなたの価値です。

この試み:

$ sudo bash -c 'echo $PATH'

関連情報