【Linux】パスを通すとは?意味と関連コマンドの使い方を紹介

今回はLinuxで出てくる「パスを通す」の意味について紹介します。

また、環境変数に関連するコマンドもついでに紹介します。

 

パスを通すとは?

パスを通すとは、要するに環境変数($PATH)の値を変更してコマンド検索パスを追加することです。

環境変数とは、プログラミング言語の変数と同じようなもので、自分のパソコン全てで使うことができる変数を指します。

 

試しに環境変数を定義してみましょう。

ターミナルを開いて以下のコマンドを実行します。「=」と「”」の間にスペースは入れないでください。

$ export TEST="This is a test global variable"

 

これは環境変数TESTに「This is a test global variable」という値を入れています。

 

exportコマンド

さらっと出てきましたが、このexportコマンドは環境変数を定義するコマンドです。

書き方はこんな感じ。

export 定義したい環境変数の名前=環境変数の中身

 

では、定義した環境変数$TESTに値が正しく入っているかを確認しましょう。

$ printenv TEST
this is a test environment variable

 

上記のように表示されれば成功です。

 

printenvコマンド

またしてもさらっと出てきたこのprintenvコマンドは、環境変数を参照できるコマンドです。

printenvの後に何も変数を指定しないと、ローカルにある全ての環境変数を表示します。

$ printenv

バーっと表示される環境変数の中に、先ほど定義した環境変数$TESTが表示されているはずです。

 

今度は環境変数$TESTを削除してみましょう。

$ unset TEST
$printenv TEST

 

unserコマンド

unsetコマンドは定義した環境変数を削除するコマンドです。

「unset TEST」と入力したことで環境変数$TESTは削除されます。

 

環境変数はこんな感じです。

次に標準で定義されている環境変数$PATHについてお話しします。これにはコマンド検索パスを保存しています。

 

コマンド検索パスとは

コマンド検索パスとは、shell(ターミナル)がコマンドを検索するためのパスです。

exportやprintenvなどのコマンドは、実はパソコンに入っている実行ファイルを読み込んでいるだけです。

このファイルを見つけ出すために使われるのがパスです。パスはshellに実行ファイルがある場所を教えてあげているイメージですね。

例えばprintenvは以下の場所にあるファイルを実行しています。

/usr/bin/printenv

 

なので、printenvの代わりに/usr/bin/printenvと入力しても同じ結果が得られます。

ではなぜ/usr/binを省略してもコマンドが使えるのかというと、それが環境変数$PATHにかかれているからです。

 

$PATHの中身

では環境変数$PATHには何が書かれているのかをみてみます。

$ printenv PATH

 

何だかディレクトリがいくつか出てきますね。:で区切ってあるので、次に書かれたディレクトリはルートからということになります。

そしてこの中に

/usr/bin

があると思います。printenvの実行ファイルがある場所ですね。

この部分を環境変数$PATHが持っているので、printenvだけでコマンドを使えるようになるのです。

 

まとめ

こんな感じで「パスを通す」の意味はなんとなくわかったと思います。

パスが通っていないがために新しく入れたコマンドが使えないといった事態も発生するので、そういう場合は環境変数を確認してみたりするのがいいと思います。