「パスを通す」とは何か

ここでは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
のようなシェルの設定ファイルに記述することによって、毎回ログインするたびに設定し直す必要が無くなります。
以上のようなことをパスを通すと言います。
お読みいただきありがとうございました。