ツイート
シェア
LINEで送る
B! はてぶでブックマーク
Pocketでブックマーク
RSSフィード

PATHの通し方(Windows, Mac, Linux, Unixの環境変数設定)

programing image

プログラム開発環境を作るときの基本的な作業に環境変数の設定があります。俗に『PTTHを通す』といいます。

その設定方法をWindows, Mac, Linux, Unixごとに分かりやすくかんたんに説明します。

説明がかんたんではなくて本当に作業がかんたんです。気軽に見てください。

環境変数のPATHとはなにか?

まずは環境変数とは何か? から。

環境変数は、OSやOSにインストールされたアプリケーションが使う定数のことです。大文字で書くのが一般的です。

何回もいろいろなところで使い、いちいち値を定義するのがめんどうなのでOS環境変数として定義します。

OSやアプリケーションは必要になったら環境変数から値を取り出して参照します。

環境変数のなかでも特殊なPATH

その環境変数のなかでPATHはちょっとちがいます。PATHはどの場所からでも実行したいプログラムのコマンドを定義します。

(どのディレクトリからでも実行できるコマンド)

たとえば、"php"というPHPを実行するコマンドは、環境変数PATHに追加していないとき、

php

と実行しても、

そんなコマンドは知らない!

と言われてしまいます。

phpコマンドを実行するためには、

/usr/bin/php

としなければなりません。/usr/bin/phpは、phpコマンドがインストールされているフルパスです。

/usr/binはUnix, Linux系OSの、アプリケーション実行コマンドのデフォルト・インストール先で、システム環境変数に追加されています。

じっさいは、/usr/binにあるphpコマンドはPATHを変更しなくても"php"で実行できます。

PATHはコマンドのショートカット

これはめんどうです。コマンドを実行するたび長いコマンドを入力することになるので。

このめんどくささを解決するのがPATHです。PATHの値に"/usr/bin/"を追加することで、

php

というコマンドがどの場所からでも実行できるようになります。

プログラム言語に関係なく、

PATHを通す

という作業をするのはこのためで、

  • java
  • php
  • python

など、プログラム開発ではコマンドの実行を必ずします。そして、プログラムのソースファイルは使う人が自由にどこにでも置いて作業します。

その自由に置かれたソースの場所からかんたんにコマンドを実行するためにPATHはあります。

環境変数にはOS全体で使うシステム環境変数と、特定のユーザーしか使えないユーザー環境変数があります。

システム環境変数はすべてのユーザーが使うことができます。

環境変数を参照するときWindowsでは、

%PATH%

Mac, Linux, Unixでは、

$PATH

というルールがあります。

Mac, Linuxのパス設定

PATHの設定の方法はWindowsとそれ以外に分かれます。

じつはmacOSはUnixをもとに開発されました。LinuxもUnixに影響されてつくられたOSなのでとても似ています。

だからMacとLinuxは同じ作業になります。

Linuxの名前の由来は『like a Unix(Unixのような)』。Unixのバッタモンとして始まって、いつのまにか本家のUnixを超えるほど広がっていきました。

MacとRedhat系LinuxのPATH設定

MacとRedhat系Linux(CentOS, Fedoraなど)は内部でbashというコマンドの集まりでできています。

PATHの設定の方法はbashのルールにしたがいます。編集するファイルはひとつで .bash_profile です。

.bash_profileは、rootユーザーとそれぞれのユーザーのホームディレクトリにある隠しファイルです。

隠しファイルは lsコマンドのaオプションをつけないと見えません。

ls -altr

rootユーザーの .bash_profile はシステム環境変数でそのほかのユーザーのファイルがユーザー環境変数の設定です。

rootユーザーのファイルはセキュリティを考えるとほとんど使いません。ユーザー環境変数に追加しましょう。

.bash_profile編集前
PATH=$PATH:$HOME/.local/bin:$HOME/bin
export PATH

.bash_profileには、すでにこのように定義されています。

PATH=$PATH:

『すでに定義されているPATHに追加する』という意味で、コロン(:)は区切り文字です。

追加するときは、もともとあったものを残して追加します。

もとの記述を削除しないように注意してください。なにかしら異常が発生するアプリケーションが出てきます。

.bash_profile編集後
PATH=$PATH:$HOME/.local/bin:$HOME/bin:$HOME/shell

