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

当ページのリンクには広告が含まれています。
環境変数・PATH応用入門|ターミナル設定を便利にする方法

UNIX Cafe | 第18回

export と PATH で“カフェの味”を共有しよう!

目次

今日のテーマ「環境変数」ってなんだろう?

ミナちゃん

ユニ先生、環境変数ってよく聞きますが、なんだか難しそうです…。

ユニ先生

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

ミナちゃん

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

ユニ先生

“今日のおすすめ”や“材料の置き場所”をメモして共有する感じだね☕

環境変数は “カフェのレシピメモ”

ミナちゃん

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

ユニ先生

例えば、ログを保存する場所や、言語設定、
プログラムをどのフォルダから探すか……
そういった“お店のルール”を決めておけるんだよ。

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 を実行
helloPATH の中から hello を探して実行

この違いがわかると、UNIX のしくみがぐっと身近になります☕️

ミナちゃん

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

ユニ先生

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

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次