環境変数とは
環境変数は、値に名前をつけて保持しておくためのOSの機能でWindows・macOS・Linuxなど複数のOSにある共通の仕組みです。
環境変数は、名前と値で構成されておりOSやアプリケーションは、環境変数の名前を使って値を取得することでOSや複数のアプリケーション間で値を共有することが出来ます。
環境変数の例の1つとして「PATH」があります。
Zipファイルで圧縮されたアプリケーションをインターネットからダウンロードしてきた際などに「アプリケーションを解凍したディレクトリへのパスを通してください」といったような手順があったりしますが、これは環境変数PATHにアプリケーションのディレクトリを設定してくださいという意味になります。
環境変数PATHには、macOSやLinuxの場合は:区切り、Windowsの場合は;区切りで複数のディレクトリのパスが設定されています。
この環境変数PATHに設定されたディレクトリは、OSやアプリケーションによってファイル名のみ指定された際に探す先として利用されたりします。
例えば、コマンドラインでアプリケーション名を入力するだけで実行出来たりするのも環境変数PATHにアプリケーションの実行ファイルのディレクトリが設定されていることによるものです。
環境変数は、インストーラーによって自動で設定されることも多いですがアプリケーションによっては、手動で設定しなければならないようなものもあるので基本的な設定の仕方は理解しておいた方がいいかと思います。
環境変数の設定
macOS・Linux
macOSとLinuxの場合、環境変数の設定方法は基本的に同じです。
下記のコマンドで環境変数に値を設定することが出来ます。
export [環境変数名]=[値]
下記は、環境変数PATHに”~/app/”を現在の環境変数PATHに設定されている値の後ろに追加する例になります。
export PATH=$PATH:~/app/
ただし、上記のコマンドではターミナルを起動している間は有効になりますがOSを再起動したりターミナルを終了してしまうと設定が元に戻ってしまうため毎回環境変数を設定しなければなりません。
設定した環境変数を自動で有効にするには、シェルの設定ファイルへ環境変数を設定しておく必要があります。
使用しているシェルによって設定ファイルが異なるので、下記コマンドで使用しているシェルを確認します。
echo $SHELL
コマンドの実行結果が「/bin/bash」であった場合、bashの設定ファイル~/.bashrc
か~/.bash_profile
のどちらかに環境変数を設定します。
コマンドの実行結果が「/bin/zsh」であった場合、zshの設定ファイル~/.zshrc
か~/.zshenv
のどちらかに環境変数を設定します。
設定ファイルは、viやnanoなどのテキストエディタで作成するか既存のファイルがある場合は開いて、必要な環境変数をexport [環境変数名]=[値]
の形式で記述していきます。
下記のようにコマンドを実行することでコマンドで設定ファイルへ書き込むことも出来ます。
echo "export PATH=$PATH:~/app/" >> "~/.bashrc"
Windows
Windowsの場合、GUIやコマンドプロンプト、 PowerShellから設定を行うことが出来ますが、ここではPowerShellから設定する方法を説明します。
下記のコマンドをPowerShellで実行することで環境変数に値を設定することが出来ます。
[System.Environment]::SetEnvironmentVariable([環境変数名], [値], "Machine")
下記は、環境変数Pathに”C:¥app”を現在の環境変数Pathに設定されている値の後ろに追加する例になります。
$path = [System.Environment]::GetEnvironmentVariable("Path", "Machine")
$path += ";c:¥app"
[System.Environment]::SetEnvironmentVariable("Path", $path, "Machine")
上記の例では、[System.Environment]::GetEnvironmentVariable("Path", "Machine")
で現在の環境変数Pathの値を取得しています。
その後、$path += ";c:¥app"
で現在の環境変数の後ろに”C:¥app”を結合した後で環境変数に値を設定しています。
Comment