メインコンテンツへスキップ
中級10分で読める

環境変数の理解と活用

Linuxの環境変数の仕組みを理解し、PATH、HOME、LANGなどの重要な環境変数の設定と活用方法を実例を交えて詳しく解説します。

応用編環境変数PATHexportbashrc設定

🎯 この記事で学べること

  • 1
    環境変数とは何か、なぜ必要なのかを理解できます
  • 2
    PATH、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

🎮 理解度チェック

環境変数 PATH の役割は何でしょう?

環境変数を永続的に設定する

ターミナルを閉じても設定が残るようにするには、特別なファイルに書いておく必要があります。

.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 で表示してみてください!