【忘備録】Mac起動時のシェルスクリプトの順番と記述内容


.bashrcにエイリアス登録したのに、毎回sourceコマンド打たないと適用されない…
なんでなんで?と思って色々調べたので、忘備録として記録しておきます。

[ad#co-1]

全ユーザーの設定

/etc/profileと/etc/bashrcは全ユーザーに対しての設定が記述される。

/etc/bashrc

全ユーザーに共通のエイリアスと関数が記述されているみたい。

/etc/profile

環境変数と起動プログラムが記述されているみたい。

各ユーザーの設定

こっちの記事の方が多いので、この設定ばかりやっているとユーザーを切り替えた際に混乱する可能性がある。
(そもそもユーザーを分けて使っている人はあまりいないとは思いますが…)
共通設定が呼ばれてから、各ユーザー設定で上書きされます。

以下が設定ファイルで、上から順番に呼び出される順番です。

~/.bash_profile

/etc/profileの次に呼び出されるファイル
環境変数と起動プログラムを記述しておく場所みたい。

~/.bash_login

~/.bash_profileが存在しない場合に読み込まれる。

~/.profile

~/.bash_loginが存在しない場合に読み込まれる。

~/.bashrc

コマンドラインで”bash”と入力して、新しいシェルを起動したときに読み込まれる。
基本的にエイリアスを記述するみたい。

~/.bash_logout

ログインしたシェルを終了するときに読み込まれる。
コマンドラインで”bash”と入力して起動したサブシェルを”exit”などで終了するときには読み込まれない。

[ad#co-2]

結局、どう解決したのか

エイリアスを適用するために、.bash_profileに以下を記述

source .bashrc

これで毎回ログインするたびに.bashrcを読み込んでくれるので、エイリアスが使えるようになりました。
めでたしめでたし。