.bash_profile と .bashrc
みなさん bash は使っていますか?macOS Catalina からデフォルトシェルが zsh になってから、zsh を使ってる人が多いと思いますが、僕はいまだに bash ですので👷♀️ 今回はそんな bash の設定を行うために使用される .bash_profile
と .bashrc
がなんなのかということを簡単にまとめてみました(zsh は bash の上位互換なので、設定ファイルが違うだけでおおよそは同じ気がしています、、)。
事前に知っておくといいもの
ログインシェル
ログインした直後に動作するシェルのことを指します。例えば、僕の Mac環境はログインシェルが bash に設定されているので、Terminal.app を新規タブ・ウィンドなどで立ち上げると、システムが bin/bash --login
を呼び出し bash が使えるようになります。
インタラクティブシェル
ログイン無しで起動されるシェルのことを指しています。僕の環境の場合では、--login がされずに実行されるシェルのことです🐧
.bash_profile
ログインシェル起動時に呼び出されます。Mac で言うと、terminal を新規タブ・ウィンド で開いた時に .bash_profile
が呼び出されます。また、このファイルの主な用途は環境変数の設定で、環境変数はプロセス間で受け継がれるのでログイン時にのみ実行すれば正常にセットすることができます。
.bashrc
インタラクティブシェル起動時に呼び出されます。ファイルの主な用途は、エイリアスの定義、シェル関数の定義、コマンドラインの補完の設定などです。また、.bash_profile
に .bashrc
を読み込む処理を書くことで、ログインシェル起動時に .bashrc
を読み込むように設定できます。
参考
- https://language-and-engineering.hatenablog.jp/entry/20110617/p1
- https://qiita.com/incep/items/7e5760de0c2c748296aa
- https://qiita.com/Yuuki557/items/bda36910605b308122d2