.bashrc、.bash_profile、.environment の違いは何ですか? 質問する

.bashrc、.bash_profile、.environment の違いは何ですか? 質問する

私はこれまで何年もの間、さまざまな *nix ベースのシステムを使用してきましたが、使用している Bash の種類ごとに、実行する起動スクリプトを決定するためのアルゴリズムが異なるようです。環境変数やエイリアスの設定、起動メッセージ (MOTD など) の印刷などのタスクを実行するには、どの起動スクリプトが適切なのでしょうか。

.bashrc、、.bash_profileおよび に何かを入れることの違いは何ですか? 、、および.environmentなどの他のファイルも見たことがあります.loginが、これらは関係しますか? 物理的にログインする場合、ssh 経由でリモートでログインする場合、および新しいターミナル ウィンドウを開く場合に実行されるものの違いは何ですか? プラットフォーム間で大きな違いはありますか (Mac OS X (およびその Terminal.app) と Cygwin Bash を含む)?.bash_login.profile

ベストアンサー1

シェル設定ファイルとの主な違いは、一部のファイルは「ログイン」シェルによってのみ読み取られることです (たとえば、別のホストからログインする場合や、ローカル UNIX マシンのテキスト コンソールでログインする場合)。これらは、使用しているシェルに応じて、.loginまたは、.profileまたはと呼ばれます。.zlogin

次に、「対話型」シェル (つまり、端末 (または、ウィンドウ システムで実行されている端末エミュレーターの場合は疑似端末) に接続されたシェル) によって読み取られる構成ファイルがあります。これらは、、、などの名前の.bashrcファイルです.tcshrc.zshrc

bashこれを複雑にしているの.bashrc両方のシェルによってのみ読み取られます相互の作用そして非ログインなので、ほとんどの人は、次のような言い方で、子供たちに.bash_profileも読んでほしいと伝えてしまうでしょう。.bashrc

[[ -r ~/.bashrc ]] && . ~/.bashrc

他のシェルは異なる動作をします。たとえば、 ではzsh.zshrcログイン シェルであるかどうかに関係なく、対話型シェルでは常に が読み取られます。

bash のマニュアル ページには、各ファイルが読み取られる状況が説明されています。はい、動作はマシン間で一般的に一貫しています。

.profileは、単に が元々使用していたログイン スクリプト ファイル名です/bin/shbashは、一般に と下位互換性があり、存在する場合は/bin/shが読み取ります。.profile

おすすめ記事