[Home] / 教授でもできる... / bash setup / .bash_profile
「教授でも...」では、.bash_profileと.bashrc を次のように設定しています。
よく変更する環境変数やaliasは ~/.bashrc というファイルを編集して設定します。
たとえば:
alias ts="open -a TeXShop" PS1="\h:\W\$ " export HOGE=hogehoge
Terminalやxtermからコマンドを打つと、PATHという環境変数に入っているdirectoryを左端から順にたどり、初めて見つかったコマンドを 実行します。 もし将来、あるdirectoryをPATHに加えるには、~/.bash_profile の中で追加します。 たとえば、~/mybin というdirectoryを追加する場合は、~/.bash_profileというファイルを編集し、その中に次の行を書きます。
export PATH = ~/mybin:${PATH}
変更したPATHを有効にするには、次のいずれかを行ないます。
$ source ~/.bash_profileと打つ。
Terminalとxtermでは、新たなウィンドウを開いたときに実行される初期設定ファイルが次のように異なります。
プログラム | 初期設定ファイル | 実行時 | ||
---|---|---|---|---|
Terminal | /etc/profile | ~/.bash_profile | Terminalの新たなwindowやtabが開かれた時 | |
X11 | /etc/profile | ~/.bash_profile | X11のアプリケーションが立ち上がった時 | |
xterm | ~/.bashrc | xtermの新たなwindowが開かれた時 |
Terminalは、新たなwindowやtabが開かれる度に、/etc/profile, ~/.bash_profileを実行します。 それに対してxtermは/etc/profileや ~/.bash_profileを実行せずに、 単にxtermを開く親の環境を引き継いで、~/.bashrcを実行します。 例えばX11のアプリケーションからxtermを開くと、X11を立ち上げた時に/etc/profile, ~/.bash_profileを実行して 得られた環境変数を引き継ぎます。 Terminalから" xterm& "と打つと、立ち上がったxtermはその時のTerminalで設定されている環境変数を引き継ぎます。
いずれにせよ、開く度に実行されるユーザのファイルが、Terminalでは~/.bash_profile、xtermでは~/.bashrcと、二つで異なります。 そこで、どちらを使っても同じ環境が得られるように、ユーザによる設定は .bashrc にまとめます。 そして、Terminalの新たなwindowやtabが開かれた時のみ、~/.bash_profileから~/.bashrcを実行するようにしたのが、 .bash_profileに入れた次の5行です。
if [ "$TERM_PROGRAM" = "Apple_Terminal" ]; then if [ -f ~/.bashrc ]; then source ~/.bashrc fi fi
PATHの変更をもし.bashrcの中ですると、例えばTerminalやxtermから" xterm& " と打ってxtermを立ち上げたときに ~/.bashrcが再び実行され、PATHの変更が2回重複して行なわれてしまいます。
以下、メモ