実務で頻出する「環境変数・シェル初期化」関連の用語を、一言定義+最小実例でサッと確認。
ログイン時やプロセス起動時にどう環境が構成されるかを理解し、トラブルシューティングや運用の安定化につなげます。
このページで達成できること
- 環境変数とシェル変数の違いを整理
PATHやHOMEといった基本環境を理解.bashrc・.profileなど初期化ファイルの役割を把握- 実務での落とし穴(sudoや非対話シェルでの環境違い)を防止
すぐ引けるミニ索引
| 用語 | 一言で | 代表コマンド |
|---|---|---|
| 環境変数(env var) | プロセスに引き継がれる設定 | env, printenv |
| シェル変数 | そのシェル内だけの変数 | set |
| export | 変数を環境に昇格 | export VAR=value |
| PATH | コマンド探索パス | echo $PATH |
| HOME | ユーザーのホームディレクトリ | echo $HOME |
| シェル初期化ファイル | ログインや対話シェルで読む設定ファイル | .bashrc, .profile |
| .bashrc | 対話シェル起動時に読む設定 | ~/.bashrc |
| .bash_profile / .profile | ログインシェルで読む設定 | ~/.bash_profile |
| /etc/profile | 全ユーザー共通の初期設定 | /etc/profile |
| sudo環境 | sudoで起動したときの環境の違い | sudo -E, env |
用語解説(繰り返しブロック)
環境変数(environment variable)
とは:プロセスに引き継がれるキーと値。PATHやLANGなど。
最小実例
export API_TOKEN=abc123
env | grep API_TOKEN
関連:export / シェル変数 / 初期化ファイル
落とし穴:VAR=value cmd の形式はそのコマンドだけに有効。
シェル変数
とは:そのシェル内だけで使える変数。環境には渡らない。
最小実例
VAR=local
bash -c 'echo $VAR' # 何も表示されない
関連:環境変数 / export
落とし穴:exportを忘れると子プロセスに引き継がれない。
export
とは:シェル変数を環境変数に昇格させる仕組み。
最小実例
VAR=demo
export VAR
bash -c 'echo $VAR' # demo
関連:シェル変数 / 環境変数
落とし穴:exportしても新しいシェルを開くと消える → 初期化ファイルで永続化。
PATH
とは:コマンドを探すディレクトリ一覧。
最小実例
echo $PATH | tr ':' '\n'
command -v ls
関連:環境変数 / export / which
落とし穴:sudoやcronではPATHが短縮されていることが多い。
HOME
とは:ユーザーのホームディレクトリを指す環境変数。
最小実例
echo $HOME
cd $HOME
関連:ログインシェル / 初期化ファイル
落とし穴:sudo時はHOMEがrootに切り替わる → 設定読み込みが変わる。
シェル初期化ファイル
とは:ログインや対話シェル開始時に読み込まれる設定ファイル。環境変数やエイリアスを定義する。
最小実例
cat ~/.bashrc | head -5
関連:.bashrc / .profile / /etc/profile
落とし穴:ログインシェルか非ログインシェルかで読むファイルが異なる。
.bashrc
とは:対話シェル起動時に読む個人用設定ファイル。aliasや関数などを定義。
最小実例
echo "alias ll='ls -alF'" >> ~/.bashrc
source ~/.bashrc
関連:シェル初期化ファイル
落とし穴:cronや非対話実行では呼ばれない。
.bash_profile / .profile
とは:ログインシェルで読み込まれる個人設定。PATHや環境変数の定義に使う。
最小実例
echo 'export PATH=$PATH:$HOME/bin' >> ~/.bash_profile
関連:.bashrc / /etc/profile
落とし穴:環境によって.bash_profileか.profileのどちらを読むか異なる。
/etc/profile
とは:全ユーザーに共通するログインシェル初期化ファイル。
最小実例
cat /etc/profile | grep PATH
関連:.bash_profile / 環境変数
落とし穴:ユーザー個別設定で上書きされる場合がある。
sudo環境
とは:sudo経由で実行すると環境変数が制限・書き換えられる仕組み。
最小実例
env | grep PATH
sudo env | grep PATH
関連:sudo -E / /etc/sudoers
落とし穴:sudo時はHOMEやPATHが変わる。環境依存バグの原因になりやすい。
運用の現場Tips
- 永続設定は初期化ファイルへ:一時exportではセッションをまたげない
- PATHの順序管理:先頭に置いたディレクトリの実行ファイルが優先される
- sudo実行の罠:環境が変わる前提でスクリプトを設計
- テスト方法:
env -i bash --noprofile --norcで「まっさら環境」を確認可能

