
UNIX Cafe | 第18回
今日のテーマ「環境変数」ってなんだろう?
ミナちゃんユニ先生、環境変数ってよく聞きますが、なんだか難しそうです…。



大丈夫。難しく見えるけれど、とても便利な仕組みなんだよ。
環境変数は、シェルやプログラムに“設定情報”を教える、小さなメモのようなものなんだ。



メモ…? カフェで言うと?



“今日のおすすめ”や“材料の置き場所”をメモして共有する感じだね☕
環境変数は “カフェのレシピメモ”



環境変数って、どんなことが書けるんですか?



例えば、ログを保存する場所や、言語設定、
プログラムをどのフォルダから探すか……
そういった“お店のルール”を決めておけるんだよ。
bash
$ echo $HOME
home/username
echo $LANG
ja_JP.UTF-8


なるほど! echo $LANG って打つと、ちゃんと設定されている言語が表示されるんですね!
コマンドみたいに扱えるなんて、おもしろいです~!



そうそう。LANG は“この端末は何語で話す?”って教えてくれるメモなんだ。
環境変数は $名前 で呼び出して、気軽に中身を見られるんだよ☕



Linux:/home/username/macOS:/Users/username/ の部分は自分の環境に合わせて変更してくださいね。
exportで “レシピ” をみんなに共有する



じゃあ、新しい環境変数はどうやって作るんですか?



export を使うんだ。
“この設定をみんなで使えるようにするよ”って宣言するイメージだね。
/home/username/この部分を自分のユーザー名に書き換えてください。
bash
$ export CAFE_DIR="/home/username/cafe"
echo $CAFE_DIR
/home/username/cafe


これをセットしたら、どこでも $CAFE_DIR が使えるんですね☕



Linux:/home/username/macOS:/Users/username/ の部分は自分の環境に合わせて変更してくださいね。
PATHは “キッチンへの地図”



PATH って、よく聞くけど…?



PATHは、プログラムを探すときの“地図”なんだ。
ここにフォルダを追加しておけば、どこからでもスクリプトを呼び出せるよ。
bash
$ export PATH="$PATH:/Users/noi/scripts"


なるほど…
“スクリプト置き場”への地図を追加するんですね。
どこからでも呼び出せるなんて便利!



上手く動いたみたいだね。
でもそのままだと、ターミナルを閉じたら設定が消えてしまうよ。
シェルスクリプトで PATH を追記する



~/scripts フォルダの中に入れたプログラムを、どこからでも実行できるようにしたいです☕
でも、.zshrc を手動で編集するのはちょっと不安で……



大丈夫。
まずは、PATH を .zshrc に自動で追加してくれるシェルスクリプトを作ってみよう。これなら初心者さんでも安心だよ。
#!/bin/zsh
TARGET='export PATH="$PATH:$HOME/scripts"'
# すでに書かれていなければ追記
if ! grep -Fxq "$TARGET" ~/.zshrc; then
echo "$TARGET" >> ~/.zshrc
echo "✅ PATH を追加しました"
else
echo "ℹ️ すでに設定されています"
fi



おお〜!
これを実行するだけで、設定ファイルに書き足してくれるんですね☕



そうだよ。初心者さんでも安心して環境を整えられるんだ。
設定を反映する



追記できたら、もう使えるんですか?



あと一歩だよ。.zshrc を読み込み直すことで、新しい設定が反映されるんだ。
bash
$ source ~/.zshrc


なるほど〜!
これで PATH が更新されるんですね✨
C言語で動作確認してみよう



PATH が本当に働いているか、どうやって確かめるんですか?



じゃあ、C言語の小さなプログラムを作って試してみよう。
hello.c を作ろう!



まずは scriptsフォルダに移動します。
bash
$ cd scripts


エディターで hello.c を作成します。
#include <stdio.h>
int main(void) {
printf("Hello, C language!\n");
return 0;
}



ファイルを保存したらコンパイル!
bash
$ gcc hello.c -o hello


gcc を使ってコンパイルすればOKです。
カレントディレクトリで動かしてみる
bash
$ ./hello


わぁ!
『Hello, C language!』って出ました☕✨



うん、./hello は
今いる場所の hello を実行するって意味なんだ。
どこからでも実行できる!



じゃあ、別の場所に移動して実行してみますね!
$ cd ~
hello


動いた!
今は ~/scripts にいないのにすごい!



それはね、.zshrc に追記したおかげで、
PATH の中から hello を見つけて実行してくれているんだ。
まとめ



./hello と hello の違いを紹介するね!
| 実行方法 | 意味 |
|---|---|
| ./hello | “今の場所” にある hello を実行 |
| hello | PATH の中から hello を探して実行 |



なるほど〜!
PATH に登録しておけば、コマンドみたいに使えるんですね☕✨



そのとおり。
PATH に入れると、どこからでも同じように動いてくれる。
Linux や macOS を使う上で、とっても大事な仕組みなんだ。






