PATHを設定する

最近Macを使い始めました。今ではWindowsだったので、分からないことだらけです。使い込んでいきたいと思います。
今回はPATHの設定のメモです。

PATHって?

PATHを設定することで、例えばmysqlクライアントを起動する際に、「/usr/local/mysql/bin/mysql」と指定するところを、「mysql」と指定するだけで起動できるようになります。
これは、コマンドを実行した際に、シェルがPATHに登録されているディレクトリからそのコマンド(実行形式ファイル)を探すためです。登録されているディレクトリを全て探してもコマンドが見つからない場合は次のようなエラーがでます。

luke$ mysql
-bash: mysql: command not found

現在のPATHを確認する方法

現在の設定は次のように「$PATH」変数を見ることで確認できます。(envコマンドだと現在の全ての環境変数の設定をみることができます)

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

PATHの設定

現在のPATHに「/usr/local/mysql/bin/」を設定するにはexportコマンドを使います。

export PATH="/usr/local/mysql/bin/:$PATH"


これで、mysqlと打てば、mysqlクライアントを起動できます。
しかし、これだとシェルを起動するたびにこのコマンドをうつことになるので、「export 〜」を「.bash_profile」か「.bashrc」ファイルに登録し、そのファイルをホームディレクトリにおきます。これらのファイルには次の役割があります。

bash_profileは、ログイン時だけに実行される設定ファイルだ。ここでは、環境変数の設定などが行われる(内容はディストリビューションによって異なる)。

 .bashrcは、ログイン時に.bash_profileから読み込まれるという形で実行されるが、別のシェルが起動したときにも実行される。例えば、ログイン後にstartxコマンドでX Winodw Systemを起動し、ktermを実行したときも.bashrcは実行されることになる。


このファイルにコマンドを書いておけば、それらのコマンドを自動的に実行してくれるという寸法です。

PATHの設定を間違えたとき

例えば、以下のようにPATHを設定すると、lsとかの基本コマンドさえ動かなくなります。

luke$ export PATH=""
luke$ ls
-bash: ls: No such file or directory


その際は、以下のようにして基本的なPATHだけ設定しておけば、基本コマンドは動きます

export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin


または、設定しなおさなくても、シェルを再起動すればなおります。