🎯 この記事で学べること
- 1環境変数とは何か、なぜ必要なのかを理解できます
- 2PATH、HOME、LANGなど重要な環境変数の役割を把握できます
- 3環境変数の確認・設定・削除方法をマスターできます
- 4.bashrcや.bash_profileを使った永続的な設定方法が身につきます
- 5セキュリティを考慮した環境変数の管理方法を学べます
読了時間: 約10分
はじめに
こんにちは!今日は「環境変数」について学びましょう。
環境変数って聞くと難しそうですが、実は私たちの日常生活にも似たようなものがあるんです。例えば、家の住所、電話番号、お気に入りのお店の場所...これらは「覚えておくと便利な情報」ですよね。
Linux の環境変数も同じで、システムが「覚えておくと便利な設定情報」なんです!
環境変数って何?
環境変数は、Linux システムが動作するときに参照する「設定情報を入れた箱」のようなものです。
例えば:
- HOME = あなたの家(ホームディレクトリ)の場所
- PATH = コマンドを探す場所のリスト
- LANG = 使用する言語(日本語や英語など)
これらの情報をシステムが覚えていることで、毎回指定しなくてもスムーズに作業できるんです!
🎮 理解度チェック
環境変数を見てみよう
すべての環境変数を表示
# 設定されているすべての環境変数を見る
$ env
# または
$ printenv
# アルファベット順で見やすく
$ env | sort
たくさん出てきて驚きましたか?でも心配いりません。重要なものから覚えていけば大丈夫です!
特定の環境変数だけを見る
# HOME(ホームディレクトリ)を確認
$ echo $HOME
/home/username
# 現在のユーザー名を確認
$ echo $USER
username
# 使用言語を確認
$ echo $LANG
ja_JP.UTF-8
環境変数を使うときは、変数名の前に $
マークを付けます。これが「変数の中身を見せて!」という合図になります。
重要な環境変数たち
PATH - コマンドの通り道
PATH は最も重要な環境変数の一つです。コマンドを実行するとき、Linux はこの PATH に書かれた場所を順番に探していきます。
# PATH の中身を見る
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin
# 見やすく表示(縦に並べる)
$ echo $PATH | tr ':' '\n'
/usr/local/bin
/usr/bin
/bin
/usr/local/sbin
/usr/sbin
まるで「お店を探すときの巡回ルート」みたいですね!
HOME - あなたの家
# ホームディレクトリを確認
$ echo $HOME
/home/username
# ホームに移動(3つとも同じ意味)
$ cd
$ cd ~
$ cd $HOME
LANG - 言語設定
# 現在の言語設定
$ echo $LANG
ja_JP.UTF-8
# 一時的に英語で実行
$ LANG=C date
Wed Jan 8 10:30:45 JST 2025
# 日本語で実行
$ LANG=ja_JP.UTF-8 date
2025年 1月 8日 水曜日 10:30:45 JST
環境変数を設定してみよう
一時的な設定(今のターミナルだけ)
# 新しい環境変数を作る
$ export MYNAME="太郎"
$ echo $MYNAME
太郎
# 既存の変数に追加
$ export PATH=$PATH:/home/user/mybin
export
は「この変数を他のプログラムからも見えるようにして!」という命令です。
コマンド実行時だけの設定
# このコマンドだけ DEBUG モードで実行
$ DEBUG=true ./myprogram.sh
# このコマンドだけ英語で実行
$ LANG=C man ls
🎮 理解度チェック
環境変数を永続的に設定する
ターミナルを閉じても設定が残るようにするには、特別なファイルに書いておく必要があります。
.bashrc に設定を追加
# .bashrc ファイルを編集
$ nano ~/.bashrc
# ファイルの最後に追加
export EDITOR=vim
export MYAPP_HOME=/opt/myapp
export PATH=$PATH:$MYAPP_HOME/bin
# 設定を反映
$ source ~/.bashrc
# または
$ . ~/.bashrc
.bashrc を編集するときは慎重に!間違えるとターミナルが正常に起動しなくなることがあります。編集前にバックアップを取っておきましょう:cp ~/.bashrc ~/.bashrc.backup
どのファイルに書けばいい?
- ~/.bashrc : 新しいターミナルを開くたびに読み込まれる
- ~/.bash_profile : ログイン時に一度だけ読み込まれる
- ~/.profile : より汎用的な設定ファイル
通常は ~/.bashrc に書いておけば OK です!
開発でよく使う環境変数
プログラミング言語の設定
# Python
export PYTHONPATH=/home/user/mylib:$PYTHONPATH
# Java
export JAVA_HOME=/usr/lib/jvm/java-11
export PATH=$PATH:$JAVA_HOME/bin
# Node.js
export NODE_ENV=development
データベース接続
# 開発環境の設定
export DB_HOST=localhost
export DB_PORT=5432
export DB_NAME=myapp_dev
# 本番環境では違う値を設定
export DB_HOST=prod.example.com
セキュリティに気をつけよう!
やってはいけないこと ❌
# パスワードを直接書かない!
export DB_PASSWORD=my_secret_password # 危険!
安全な方法 ✅
# .env ファイルを作成
echo "DB_PASSWORD=my_secret_password" > .env
# .gitignore に追加(Git に含めない)
echo ".env" >> .gitignore
# 必要なときだけ読み込む
source .env
便利なテクニック
デフォルト値を使う
# EDITOR が未設定なら vim を使う
$ ${EDITOR:-vim} myfile.txt
# PORT が未設定なら 3000 を使う
$ PORT=${PORT:-3000}
環境変数が設定されているか確認
# 設定されていなければメッセージを表示
$ echo ${MYVAR:?"エラー: MYVAR を設定してください"}
条件によって設定を変える
# マシンによって設定を変える
if [[ "$(uname)" == "Darwin" ]]; then
# Mac の場合
export EDITOR=nano
else
# Linux の場合
export EDITOR=vim
fi
🎮 理解度チェック
トラブルシューティング
PATH がおかしくなったとき
# 最小限の PATH に戻す
$ export PATH=/usr/local/bin:/usr/bin:/bin
# 重複を削除
$ export PATH=$(echo $PATH | tr ':' '\n' | awk '!x[$0]++' | tr '\n' ':')
環境変数が反映されないとき
# 現在のシェルで再読み込み
$ source ~/.bashrc
# 新しいシェルで確認
$ bash
$ echo $MYVAR
プロジェクトごとの環境変数管理
# プロジェクトディレクトリに .envrc を作成
$ cat > ~/myproject/.envrc << 'EOF'
export PROJECT_NAME=myapp
export PROJECT_ENV=development
export API_URL=http://localhost:3000
EOF
# プロジェクトに入ったら読み込む
$ cd ~/myproject
$ source .envrc
direnv というツールを使うと、ディレクトリに入ったときに自動的に .envrc を読み込んでくれます。とても便利ですよ!
📝 まとめ
今日は環境変数について学びました!
- 環境変数はシステムの「設定情報を入れた箱」
$変数名
で中身を確認、export
で設定- PATH、HOME、LANG などの重要な環境変数がある
- ~/.bashrc に書けば永続的に設定できる
- セキュリティに注意して、パスワードは直接書かない
環境変数を使いこなせると、Linux での作業がぐっと効率的になります。まずは echo $PATH
から始めて、少しずつ自分の環境をカスタマイズしていきましょう!
次はシェルスクリプトの基礎で、環境変数を活用したスクリプトの書き方を学んでみませんか?
今日の練習: まず env | grep HOME
で HOME 関連の環境変数を確認してみましょう。次に、自分の名前を入れた環境変数 export MYNAME="あなたの名前"
を作って、echo $MYNAME
で表示してみてください!