「パスを通す」とは何か

Blog Single

ここではmacOSを想定していますが、Unix/Linux系のOSでも基本的に同様に動作します。

環境構築をする際、よくパスを通すという操作をよく目にする機会があると思います。
今回は、その「パスを通す」とは何かということについて説明していきます。

パスを通すとは

「パスを通す」とは、環境変数のコマンド検索パスに実行ファイルのパスを追加することです。

環境変数とはOSが提供している機能で、OS上で動作するプロセスがデータを共有するための仕組みです。
環境変数にはホームディレクトリやログインしているユーザーや様々なデータを保持しています。

環境変数をいじってみる

試しに環境変数を実際に操作していきましょう。
実際にターミナルを立ち上げて、実行してください。

環境変数を操作する際は、基本的にexportコマンドを使います。
exportコマンドとは、環境変数を設定したり、表示することができるコマンドです。

使い方

export 変数名=値

それでは実際に使っていきましょう。
環境変数を設定

# HOGEに"~~Documenments"という文字列を代入
export HOGE="~Documenments"

参照する際は$HOGEというように$をつけると参照できます。

次はechoコマンドという環境変数やシェル変数というものを出力するためのコマンドで変数の中身を表示させましょう。

$ echo $HOGE
~Documents

このようにecho $HOGEと打つと先ほど代入した値~Documenmentsが表示されたはずです。

これを用いてls $HOGEなど様々なコマンドと組み合わせることができます。

環境変数という名前の通り、プログラミング変数と同じようなものであるとわかったと思います。

先ほど、環境変数のコマンド検索パスという表現があったかと思いますが、先ほど見てきたような形でPATHという変数にコマンドを検索するパスが設定されています。

exportコマンドは、環境変数の設定だけでなく、表示することもできるので早速見て見ましょう。

$ export -p

実行結果(一部を表示)

declare -x HOGE="~Documents"
declare -x LANG="ja_JP.UTF-8"
declare -x PATH=":/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:"
eclare -x SHELL="/bin/bash"

先ほど設定したHOGEや言語の情報、そしてPATHといったように様々な値が格納されているのがわかるかと思います。

コマンド検索パス(PATH)

コマンド検索パスとは、コマンドが入力された際に、シェルが実行ファイルを探しに行くパスのことです。

PATHの中身を実際に見て見ましょう。

$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:

コロン(:)区切りで、設定されているパスが表示されていると思います。

そして、この中の/binの中身を見て見ましょう。

実行コマンド

$ ls /bin

実行結果(一部を表示)

ls cat mkdir chmod mv
cp pax csh ps
date pwd dd rm
df rmdir echo sleep

先ほどから使っていたようなコマンドもこのようにコマンド検索パスに設定されているパスに存在するコマンドをシェルが探して実行しています。

つまり、この環境変数のコマンド検索パスに実行ファイルが置かれているパスを追加することによって、シェルがそのパスを探しにいき、どこからでも実行できるようになるのです。

シェルとは、様々な入力をコンピュータに伝える役割をしているプログラムのことです。

実際にパスを通す

実際にパスを通していきましょう。
今回は、/opt/local/binをコマンド検索パスに追加します。
環境変数のPATHに値を追加するため、以下のようになります。

環境変数のPATHに追加

$ export PATH="$PATH:/opt/local/bin"

追加できているか確認

echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin::/opt/local/bin

/opt/local/binが表示されていればきちんと追加できています。

このようにすることによって、新たに/opt/local/binに格納されているコマンドもシェルが探しにいくようになります。

ただここで追加した環境変数の値は一時的なもので、ログインし直した際などに消えてしまうため、.bash_profileのようなシェルの設定ファイルに記述することによって、毎回ログインするたびに設定し直す必要が無くなります。

以上のようなことをパスを通すと言います。
お読みいただきありがとうございました。

Posted by MatsumotoKazuki
PHPやJavaで開発を行っているエンジニア。 LOLというゲームの試合を観戦するのが好きです。

Other Posts: