エンジニアなら誰しもコマンドを入力したら command not found
のエラーが出て
PATH(パス)を通した経験があるのではないでしょうか。
この「PATHを通す」とは具体的に何なのかまとめました。
PATHを通すとは何か?
PATH という環境変数に実行したいコマンドのプログラムの場所を追加して、
コマンド名のみでプログラムを実行できるようにすることです。
環境変数のPATHとは何か?
実行するコマンドのプログラムが格納されているディレクトリを保持する変数です。
では実際に 環境変数PATH が保持する値を見てみましょう。
$ echo $PATH
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
環境変数は複数の値をコロン(:) で区切るので、環境変数PATH は以下の5つのディレクトリを保持していることになります。
1. /usr/local/bin
2. /usr/bin
3. /bin
4. /usr/sbin
5. /sbin
コマンドを実行すると、プログラムの実行者であるOSは環境変数PATHに保持されてるディレクトリの中からコマンドのプログラムを探します。
gitコマンドを例に確認してみましょう。$ which git
を実行するとgitのプログラムが格納されているファイルのパスを表示してくれます。
$ which git
/usr/bin/git
そして $ git -v
コマンドを実行するとPCにインストールされているgitのバージョンを確認することができます。
このときOSは環境変数PATHに保持されているディレクトリに対して順番にgitのプログラムを探しに行きます。
1つ目の /usr/local/bin
になければ、2つ目の /usr/bin
を見に行き、プログラムがあればコマンドの通りgitのバージョンが表示されるでしょう。
もし、どのディレクトリにもgitのプログラムがなければ command not found: git
などのエラーが表示されます。
PATHの通し方
PATHの通し方は2つあるので、それぞれ紹介します。
シェルの設定ファイルでPATHを通したいディレクトリを追加する
PATHを通すためにはコマンドをOSに伝えてくれるシェルに対して、設定ファイルに追記をする必要があります。
使っているシェルがzshなら.zshrcファイルに、bashなら.bash_profileに対して以下の追加をします。
export PATH=$PATH:<PATHに追加したいディレクトリのpath>
.zshrc や .bash_profile はシェルが起動したときに読み込まれるファイルなので、
ここに追記した内容は環境変数PATHにも反映され、PATHが通ります。
PATHを通したいコマンドを既にPATHが通っているディレクトリに移動する
PHPのパッケージ依存管理ツールのComposerをインストールする手順がこのやり方を行います。
公式サイト で $ sudo mv composer.phar /usr/local/bin/composer
というコマンドを実行するよう促しています。
ダウンロードしたcomposer.pharというファイルを既にPATHが通っている/usr/local/bin/
というディレクトリに移動することでcomposerコマンドのPATHを通してます。
まとめ
ここまで読んで頂ければ何となくで理解していた「PATHを通す」とは何かを理解できたかと思います。
環境構築やエラー対応でPATHを通せることは必要不可欠ですし、後輩から質問されたときに説明できるようになれば幸いです。
コメント