環境変数・PATH応用入門|ターミナル設定を便利にする方法|UNIX Cafe

当サイトでは、コンテンツの一部に広告を掲載しています。
環境変数・PATH応用入門|ターミナル設定を便利にする方法|UNIX Cafe

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 ~
hello

hello とだけ打って実行できるのは、
PATH の中から hello を見つけてくれているからです。

まとめ|./hello と hello の違い

実行方法意味
./hello今いるディレクトリの hello を実行
helloPATH の中から hello を探して実行

この違いが理解できると、UNIX や Linux の仕組みが一気に身近になります。

ミナちゃん

PATH に入れると、コマンドみたいに使えるんですね。

さらに学びたいあなたへ

📘 用途ごとに選ぶ Linux のおすすめ本

あわせて読みたい
レベル・用途別おすすめ Linux 本リスト|UNIX Cafe UNIX Cafe | 第65回 Linux の世界には、「はじめて触る人」「コマンドを覚えはじめた人」「サーバーに挑戦したい人」と、さまざまな段階があります。そんなときに、自分...
よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

のいのアバター のい UNIX Cafe 編集部

UNIX Cafe は、むずかしい言葉をできるだけ使わず、物語を読むような気持ちで気軽に学べる場所です。
プログラミングは、アイデアをコンピューターに伝えるための「ことば」。
簡単な単語と文法を覚えることで、誰でもターミナルから便利なコマンドを使えるようになります。
コーヒーを片手に立ち寄るような気持ちで、やさしいプログラミングの世界を、
そっとのぞいてみてください。

目次