1.bashシェルの設定保存
bashシェルの設定は通常ログアウトすると保存されず、デフォルトの設定に戻ってしまう。永続的に保存したい場合、bashの起動時やログイン時に自動で読み込まれる設定ファイルに直接コマンドを書き込む必要がある。
2.設定の保存先
bashの起動時やログイン時に自動で読み込まれる設定ファイルは保存先や読み込まれるタイミングが決まっている。
ファイル名にprofileと付いているのは、ログインシェル起動時に動作するもの、ファイル名にbashrcと付いているのは、それ以外で動作するものを指している。
ファイル名 | タイミング | 用途 | 用途例 |
---|---|---|---|
~/.bashrc | 非ログインシェル起動時 | 全シェルで使う設定 | エイリアス、PS1設定、関数などシェル中の便利設定 |
~/.bash_profile | ログインシェル起動時 | ログイン時に1回だけ実行したい処理 | .bashrc の読み込み、PATHの追加など |
~/.profile | ログインシェル(+ GUIログイン) | ログイン時に1回だけ実行したい&GUIログイン時も実行したい | .bashrc を呼び出すのによく使う。Ubuntuでは標準 |
/etc/profile | 全ユーザーのログインシェル起動時 | システム全体に影響させたい設定・処理 | グローバルな設定、/etc/profile.d/*.sh もここで読まれる |
/etc/bash.bashrc | 全ユーザーの非ログインシェル起動時 | システム全体に影響させたい設定・処理 | .bashrc に相当する全体設定 |
~/.bash_logout | ログアウト時 | ログアウト時に実行したい | 後片付け処理(例:一時ファイル削除) |
3.設定ファイルの読み込み順序
etcディレクトリの設定ファイル起動後にホームディレクトリの設定ファイルを起動している。
(1)ログインシェルの場合(ユーザーがLinuxにログインしたとき等)
Bash(ログインシェル)起動
↓
1. /etc/profile ← システム共通設定
↓
2. ~/.bash_profile ← ユーザー専用(存在すればこれを読む)
├─ or ~/.bash_login ← bash_profile がなければこれ
└─ or ~/.profile ← どちらもなければこれ
↓
(必要に応じて ~/.bash_profile 内から ~/.bashrc を source)
↓
Bashプロンプト表示
(2)非ログインシェルの場合(ターミナルを開いたとき等)
bash(非ログインシェル)起動
↓
1. /etc/bash.bashrc ← ユーザーの設定(エイリアス、プロンプト等)
↓
2. ~/.bashrc ← ユーザーの設定(エイリアス、プロンプト等)
↓
Bashプロンプト表示
(3)ログアウト時※ログインシェル
Bash(ログインシェル)終了時
↓
1. ~/.bash_logout ← ログアウト処理(temp削除など)