環境変数とはなんぞ?というところを書きました。ついて結局PATHて何?「:」を使うの?PATH通したはずなのに前と変わらずうまく実行出来ない場合によってはPATHの書き順を変更する必要があるの?といった事を紐解いていこうと思います。役割PATHの役割は大きく2つあります。コマンドをコマンド名だけで実行出来るようにする同じコマンドが複数インストールされている場合優先して実行するコマンドを決めるこれだけだと(゚д゚)?てなりますよね、というわけで1つずつ紐解いていきます。s仮にPATHの設定をしていない場合毎回こんな風に書かないといけないんです。sコマンドを使う度にこんな長ったらしく呼び出す必要性があったらキレますねwこのように「コマンド名だけで実行出来るようにする」のがPATHの役割の1つです。これはコマンドがあるフォルダをPATHに指定する事で、コマンド名のみで実行出来るようになるから。echo・ls・node・npm・railsなどこれら全てのコマンドは実行ファイルと呼ばれるものになります。実行ファイルについてエンジニアの皆さんが普段使っているコマンド=実行ファイルです。実行ファイルとは、CUI上での便利ツール・アプリのようなものです。MacやiPhoneには、電車の時刻を調べるアプリ、動画を編集するツール、、など何かを楽にするようなアプリやツールが沢山あります。実行ファイルはそれらのターミナル版・CUI版と思ってもらえればOKです!先程記載したnodeを例に取ると/usr/local/bin/というフォルダの中にnodeというコマンド(実行ファイル)があり、それを呼び出しています。このようにコマンドを使うというのはどこかしらのフォルダの中のファイル(実行ファイル)を呼び出しているだけ、に過ぎないんです。Homebrewを使ってコマンドをインストールしている人は、以下のコマンドでHomebrewを使ってインストールした実行ファイルが確認出来ます。優先して実行するコマンドを決める「PATH通したはずなのに前と変わらずうまく実行出来ない...」という経験がある人はぜひこの部分を読んで下さい!個人的に、プログラム始めた頃に知っておきたかった、という重要な事の1つです。複数存在するコマンドはPATHを使って優先度を決め、複数あるうちの1つをデフォルトとして使用しています。普通にみんな知ってる事なんですかね??僕はプログラム始めて4年ぐらい経ってからようやく理解出来たところです...^^;rubyというコマンドを例に挙げて書きます。Rubyを触っているエンジニアの人だと以下3つのフォルダにrubyというコマンド(実行ファイル)が入っている可能性が高いです。ruby*なぜrubyというコマンドが1つのMacに3つも存在するのか?というとMacには標準でruby(/usr/bin/ruby)が入っているけど、標準は何かと使いづらい側面があるから「Homebrew」のruby(/usr/local/bin/ruby)をインストールしよう、でもプロジェクト毎にRubyのバージョンを変更出来た方がいいからrbenv(~/.rbenv/shims/ruby)で管理しよう。このような流れから3つ存在したりします。このように様々なコマンドが1つのMac内に複数存在します。(もちろん1つだけのコマンドもあります)複数存在するコマンドのうち「どのコマンドを優先して使うか」を決めるのがPATHの役割の2つ目です。いうコマンドで調べる事が出来ます。インストールしたrubyを優先して使っている事が分かるPATHのルールPATHがどんな役割があるのか?というのが分かったので、最後に環境変数PATHのルールについて見ていきます。フォルダの区切り文字に「:」を使う環境変数PATHにはコマンドが格納されたフォルダのパスを指定します。-vのようにコマンド名だけで実行出来るからです。その際に複数のフォルダを指定する場合「:」(コロン)を使用します。$PATH/Users/yuu/.rbenv/shims:/usr/local/bin:/bin:/usr/bin少し見づらいので「:」の部分で改行出来るようコマンドでゴニョゴニョします。${"PATH//:/\n"}/Users/yuu/.rbenv/shims/usr/local/bin/bin/usr/binこの場合だと以下4つのフォルダ内のコマンドが読み込まれ、コマンド名のみで実行出来るようになります。$PATHをして左に出てきたフォルダのコマンドが優先して使用されます。$PATH/Users/yuu/.rbenv/shims:/usr/local/bin:/bin:/usr/binそのため、rubyは/Users/yuu/.rbenv/shims/rubyが使用され、vimは/usr/local/bin/vimが使用されます。そのフォルダ内のコマンドが使用されているかを確認するには先ほどのwhichを使います。知らなくてもどうにかなってたけど、ターミナルでコマンドを打って作業をする事が多い人は知っておくと何かと便利です。プログラム2018.11.17スポンサーリンクYuu昔は作曲家、今はプログラマー。iPhoneアプリやWebアプリを作ってます。犬と猫と紅茶が大好き。将来紅茶を片手に犬と猫と一緒に住むのが夢です。12c試験の感想と勉強方法2015.11.1154,778viewsEclipseでMavenを導入して、ライブラリを使用する方法2015.9.1639,980viewsjQueryで2つのドロップダウンリストを連動させる方法2015.4.2337,706views作品Yuuの音楽サイト自分の曲を紹介しているポートフォリオサイト。作品ページへ配色Webアプリ「色のカードを並べる感覚で配色が出来る」をコンセプトに作成しました。「暖かい」「冷たい」などイメージから配色を行う事が出来ます。内部的にはjsで制御しています。