今回はUNIXやLinuxにおける環境変数の扱い方について勉強していきたいと思います。
環境変数について全く分からないという人の理解できるように書いたので是非一度読んでいってください。
環境変数とは
それではまず環境変数とは何なのかを見ていきましょう。
環境変数はオペレーティングシステム(OS)が提供するデータ共有機能の一つ。OS上で動作するタスク(プロセス)がデータを共有するための仕組みである。
参照:Wikipedia
これだけでは分かりにくいのでもう少し分かりやすく言うと、全てのプログラムが共有できるように、コンピュータが保持している変数のことです。
つまり、コンピュータでプログラムが実行される時、そのプログラムは、そのコンピュータ自身の環境変数を参考にすることができます。
環境変数を扱うコマンド
それでは次に環境変数を扱うコマンドを1つずつ見ていきましょう。
環境変数を表示するprintenvコマンド
まずは環境変数を表示するコマンドです。
以下のようにしてください。
$ printenv
このようにprintenvコマンドを実行すると、OSが保持している環境変数を全て表示してくれます。
また、特定の環境変数を指定して表示することもできます。
以下のようにしてください。
$ printenv 環境変数 $ echo $環境変数
上のようにすると、環境変数の部分で指定した環境変数だけが表示されます。
環境変数を設定するexportコマンド
次に環境変数の値を設定するコマンドを見ていきましょう。
以下を見てください。
$ export 環境変数=値
exportコマンドの後ろに、設定を変えたい環境変数と、その値を等号でつないで実行します。
するとexportコマンドを適用された環境変数の値が変更されます。
値が変わっているかどうかはprintenvコマンドで確かめてみてください。
環境変数を削除するunsetenvコマンド
既存の環境変数を削除することもできます。
以下を見てください。
$ unsetenv 環境変数
このように実行すると、unsetenvコマンドの後ろに書かれた環境変数が削除されます。
printenvコマンドで環境変数を全て表示すると、消えていることが分かるはずです。
環境変数の例
ここでは環境変数がどのようなものなのか、もう少し具体的なイメージを持ってもらうためにいくつかの環境変数を紹介していきます。
HOME
環境変数HOMEの値はログインユーザのホームディレクトリを示します。
cdコマンドを引数なしで実行すると、HOMEで指定されたディレクトリに移動します。
ホームディレクトリやcdコマンドについては以下のページで説明しています。
LANG
環境変数LANGの値は文字コードを表します。
つまり上で学んだexportコマンドなどでLANGの値を変えてあげると、コンピュータの言語環境を簡単に変えることができます。
PATH
環境変数PATHというと結構聞いたことがある人も多いと思います。
PATHの中にはコマンドの実行ファイルの場所がコロンで区切って記述されています。
どういうことかというと、私たちが実行しているコマンド(上で使ったprintenvなど)はそのコマンドの実行内容などが記述された、実行ファイルなるものを持っています。
コマンドが実行されると、コンピュータはコマンドの実行ファイルを探しに行くわけですが、コンピュータにある全てのファイルを探し回っていたらものすごく時間がかかります。
環境変数PATHの中にあらかじめコマンドの実行ファイルの場所を記述しておくことでコンピュータが簡単に実行ファイルを探してこれるようになるのです。
まとめ
今回は環境変数とは何かというところから始まり、環境変数を表示、設定、削除するコマンドを学びました。
さらに具体例も見ることで、少しは環境変数に対するイメージを持つことができたと思います。
コンピュータになじみのない人は少し堅苦しい言葉のように感じてしまうかもしれませんが、是非一度はしっかりと学習しておいてください。