環境
OS:windows10, MacOS 10.14.6
背景
PATHに関する解説はたくさんありますが、常用するような設定ではないため毎回調べないといけないので簡潔に忘備録を残します
PATHを通すとは
PATHを通すとはプログラム名のみで実行できる環境を作ること。
/aaa/bbb/cccにあるcccを実行する際に、コマンドライン上に**/aaa/bbb/ccc**と入力しなければならないところ、cccと入力することで実行できるようにすることが目的。
これは、PATHという環境変数にディレクトリ登録することで可能となる
環境変数とは
環境変数とは、OSが使用出来る変数のことで、全体から参照出来る変数なのでそのOS内の全てのアプリケーションから参照する事が出来る
# 環境変数の確認コマンド
> printenv
# 出力結果にPATHというものがある
...
PATH=/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/MAMP/Library/bin...
...
# 環境変数の使用は通常の変数のように'$'を始めにつければ良い
> echo $PATH
# 出力結果
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/MAMP/Library/bin...
上記出力結果の通りPATHは次のように:
区切りで書かれており、左から優先的にパスの中を探して実行するようになっている。
実行したいプログラム名が入力されたとき、該当するパスになければ次のパスを探して、なければ次のパスを探すという流れ
# 現在の環境変数が前述の出力結果の場合、左から優先して探されるので次の順で探されることになる。
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Applications/MAMP/Library/bin...
# --------流れ--------
/usr/locak/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Applications/MAMP/Library/bin
...
環境変数の設定
一時的に環境変数を設定する(再起動で元通り)
上記のPATHに対してexportコマンドを使うことでパスを追加できる。
追加したらsourceコマンドで反映させる。
# $PATHを左に書けば、最優先で探してくれる
> export PATH = $PATH:{追加したいパス}/bin
# $PATHを右に書けば、最後に探す項目として追加できる
> export PATH={追加したいパス}/bin:$PATH
# (例)
# composerというパッケージ管理ツールのパッケージに対してPATHを設定したい場合
# composer/vendorのディレクトリにパッケージが管理されている
# composer自体は現在は/usr/local/bin/に配置されているとする
# => /usr/local/bin/composer/vendeorという状況
# ※'/usr/local/bin/' は '~' で表せる
# ※PATH設定の際は最後に`/bin`を書く必要がある
> export PATH=~/.composer/vendor/bin:$PATH
sourceコマンド実行でexportした結果を読み込み直すことができる
> source ~/.bash_profile
# or
> source ~/.zshrc
再起動後もPATHを通したままに設定する
OSにログインすると自動的に立ち上げられるファイルの中に次の2つがあり、このいずれかのファイルに上記export内容を追記することでOSログイン時にexportしてもらうようにする
・ bash:~/.bash_profile
・ zsh:~/.zshrc
※この場合OSログイン時に自動的にexportされるようになるため、sourceコマンドで読み込み直す必要はない
bashかzshどちらに追記するか
# 次のコマンドの出力内容の末尾が"bash"か"zsh"かでどちらのファイルに書き込むかを決める
> echo $SHELL
# 出力結果の末尾が次のように"bash"のとき、"~/.bash_profile"に書き込む
/bin/bash
# 出力結果の末尾が次のように"zsh"のとき、"~/.zshrc"に書き込む
/usr/local/bin/zsh
実際に追記する
# 設定ファイルに書き込む"~/.bash_profile"に書き込むとき
> vi ~/.bash_profile
# "i"でinsertして下記内容を追記し、"esc"でinsert終了し、":wq"で保存して閉じる
export PATH=~/.composer/vendor/bin
# zshの場合も同様