毎回.profileを検索または再起動せずに.profileを変更して設定を適用するにはどうすればよいですか?

毎回.profileを検索または再起動せずに.profileを変更して設定を適用するにはどうすればよいですか?

MacまたはUbuntuの場合は、次のパスを追加する必要がありますPATH

https://stackoverflow.com/questions/33725639/npm-install-g-less-does-not-work-eacces-permission-denied

# add the following to ~/.profile 
export PATH=~/.npm-global/bin:$PATH

しかし、私たちは引き続き使用する必要があります。

source ~/.profile

マシンを再起動しないと、新しいBashウィンドウに表示されます。PATHその行をに入れることができますが、その設定を.bashrc次に入れる必要があります。PATH.profilehttps://superuser.com/questions/183870/difference-Between-bashrc-and-bash-profile

したがって、ここにいくつかのジレンマがあります。再起動しないと、すべてのBashシェルでそのパスを持つことはできません。しかし、私たちのコンピュータで実行されているアプリケーションが多いため、再起動できなくなる可能性があり、再起動して再試行するのに時間がかかります。

すべてのBashシェルに変更を適用しますが、コンピュータを再起動する必要はない方法はありますか?

ベストアンサー1

ファイルが存在しない場合、シェルは~/.profileファイルを読み取り、ログインシェルになります。起動時に対話型の非ログインシェルを読みます。bash~/.bash_profilebash~/.bashrc

~/.bash_profilelet(または~/.profile)sourceを使用するのが一般的です。特に~/.bashrcアクティブな使用中の唯一のシェルを読み取るシステムではさらにそうです(一部のシェルではなく他のシェルでも読むようにすると、readは複数の他のシェルを活発に使用している場合に問題を引き起こす可能性があります)。bash~/.profilebash~/.bashrc

すでに実行されているセッションからこれらのファイルをインポートしたくない場合は、bash変数の値に要素を追加するだけですPATH。この要素はシェルのコマンドラインから直接実行できます。

PATH=$HOME/.npm-global/bin:$PATH

exportここで使用して起動ファイルに追加することは重複します。PATH明示的に使用しない限り、変数はすでに環境変数であるためですunset。)

変更したばかりのシェル初期化ファイルをインポートする以外に、すでに有効になっているシェルセッションで変数の値を変更する方法はありませんPATH(そうすることで、さまざまなことを行うことができるので、これを避けたいことは理解できます)。その他もの)。

(再起動する代わりに)シェルを再起動しても機能します。特に、シェルをログインシェルで起動する場合(デフォルトでは、ログインシェルでない場合は、macOSのようにターミナルエミュレータにシェルをログインシェルで起動させることができます)。

おすすめ記事