環境変数(かんきょうへんすう、英語: environment variable)はオペレーティングシステム (OS) が提供するデータ共有機能の一つ。OS上で動作するタスク(プロセス)がデータを共有するための仕組みである。特にタスクに対して外部からデータを与え、タスクの挙動・設定を変更するために用いる。 環境変数は、UNIX(互換OSや互換環境も含む)、MS-DOS、Windowsに存在する。 一つの環境変数は、変数名とその値をもち、通常「変数名=値」と表記する。変数名は英数字とアンダースコアで構成される。値は一般的にはとくに型や構造は定義されておらず、単なる文字列である(ただし、特定の環境変数は、それを解釈するプログラムによって値の構造が規定されていることがある)。 環境変数は、各プロセスに付随するデータである。一つのプロセスが複数の環境変数をもつことができる。あるプロセスに付随している環境変数の総体のことを、環境ということがある。プロセスは、任意に環境変数を参照して、各種の情報を取得したり、動作を変更したりすることができる。また、プロセスは、自分の環境において、環境変数を新規に作成したり、既存の環境変数の値を変更したり、環境変数を削除したりできる。 環境変数には、システムにより定義されるものとユーザが任意に定義するもの、ほとんどのプログラムに影響を与えるものと特定のプログラムにのみ影響を与えるものがある。 環境は、親プロセスから子プロセスに複製されて継承される。すなわち、子プロセスで環境を変更しない限り、子プロセスの環境は親プロセスのそれと同一の内容である。また、子プロセスが自分の環境に対して行った変更は、親プロセスの環境に影響しない。 C言語のプログラムにおいては、main()関数の第3引数(慣習的にenvpという仮引数名である)で環境を参照することができる。ただしこれはISO/ANSIの標準規格で規定されているものではなく、通常はより簡便なgetenv()関数などが使われる。 UNIXのシェルコマンドやシェルスクリプトにおいて、環境変数の値は「$環境変数名」という書式で参照する。 環境変数を設定する方法はシェルにより異なる。 UNIXのシェル(UNIX以外の環境に移植されたものも含む)には、シェル変数という概念がある。環境変数と類似しているが、シェル内で独自に保持しているものであり、シェル以外のプロセスには存在しない。 MS-DOSのコマンドラインやバッチファイルにおいて、環境変数の値は「%変数名%」という書式で参照する。 コマンドラインやバッチファイル内で以下のように設定する。set VAR=value 起動時から有効にするためには、AUTOEXEC.BATに記述する。 MS-DOSでは標準的に規定されている環境変数は非常に少ない。 MS-DOSと同様の方法の他、コントロールパネルでも設定することができる。コントロールパネルで設定したものは、それ以降起動されるプロセスで有効となる。また、再起動後も有効。 コントロールパネルの設定は、システム環境変数とユーザー環境変数に分かれている。コントロールパネルでシステム環境変数を変更するには、管理者権限が必要。 "path" あるいは "set" コマンドで設定した環境変数は、そのコマンドを実行したプロンプト上、及びそこから起動したプロセス上でしか有効ではないため注意が必要である。 Windows NT系の例を示す。Windows 9x系では存在しないものもある。
概要
UNIXの環境変数
環境変数の設定法
shの場合
$ VAR=value$ export VAR
cshの場合
% setenv VAR value
bashの場合
$ export VAR=value
環境変数の例
EDITOR: エディタのコマンド名を指定する。エディタを起動するプログラム(mail、lessなど)で参照される。
HOME: ホームディレクトリを指定する。cdコマンドで引数を指定しない場合、このディレクトリに移動する。例: /home/$USER
LANG: ロケールを指定する。日本語ロケールの場合はjaまたはja_JPなどを指定する。setlocale()関数の呼び出しにより有効となる。
LESSCHARSET: lessの入力・出力文字コードを指定する。
MAIL: メールボックスのパス名を指定する。例: /var/mail/$USER, /usr/spool/mail/$USER
NAME: ユーザの名前を指定する。メール送信時などに使われる。
PAGER: ページャ(more、less、pgなど)を指定する。ページャを起動するプログラム(manなど)で使われる。
PATH: コマンド検索パスをコロンで区切って指定する。シェルが参照する。
PWD: カレントディレクトリが設定される。シェルスクリプトでpwdコマンドの代わりに$PWDを参照することがある。
SHELL: 現在のシェルの起動パスが設定される。シェルを確認するのに利用できる。例: /bin/sh
TERM: 端末種別が設定される。この値をキーとしてtermcap/terminfoデータベースが検索される。例: vt100
TERMCAP: termcapデータベースファイルのパス、あるいは検索されたデータベースエントリの内容が設定される。例: /etc/termcap
TERMINFO: terminfoデータベースディレクトリのパスが設定される。例: /usr/share/misc/terminfo
TZ: タイムゾーン情報を指定する。標準Cライブラリの日時関連の関数で参照される。例: JST-9
USER: ログイン名が設定される。
VISUAL: スクリーンエディタのコマンド名を指定する。EDITORと同様。
シェル変数
MS-DOSの環境変数
環境変数の設定法
環境変数の例
COMSPEC: シェル (COMMAND.COM) のパス名が設定される。CONFIG.SYSのSHELL=行の記述が反映される。例: C:\COMMAND.COM
INCLUDE: Cのヘッダファイルのパスを指定する。MS-Cなどが参照する。
LIB: Cのライブラリファイルのパスを指定する。MS-Cなどが参照する。
PATH: コマンド検索パスをセミコロンで区切って指定する。シェルが参照する。
PROMPT: コマンドプロンプトの形式を指定する。例: $p$g
TEMP: 一時ファイルを置くディレクトリを指定する。ソフトウェアによってはTMPを参照することもある。例: C:\TEMP
Windowsの環境変数
環境変数の設定法
環境変数の例
COPYCMD: COPYコマンドのスイッチを指定する。
COMPUTERNAME: コンピュータ名が設定されている
Size:18 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)』
担当:undef