当サイトはPR広告を利用しています。

【簡単】MacOSで環境変数を設定する方法

2024年2月12日

はじめに

Windowsでは環境変数をGUIで設定できますが、MacOSはGUIの設定画面が用意されていないため環境変数設定用ファイルを直接編集して設定する必要があります。

サードパーティ製のツール(たとえばEnvPane)をインストールすればGUIでの設定も可能になりますが、インストールしなくても簡単に設定できるので、この記事ではファイルを直接修正して行う環境変数の設定方法をお伝えします。

前提知識

環境変数とはOS全体で利用できる変数のことを意味します。

どのタイミングで環境変数が設定されるのかはファイルによって異なります。

まずはあなたがどのファイルを編集すべきなのか理解してもらうために、前提となる知識を本章でお伝えします。とりあえず設定できれば良いという人は「設定方法」の章まで飛んでもらってOKです。

重要な単語は以下です。それぞれ簡単に説明します。

  • シェル
  • ログインシェル
  • インタラティブシェル

シェル

OSに対して命令を与えるための機能です。コマンドとOSの動作が紐づけられており、人が理解できる形で表現されたコマンドを、OSが分かる言語に翻訳してOSに伝えてくれます。

シェルの語源は貝殻。OSの機能の外側、つまりインターフェースとして機能することから名付けられています。

シェルにはbashやzsh、kshなど色々な種類があり、環境変数設定用ファイルの名称や設定方法はシェルによって異なります。

ログインシェル

OSなどのシステムにログインした時に実行されるシェルです。PCを起動した時にログイン画面が表示され、ユーザー名とパスワードの入力を求められると思いますが、その画面で正しいユーザー名とパスワードを入力しログインしたタイミングでログインシェルが起動しOSの挙動に必要なもろもろの設定をします。環境変数はログインシェルにて設定することが一般的です。

インタラクティブシェル

ユーザーからのコマンド入力を受け付け、その結果を画面で表示してくれるシェルです。Macにおけるターミナル、Windowsにおけるコマンドプロンプトで動作するシェルです。ログインシェルはログインに応じて自動で実行されるシェルであるのに対し、インタラクティブシェルの場合は意図的にインタラクティブシェルが動作するソフトウェアを起動させる必要があります。

ログインシェルではなくインタラクティブシェル用に環境変数を設定することも可能です。

前提知識まとめ

シェルとは人が理解できるコマンドをOSに伝えてくれる機能をもつソフトウェアであり、システムログイン時に動くログインシェルと、ユーザーによる入力を受けて動作するインタラクティブシェルがあります。

OS自体に環境変数を設定したいのであればログインシェルで読み込まれるファイルに環境変数を設定、インタラクティブシェルで利用できれば良いのであれば、インタラクティブシェル用の設定ファイルに環境変数を設定します。

Catalina以降のMacOSのデフォルトのログインシェルとインタラクティブシェルはzshで、それよりも前のバージョンではbashでした。大半の方はCatalina以降のOSを利用されていると思いますので、この記事ではzsh用の環境変数設定方法を説明します。

設定方法

環境変数を設定する場合、ログインシェルの起動時に設定が完了することで、ターミナルを起動しなくても環境変数が設定される状態になります。またログインシェルで設定された環境変数はインタラクティブシェルでも有効です。

ここから説明する方法はログインシェルが起動した際に読み込まれるファイルを編集し、環境変数をログインと同時に設定できるようにする方法の解説です。以下の手順に従って設定してください。

  1. Launchpadからターミナルを開く(デフォルトだと"その他"の中に入っているはず)
  2. ターミナルで「ls -a」と入力した後にEnterキーを押し、出力結果に.zshrcというファイルがあるか確認する
  3. (手順2で.zshrcがなかった場合のみ)「touch .zshrc」と入力した後にEnterキーを押し、新しく.zshrcファイルを作る
  4. 「open .zshrc」と入力し、.zshrcファイルをテキストエディタで開く
  5. 以下の書き方で環境変数を設定する。
    export 環境変数名=環境変数に設定したい値
    例: export TEST_ENV=testing
  6. 環境変数を現在のシェルでも有効になるように「source .zshrc」を実行する(sourceは指定したファイルを実行するコマンド)
  7. 設定されたか以下のコマンドで確認する
    echo $環境変数名(今回の場合は echo $TEST_ENV)

無事設定できていることが確認できました。

ちなみに今回はターミナルを起動した後に環境変数設定用のファイルを編集したのでsourceコマンドを使って手動で実行しましたが、次にターミナルを起動する時やOSにログインする時には自動で.zshrcが読み込まれますのでsourceコマンドを実行する必要はありません。

注意点

注意点を述べます。環境変数の中には.zshrc以外にもファイルが存在します。またそれらのファイルによって環境変数が設定されている場合があります。例えばPATHという環境変数がありますが、すでに値が設定されています。「PATHに新たなフォルダーパスを追加したい」といった、環境変数の元の値に新たに何か別の値を追加で設定したい場合、.zshrcには以下のような記述をしてください。

export 環境変数名=環境変数に設定したい値:$環境変数名

例として、先ほど挙げたPATHという環境変数に新たなフォルダーパス「/Library/Java/」を追加したいときの設定を載せます。