環境変数

環境変数とは



環境変数とは、オペレーティングシステム(OS)が提供するデータ共有機能の一つです。OS上で動作するタスクプロセス)がデータを共有するための仕組みであり、特にタスクに対して外部からデータを与え、タスクの挙動や設定を変更するために用いられます。

概要



環境変数は、UNIXMS-DOS、Windowsなど、多くのOSに存在します。一つの環境変数は、変数名とその値を持ち、「変数名=値」と表記されます。変数名は英数字とアンダースコアで構成され、値は通常文字列です。環境変数は各プロセスに付随するデータであり、プロセスは環境変数を参照して情報を取得したり、動作を変更したりできます。

環境は、親プロセスから子プロセスに複製され継承されます。子プロセスで環境を変更しない限り、子プロセスの環境は親プロセスの環境と同一です。また、子プロセスが行った変更は親プロセスに影響を与えません。

C[[言語]]では、`main()`関数の第3引数`char envp[]`で環境を参照できますが、通常は`getenv()`関数などが使われます。

UNIXの環境変数



UNIXのシェルでは、環境変数の値を「$環境変数名」という書式で参照します。

環境変数の設定方法はシェルによって異なり、`sh`、`csh`、`bash`それぞれで異なる方法が用いられます。

環境変数の例


`EDITOR`: エディタのコマンド名を指定します。
`HOME`: ホームディレクトリを指定します。
`LANG`: ロケールを指定します。
`LESSCHARSET`: `less`の入出力文字コードを指定します。
`MAIL`: メールボックスのパス名を指定します。
`NAME`: ユーザの名前を指定します。
`PAGER`: ページャを指定します。
`PATH`: コマンド検索パスをコロンで区切って指定します。
`PWD`: カレントディレクトリを設定します。
`SHELL`: 現在のシェルの起動パスを設定します。
`TERM`: 端末種別を設定します。
`TERMCAP`: `termcap`データベースファイルのパスを設定します。
`TERMINFO`: `terminfo`データベースディレクトリのパスを設定します。
`TZ`: タイムゾーン情報を指定します。
`USER`: ログイン名を設定します。
`VISUAL`: スクリーンエディタのコマンド名を指定します。

シェル変数



UNIXシェルには、環境変数と似たシェル変数という概念があります。シェル変数はシェル内で独自に保持され、シェル以外のプロセスには存在しません。

MS-DOSの環境変数



MS-DOSのコマンドラインでは、環境変数の値を「%変数名%」という書式で参照します。

環境変数はコマンドラインやバッチファイル内で設定でき、`AUTOEXEC.BAT`に記述することで起動時から有効にできます。

環境変数の例


`COMSPEC`: シェルのパス名を設定します。
`INCLUDE`: Cのヘッダファイルのパスを指定します。
`LIB`: Cのライブラリファイルのパスを指定します。
`PATH`: コマンド検索パスをセミコロンで区切って指定します。
`PROMPT`: コマンドプロンプトの形式を指定します。
`TEMP`: 一時ファイルを置くディレクトリを指定します。

Windowsの環境変数



Windowsでは、MS-DOSと同様の方法に加え、コントロールパネルでも環境変数を設定できます。コントロールパネルで設定したものは、それ以降起動されるプロセスで有効となり、再起動後も有効です。システム環境変数とユーザー環境変数に分かれており、システム環境変数の変更には管理者権限が必要です。

環境変数の例


`COPYCMD`: COPYコマンドのスイッチを指定します。
`COMPUTERNAME`: コンピュータ名が設定されています。
`CPU`, `NUMBER_OF_PROCESSORS`, `PROCESSOR_ARCHITECTURE`, `PROCESSOR_IDENTIFIER`, `PROCESSOR_LEVEL`, `PROCESSOR_REVISION`: プロセッサに関する情報が設定されています。
`DIRCMD`: DIRコマンドのスイッチを指定します。
`HOMEDRIVE`: ホームフォルダのドライブ名が設定されています。
`HOMEPATH`: ホームフォルダのパス名が設定されています。
`OS`: OSの種類が設定されています。
`PATH`: MS-DOSと同じです。
`PATHEXT`: 実行可能ファイルの拡張子をコロンで区切って指定します。
`PROMPT`: MS-DOSと同じです。
`ProgramFiles`: Program Filesフォルダのパス名が設定されています。
`SystemDrive`: システムドライブ名が設定されています。
`SystemRoot`: Windowsフォルダのパス名が設定されています。
`USERDOMAIN`: 現在のユーザのログオンドメインが設定されています。
`USERNAME`: 現在のユーザのユーザ名が設定されています。
`USERPROFILE`: 現在のユーザのユーザプロファイルフォルダのパス名が設定されています。
`TEMP`: MS-DOSと同じです。
`WINDIR`: Windowsフォルダのパス名が設定されています。

HTTP環境変数



WebブラウザなどのHTTPユーザーエージェントサーバにアクセスする際、HTTPリクエストヘッダの情報が環境変数としてプログラムに渡されます。これは、CGIやPHPなどのWebアプリケーションが利用します。

環境変数の利点



OSレベルでの標準機能であり、多くのOSで利用可能です。
ほぼすべてのプログラミング[[言語]]からアクセス可能です。
アプリケーションの記述言語に依存しません。
* 単純なKey-Valueペア形式で利用できます。

環境変数の利用



環境変数は、機密情報の挿入、アプリケーション設定の変更など、様々な用途で利用されます。特に、機密情報をソースコードから分離し、環境変数で渡すことでセキュリティを高めることができます。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。