通常のユーザーとして実行する場合と root で実行する場合、同じコマンドが異なるコマンドスクリプトを使用するのはなぜですか?

通常のユーザーとして実行する場合と root で実行する場合、同じコマンドが異なるコマンドスクリプトを使用するのはなぜですか?

date一般ユーザーのコマンドのスクリプトの場所が表示され、次のように表示されます。

which date
/bin/date

ただし、ルートで同じコマンドを実行すると出力が表示されます/usr/bin/date。なぜこれですか?

ベストアンサー1

which date異なるユーザーに対して異なる結果が生成されると、rootそのユーザーの結果も異なる値を持つことができますPATH。一般ユーザーは/bin以前/usr/bin(または/usr/binまったくなし)と以前root(またはまったくなし)を経験しました。/usr/bin//bin/bin

次のコマンドを実行してこれを確認できます。

echo ${PATH}

rootroot以外のユーザーとして。

このPATH変数は、絶対パスが指定されていないときにシェルがコマンドを検索するコロンで区切られたディレクトリのリストです。シェルは、リストされた順序で左から右にこれらのディレクトリを検索します。シェルがディレクトリ内のコマンドを見つけたら、それを実行します。このwhichコマンドは同様の巡回を実行し、見つかった最初の一致を報告します。

おすすめ記事