
UNIX Cafe | 第18回
環境変数と PATH|ターミナルが便利になる仕組みをやさしく理解しよう
Linux や macOS のターミナルを使っていると、
「なぜ、このコマンドはどこからでも実行できるんだろう?」
と不思議に思うことがあります。
その裏側で働いているのが、環境変数 という仕組みです。
環境変数は、
シェルやプログラムに対して
「どこを使うか」「どう動くか」を伝える 設定メモ のような存在です。
この記事では、
- 環境変数とは何か
exportの役割PATHがなぜ重要なのか- 設定を安全に反映する方法
を、実際に動かしながら やさしく整理していきます。
今日のテーマ「環境変数」とは?
ミナちゃん環境変数って、結局なにをしているんだろう?
環境変数とは、
ターミナルやプログラムが参照する共通の設定情報 です。
たとえば、
- ホームディレクトリの場所
- 使っている言語設定
- コマンドを探しに行く場所(PATH)
といった情報が、環境変数として保存されています。
これらはファイルではなく、
ターミナルの中に用意された“見えないメモ” のようなものです。
環境変数は「カフェのレシピメモ」
環境変数は、カフェで例えると
スタッフ全員が共有しているレシピメモ に近い存在です。
- 材料の置き場所
- 作業のルール
- 今日のおすすめ
こうした情報を、
毎回口頭で説明しなくても済むようにしてくれます。
実際に、今設定されている環境変数を見てみましょう。
echo $HOME
echo $LANG$HOME:自分のホームディレクトリ$LANG:ターミナルで使われている言語設定
$変数名 の形で、
中身をそのまま確認できる のが環境変数の特徴です。
※
Linux:/home/username/
macOS:/Users/username/
は、各自の環境に合わせて読み替えてください。
export で「設定を共有する」
新しい環境変数を作るときに使うのが export です。
export CAFE_DIR="/home/username/cafe"
echo $CAFE_DIRこの操作は、「この設定を、これから起動するプログラムにも伝えます」という宣言にあたります。
export された環境変数は、
同じターミナル内で実行するコマンドから 共通で参照 できます。
PATH は「コマンドを探すための地図」
PATH は、コマンドを探しに行くフォルダの一覧 を管理する環境変数です。
echo $PATHとすると、複数のディレクトリが : 区切りで表示されます。
ここにフォルダを追加すると、
その中にあるプログラムを どこからでも実行 できるようになります。
export PATH="$PATH:/Users/name/scripts"これは、これまでの PATH に、新しい場所を追加するという意味です。
設定は .zshrc に保存しよう
ここまでの export は、
ターミナルを閉じると消えてしまう一時設定 です。
そこで、設定を永続化するために~/.zshrc に追記します。
初心者でも安心して使えるよう、
重複を防ぐシェルスクリプト を用意します。
#!/bin/zsh
TARGET='export PATH="$PATH:$HOME/scripts"'
if ! grep -Fxq "$TARGET" ~/.zshrc; then
echo "$TARGET" >> ~/.zshrc
echo "✅ PATH を追加しました"
else
echo "ℹ️ すでに設定されています"
fi
このスクリプトを使えば、
- すでに書かれているか確認
- なければ自動で追記
を安全に行えます。
設定を反映する
.zshrc を編集したあとは、設定を読み込み直します。
source ~/.zshrcこれで、新しい PATH が有効になります。
C言語で PATH の効果を確認する
PATH が正しく働いているか、
小さな C プログラムで確認してみましょう。
hello.c
#include <stdio.h>
int main(void) {
printf("Hello, C language!\n");
return 0;
}コンパイルします。
gcc hello.c -o hello実行方法の違いを確認する
カレントディレクトリで実行
./helloこれは「今いる場所にある hello を実行する」 という意味です。
別の場所から実行
cd ~
hellohello とだけ打って実行できるのは、
PATH の中から hello を見つけてくれているからです。
まとめ|./hello と hello の違い
| 実行方法 | 意味 |
|---|---|
./hello | 今いるディレクトリの hello を実行 |
hello | PATH の中から hello を探して実行 |
この違いが理解できると、UNIX や Linux の仕組みが一気に身近になります。



PATH に入れると、コマンドみたいに使えるんですね。
さらに学びたいあなたへ
📘 用途ごとに選ぶ Linux のおすすめ本