"PATH=$PATH:"は、システム環境変数をユーザー環境変数にコピーしています。

その後ろから書いてあるものがユーザー環境変数オリジナル。

ファイルの編集はこれだけです。最後に編集した内容をOSに反映させます。

.bash_profileの更新
source ~/.bash_profile

sourceコマンドを実行しなくても、ターミナルからログインしなおすだけで反映します。

ただ、sourceコマンドを実行するとターミナルの再ログインはいりません。

Debian系Linux, UnixのPATH設定

Debian系Linux(Ubuntuなど)やUnixは、デフォルトのシェルがbashではありません。

なので、編集するファイルが.bash_profileではありません。.profileになります。

もうひとつ違いがあるとすれば、PATHの定義をダブルクォーテーション(")で囲うことくらいです。

.profileのPATH定義
PATH="$PATH:$HOME/.local/bin:$HOME/bin"

bashと同じように『"』で囲わないものもあります。このあたりのルールはもとの定義に合わせてください。

あとはsourceコマンドで .profile を更新して終わりです。

.profileの更新
source ~/.profile

WindowsのPATH設定

WindowsはほかのOSと比べて独自の進化をしているので、同じような作業になりません。

Windowsはデスクトップで作業したほうが早いです。というかコマンドで作業をする人はいないです。

まずは、環境変数の編集画面を開きます。

PC(旧マイコンピュータ)の右クリック -> プロパティを選びます。

PC(旧コンピュータ)image
windows コンパネ システム image
コントロールパネル -> システム

システムのウィンドウが表示されました。これは、コントロールパネル -> システムでも表示できます。

デスクトップ左下の検索で『システム』と入力して、コントロールパネルのシステムを起動してもいいです。

次に左の『システムの詳細設定』を選びます。

windows システムのプロパティ image
Windowsシステムプロパティ

『詳細設定』タブの『環境変数』ボタンを押します。

Windowsの環境変数リスト

環境変数のウィンドウが出ました。

ユーザ環境変数のPathをダブルクリックするか、Pathを選んで編集ボタンを押します。

環境変数 編集 image
Windowsの環境変数編集

新規ボタンを押してパスを入力すると新しいパスが追加できます。

最後にOKボタンを押して終了してください。

Windowsでの作業は以上です。

昔はPCの再起動が必要でしたが、いまは不要です。コマンドプロンプトを開きなおしたらPATHが通っています。

Windowsだけちょっと違うのがよく見るとわかります。

  • 変数名がPATHじゃなくてPath
  • 区切り文字がコロン(:)じゃなくてセミコロン(;)

まとめ

PATHの通し方はかんたんです。

Windowsとそれ以外

の2つの方法を覚えておけば、だいたいのOSで作業できます。

それでも、ときおり忘れてしまうぼくが言うのもなんですが...

この記事を一番必要としているのはぼく自身です。

(ごめんなさい。)

前の投稿
SSHキーの秘密鍵・公開鍵を各OSで作る方法。同じ作り方で迷わないようにする。
おなじみのIT用語が変わってた。ポリコレの波が押し寄せたらしい。
次の投稿

コメント

  1. qaw より:

    win10です。
    疑問点が一つあります。
    例えば、C:\testにあるhoge.exeにパスを通したいとき、環境変数ウィンドウの新規には
    "C:\test" を追加すればよいのか、"C:\test\hoge.exe"を追加すればよいのかどちらなのですか?

    1. owner より:

      返事が遅れました。すいません。

      答えは"C:\test"です。

      『PATHを通す』は、

      『実行プログラムをどの場所(ディレクトリ or フォルダー)からでも実行するため』

      なので、実行プログラムのある場所(ディレクトリ or フォルダーのパス)を指定します。

      たとえば、hoge.exeを実行したら、プログラム名(hoge.exe)からPATHの設定を見て、

      プログラム名の前にPATHの"C:\test"をくっつけて、

      C:\test\hoge.exeを実行します。

      プログラムを実行するのにフルパス指定はキツイですからね?

      Windowsにかぎらず、PATHは『ディレクトリ or フォルダー』のパスです。

      1. qaw より:

        理解できました!
        プログラムがどこに入ってるかってことを教えるんですね。
        ありがとうございます。

コメントを残す

*