"echo $PATH"と/etc/pathsの違いは何ですか?

$ PATHをechoすると、次のメッセージが表示されますUsers/myusername/.node_modules_global/bin:/Users/mac/.node_modules_global/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/mac/Library/Android/sdk/platform-tools:/platform-tools

いくつかのパスを削除したいが、コマンドを使用してファイルを開くと、vim /etc/paths次のような結果が表示されます。

/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin

/etc/paths ファイルが $PATH 変数と異なりますか?

ベストアンサー1

/etc/paths$PATHシェルプロセスの一部を設定するために使用されます。新しい端末ウィンドウを開くと起動し、複数のbash起動スクリプトが実行されます。/etc/profileAND ~/.bash_profileOR存在しない場合~/.bash_loginORまたは存在しない場合~/.profile。このスクリプトは$PATH

/etc/profile実行されるタスクの1つは、内のすべてのファイルを/usr/libexec/path_helper読み取り、その内容を追加することです。ただし、これは開始点にすぎず(存在する場合)、独自の起動スクリプトを追加、編集、完全に置き換えることができます。/etc/paths/etc/paths.d$PATH$PATH

/etc/paths起動スクリプト(および/または実行中のエントリ)が、「Users / myusername / .node_modules_global / bin:/ Users / mac / .node_modules_global / bin:」からatに多くのエントリを追加しているようです。先頭$PATHに (このディレクトリが最初に検索されることを意味します) と ":/Users/mac/Library/Android/sdk" /platform-tools:/platform-tools" が最後に追加されます。何をすべきか正確に知りたい場合は、起動スクリプトを見てください。

ただし、この設定プロセスは$PATHbashの「ログイン」シェルでのみ機能します。 bashシェルによって実行されるすべてはbashシェル$PATHから継承されるため、本質的に同じ内容を持つことができます。 bash 非ログインシェルは、若干異なる設定プロセスに従います。他のシェルとシェルでまったく始まらないもの(クローン作業など)は全く違う$PATHs

おすすめ記事