Linux ~環境変数について~
2018/11/065 分で読める記事 — In プログラム

はじめに


よし!金貯めるぞ!! と決意して後、8万円の財布を購入したギノキンがこの記事をお届けします。

環境変数とは


変数とは、数学などに出てきた「x = 値」の変数 x の様なもので、
環境変数は、ローカル環境(自分のPC内)の変数の事を言います。

環境変数はその名の通り変数なので、自ら定義することができます。

定義の仕方は


exportコマンド

定義するときは export コマンドを使い、環境変数の定義を行います。

下記にLinuxコマンド記します。(この時"="の前後にはスペースは空けないようにします。)

$ export TEST="This is a test variable"

上記のコードで 変数 : TEST値 : "This is a test variable" が入ります。

$ export 定義する環境変数の名前=環境変数の中身


環境変数の確認


printenv コマンド

先程 export コマンドで定義した環境変数を確認する時には printenv コマンドを使います。
下記の様に入力します。

$ printenv

出力=>
...
PATH=/usr/local/opt/mysql@5.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin
...
TEST=This is a test variable
...
PWD=/Users/tarou/Desktop/twitter_app/twitter-app
...

※ 出力の[PATH=/...]には後で触れます。

一部ではありますが、上記のような 環境変数名=値 のような出力が得られます。

先程、定義した 変数 : TEST も確認できました。
ただ必要ではないものは消しておきたいので、定義した変数TESTを削除していていきます。

環境変数の削除方法


unsetコマンド

環境変数TESTを削除するためには、下記のようなコマンドを入力します。

$ unset TEST

削除できているかどうかは printenv コマンドで確認が出来ます。

$ printenv TEST

上記のコマンドを入力し確認したところ 変数 : TEST は削除されておりました。

echoコマンド

変数の参照はechoコマンドでも可能です。
この場合「echo $変数名」のように変数名の冒頭に「$」が必要です。

printenv は外部コマンド(/usr/bin/printenv)であり、シェル変数にはアクセスできません。
これに対し、echo コマンドはシェルのビルトインコマンドなのでシェル変数・環境変数ともにアクセスできます。

後で触れると言っていた。PATHとは?


PATHとは何なのか?

簡単にいうと、「道しるべ」のことです。

まず、この PATH の中身を見ていきます。

$ printenv PATH

出力=>
/usr/local/opt/mysql@5.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

ここの : は「and(〜と)」と同じような意味で使われています。

これは一体何なのか?

先程のコマンドで例を述べると
printenvコマンド は、/usr/bin/printenv ファイルを参照しています。

なので先程は

$ printenv

だけでしたが、これは下記のコマンドと同じ出力が出ます。

$ /usr/bin/printenv

PATH の中にも /usr/bin/ があるのが分かると思います。

このようにいちいち /usr/bin/ 等のコマンドを入力するのが面倒だ!!
というところで登場したのが、道しるべの役割の PATH なのです。

PATHへ追加する方法


PATHへ追加する時は下記のようにコマンドを入力します。

$ export PATH="$PATH:/opt/local/bin"

=>出力
/usr/local/opt/mysql@5.7/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin

これで、/opt/local/bin 以下のコマンドを実行する事ができます。 また始まりは : からする事に注意しておきましょう。

最後に


誤った表現やご助言等のありましたらよろしくお願い致します。
誰かの糧になれたらうれしいです!