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