回答:
.bashrcファイルには、新しい端末セッションがで起動されるたびに実行されるスクリプトですインタラクティブモード。これは、Ctrl+ Alt+を押して新しいターミナルウィンドウをT開くか、単に新しいターミナルタブを開くと発生します。
対照的に、ログインモードのターミナルセッションは、ユーザー名とパスワードを要求し、~/.bash_profileスクリプトを実行します。これは、たとえば、SSHを介してリモートシステムにログオンするときに行われます。
.bashrcファイル自体には、ターミナルセッションのための構成のシリーズが含まれています。これには、カラーリング、完了、シェル履歴、コマンドエイリアスなどの設定または有効化が含まれます。.bashrcUbuntuのと一緒に配布されたファイルはよくコメントしているとあなたはそれを読むことによって、それが何のほとんどを理解することができるようになります。
上の質問のスーパーユーザー - .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の公式ドキュメントを参照してください。