回答:
.bashrc
ファイルには、新しい端末セッションがで起動されるたびに実行されるスクリプトですインタラクティブモード。これは、Ctrl+ Alt+を押して新しいターミナルウィンドウをT開くか、単に新しいターミナルタブを開くと発生します。
対照的に、ログインモードのターミナルセッションは、ユーザー名とパスワードを要求し、~/.bash_profile
スクリプトを実行します。これは、たとえば、SSHを介してリモートシステムにログオンするときに行われます。
.bashrc
ファイル自体には、ターミナルセッションのための構成のシリーズが含まれています。これには、カラーリング、完了、シェル履歴、コマンドエイリアスなどの設定または有効化が含まれます。.bashrc
Ubuntuのと一緒に配布されたファイルはよくコメントしているとあなたはそれを読むことによって、それが何のほとんどを理解することができるようになります。
上の質問のスーパーユーザー - .bashrcファイルとは何ですか?@pineappleにより、@ DigitalRossにより回答
実際、
bash
具体的には.bashrc
(および/etc/bash.bashrc
)を読み取ります。さまざまなシェルがたくさんあります。bashのmanページ(ブライアン・フォックスとチェット・ラミーによって、また、情報ページ「バッシュ起動ファイルは」)権威の参照です。
ログインシェルではないインタラクティブシェルが開始されると、bashは
~/.bashrc
そのファイルが存在する場合、からコマンドを読み取って実行します。--norc
オプションを使用すると、これを禁止できます。--rcfile
ファイルオプションが読み込まれ、代わりにファイルからコマンドを実行するためにはbash強制されます~/.bashrc
。bashを非対話形式で起動すると、たとえばシェルスクリプトを実行するため
BASH_ENV
に、環境内の変数を探し、そこに値がある場合はその値を展開し、展開した値を読み取りおよび実行するファイルの名前として使用します。Bashは、次のコマンドが実行されたかのように動作します。if [ -n "$BASH_ENV" ]; then . "$BASH_ENV"; fi
ただし、
PATH
変数の値はファイル名の検索には使用されません。ファイルは単なるシェルコマンドです。通常、プロンプトの変更、環境変数の設定、シェルプロシージャの定義に使用されます。伝統的に、このファイル
.profile
はこの目的に使用されますが、bash
非常に多くの拡張子があるため 、起動ファイルにbashismを入れたいユーザーのために独自の起動ファイルが必要です。「ログインシェルではない」とは、スクリプトの起動や、通常はウィンドウマネージャーによって起動されるターミナルウィンドウなどを意味します。時々私は持っている* nixシステムをセットアップ
.bashrc
し、BASH_ENV
ちょうどソース.profile
。POSIXシェルコマンドの外に迷わない限り、どのシェルでも同じ初期化が行われます。
sh
が本当にそうbash
であるとき、それは特に価値があり、時々起こります。これを行うには:. .profile
これが非常に複雑な理由の1つは、出力を生成するものをシェルスタートアップファイルに配置したり、無条件にプロンプトを設定したりするためです。これは
system(3)
、Cプログラムではなく、言語内でシェルプログラムおよびバックティックコマンドを実行するときに多くの問題を引き起こします 。bash
起動方法は、出力とプロンプトの設定がOKであるファイルとそうでないファイルが1つずつあるように設計されています。従来は、対話性を区別するために、たとえばプロンプトが設定されているかどうかを確認するために、実行時テストが行われていました。
.bashrc
多くのbash構成ファイルの1つです。Bash Startup Filesの公式ドキュメントを参照してください。