PATHを通すとは?- 初心者でも分かる解説 –

PATHを通すとは

 

この記事では、「コマンドにPATHを通す」と言う言葉の意味を、
初心者の方でも分かるように紹介する。

 

「コマンドにPATHを通す」とは

すごーく簡単に言うと
「実行ファイル名だけでコマンドを打てるようにする」と言うこと。

例えば誰もが知っている「ls」コマンドは、
どの階層にいても「ls」と打つだけでコマンドを実行できる。

#ファイルの一覧を表示する
>ls

まずはこの「コマンド」に関して、
ファイルの一覧を表示すると言うプログラムが組まれた「実行ファイル名」を指定していると言う認識を持とう。

コマンド実行の概念図

 

もっと正確に説明

「実行ファイル名だけでコマンドを打てるようにする」と言うことをもっと正確に説明するならば、
「実行ファイルの検索パスを、環境変数PATHに追加する」と言うことだ。

おっと突然難易度が上がった、、。
なぜなら「実行ファイル」「検索パス」「環境変数PATHJ」と聞き慣れないワードが3つも含まれているから。

でも大丈夫。これらについて分かりやすく説明していく。

 

実行ファイルとは

実行ファイルとは、「コマンドの実体となるファイル」のことだ。

lsコマンドを打った際は、実はフルパスで「/bin/ls」と言うパスの実行ファイルが実行されている。この/bin/lsと言うファイルがコマンドの実体となるファイルだ。「ファイルの一覧を表示する」と言うプログラムが組まれている。

なので、「ls」と打った場合も「/bin/ls」と打った場合も同じ結果となる。

#どちらのコマンドも同じ結果になる
> ls
>/bin/ls

 

検索パスとは

検索パスとは「実行ファイルがあるか探しにいくパス」のことだ。

lsと打った際に/bin/のlsファイルが実行されているのは上述したが、lsと言うコマンドだけで/bin/のlsを実行できている理由は、/bin/と言うパスが検索パスに存在するからだ。

内部的な話をすると、lsと打った際に、lsと言う実行ファイルがコマンドを実行したパスに見つからない場合、この検索パスに存在するパスの中からlsと言う実行ファイルがないか見つけようとする。

で、検索パスの/bin/にlsが存在するので、どの階層にいてlsと打っても/bin/lsが実行できていると言う訳だ。

 

環境変数PATHとは

環境変数とは、簡単に言うとシステム全体で使う変数のことだ。

例えばコマンドの履歴を保存数を保持しておく「HISTSIZE」と言う環境変数や、
システムの言語情報を保持しておく「LANG」と言う環境変数が存在する。

>echo $HISTSIZE
500

echo $LANG
ja_JP.UTF-8

 

その中で「PATH」と言う、実行ファイルの検索パスを保存しておく環境変数が存在する。

# 環境変数PATHの中身(検索パスの一覧)を表示
>echo $PATH
/usr/local/opt/php@7.3/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/share/dotnet:~/.dotnet/tools:/Library/Apple/usr/bin:/Library/Frameworks/Mono.framework/Versions/Current/Commands

 

もうお気づきかもしれないが、
この環境変数「PATH」に検索パスを保存しておくことで、実行ファイル名を打った時にシステムが自動的に実行ファイル名をPATHから検索し、コマンドが実行されると言うことだ。

環境変数PATHを参照する画像

 

「PATHを通す」まとめ

PATHを通すとは

「実行ファイル名だけでコマンドを打てるようにする」と言うこと

もっと正確に言うと
「実行ファイルの検索パスを、環境変数PATHに追加する」と言うこと

環境変数PATHは実行ファイルの検索パスを保持しているシステムの変数のことで、
実行ファイル名を指定した際に、この変数から実行ファイルのパスを検索しにいく。

 

参考:PATHの通し方

参考までに、exportコマンドを使ったPATHの通し方(Linux)の詳細を下記記事にまとめてあるので、よければみて欲しい。

 

 

記事が気に入った方はシェアをお願いします!

コメントを残す

メールアドレスが公開されることはありません。