初心者がMacの環境変数を学んだときのメモ

Featured image of the post

概要

プログラミングを学習していると、ときどき設定が必要な環境変数。

いつも言われるがまま操作して「動くようになったからOK」っていう感じ🥲

疑問点
  • 環境変数って何?
  • どうやって設定するの?

💡
ここではMacでの説明をメインにする

環境変数とは

ざっくり解説

環境変数とは「プログラムがあるパス」を書いておくメモ的なもの

環境変数にメモしておくと毎回フルパスで指定する必要がなくて楽ちん😊

環境変数を設定していない場合

最初にcdコマンドが必要😫

👇「Users/AAA」に移動する
cd Users/AAA

👇「aaa1.txt」を表示する
cat aaa1.txt

環境変数「Users/AAA」を設定している場合

cdコマンドが不要😊どこからでもいきなりアクセスできる✅

👇「aaa1.txt」を表示する
cat aaa1.txt

💡
環境変数に登録されているパスは、どこからでも実行できるようになる。

イメージ図

通常、パスを指定せずアクセスできるのはカレントディレクトリ(今いるディレクトリ)のファイルのみ✅

例:「Users/AAA」 から 「Users/BBB」にはアクセスできない。

Users
  |----AAA(カレントディレクトリ)
  |      |-----aaa1 👈アクセス可能
  |      |-----aaa2 👈アクセス可能
  |      |-----aaa3 👈アクセス可能
  |      |-----aaa4 👈アクセス可能
  |
  |----BBB
  |      |-----bbb1 👈アクセス不可能(一応パスを指定すればアクセスできるけど面倒🥲)
  |      |-----bbb2 👈アクセス不可能(一応パスを指定すればアクセスできるけど面倒🥲)
  |      |-----bbb3 👈アクセス不可能(一応パスを指定すればアクセスできるけど面倒🥲)
  |      |-----bbb4 👈アクセス不可能(一応パスを指定すればアクセスできるけど面倒🥲)

しかし環境変数に登録しているパスはどこからでもアクセスできる✅

例:「Users/AAA」 から 「Users/BBB」にアクセスできる。

Users
  |----AAA(カレントディレクトリ)
  |      |-----aaa1 👈アクセス可能
  |      |-----aaa2 👈アクセス可能
  |      |-----aaa3 👈アクセス可能
  |      |-----aaa4 👈アクセス可能
  |
  |----BBB(環境変数に登録しておく)
  |      |-----bbb1 👈アクセス可能
  |      |-----bbb2 👈アクセス可能
  |      |-----bbb3 👈アクセス可能
  |      |-----bbb4 👈アクセス可能

環境変数の設定

登録
【方法1】永続的に環境変数を登録する(よく使う)

この方法はターミナルを閉じても登録したものが残る

以下の3ステップで登録できる⭐️

  • まずは自分が使っているシェルを確認する✅

    echo $SHELLを実行すれば使用中のシェルが分かる。

    • /bin/zsh → zshシェル
    • /bin/bash → bashシェル
    💡
    シェルによって次の作業がちょっと変わる

  • 環境変数用のファイルを編集する✅
    • シェルによって編集するファイルが変わる。
      • zshシェルなら/Users/ユーザ名/.zshrcを編集する
      • bashシェルなら/Users/ユーザ名/.bash_profileを編集する

    ファイルの中身

    👇PATHのあとに設定したいパスを書く。複数あれば:で区切る。
    export PATH="/Applications/MAMP/bin/php/php7.4.16/bin:/opt/homebrew/bin:$PATH"
    【補足】ファイルの編集方法

    2つの方法がある。

    • テキストエディターを使う方法 👈初心者向き(?)
      • ファイルをメモ帳やVSCodeで開いて編集する。
      • 普通のテキストファイルと同じように編集できる。
      • ただし.bash_profileと.zshrcは隠しファイルなので注意。

    • vimコマンドを使う方法 👈使えるならこっちの方がいい
      • vim ~/.bash_profileコマンドまたはvim ~/.zshrcコマンドで編集する。

    【補足】最後に$PATHが必要

    上記の例でも最後に:$PATHと書いている。

    これは元から定義されている環境変数を表している✅

    💡
    最後に:$PATHがないと元からあった環境変数が消えてしまう。

  • その後変更内容を反映させる✅
    • ターミナルを再起動する。
    • またはsource .bash_profilesource .zshrcコマンドを実行する。
    💡
    どちらかの方法でOK

【方法2】一時的に環境変数を登録する(あまり使わない?)

この方法はターミナルを閉じると登録したものは削除されてしまう。

exportコマンドを使う✅

export PATH=$PATH:/Users/BBB

登録後のイメージ図

Users
  |----BBB(環境変数に登録しておく)
  |      |-----bbb1 👈どこからでもアクセス可能
  |      |-----bbb2 👈どこからでもアクセス可能
  |      |-----bbb3 👈どこからでもアクセス可能
  |      |-----bbb4 👈どこからでもアクセス可能

確認

echo $PATHコマンドを実行する。

Image in a image block

  • 設定済みの環境変数が表示される。
  • 複数ある場合は:で区切られる。

上記の例では以下の8個の環境変数が設定されいている✅

/Applications/MAMP/bin/php/php7.4.16/bin
/opt/homebrew/bin
/usr/local/bin
/System/Cryptexes/App/usr/bin
/usr/bin
/bin
/usr/sbin
/sbin

削除

.zshrcまたは.bash_profileを編集して不要な環境変数を削除するだけ✅

💡
登録のときと同じ要領で削除できる

優先順位

「同じ名前の実行ファイル」があったら以下の順で実行ファイルを探す✅

  • カレントディレクトリにある実行ファイル
  • 1つ目の環境変数にある実行ファイル
  • 2つ目の環境変数にある実行ファイル
  • 3つ目の環境変数にある実行ファイル
  • ………

💡
カレントディレクトリにあるファイルが一番優先される!

参考サイト