Provided by: manpages-ja_0.5.0.0.20221215+dfsg-1_all bug

名前

       environ - ユーザー環境

書式

       extern char **environ;

説明

       The  variable  environ points to an array of pointers to strings called the "environment".
       The last pointer in this array has the value NULL.  (This variable must be declared in the
       user  program,  but  is  declared in the header file <unistd.h> if the _GNU_SOURCE feature
       test macro is defined.)  This array of strings is made available to  the  process  by  the
       exec(3)   call  that started the process.  When a child process is created via fork(2), it
       inherits a copy of its parent's environment.

       通例では、 environ の文字列は "name=value"  という書式をとる。  よく用いられる例を以下に示
       す。

       USER   ユーザーのログイン名 (BSD 起源のプログラムなどによって使用される)。

       LOGNAME
              ユーザーのログイン名(System V 起源のプログラムなどによって使用される)。

       HOME   ユーザーのログインディレクトリ。 login(1)  がパスワードファイル passwd(5)  から取得
              して設定する。

       LANG   ロケールの各カテゴリーで使用されるロケールの名前。LC_ALL や、  より狭い範囲を対象と
              する環境変数  (LC_COLLATE,  LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, LC_TIME
              など) によって上書きされることもある (LC_*  環境変数のさらなる詳細は  locale(7)  参
              照)。

       PATH   sh(1)    や他のプログラムが、フルパスで与えられなかった実行ファイルを検索するとき、
              ファイル名に前置されるディレクトリの配列。  各ディレクトリは  ':'  によって区切られ
              る。 (同じようなものに、 シェルがディレクトリ変更コマンドの変更先を探すために用いる
              CDPATH や、 man(1)  がマニュアルページの検索に用いる MANPATH などがある。)

       PWD    現在のワーキングディレクトリ。いくつかのシェルが設定する。

       SHELL  ユーザーのログインシェルのパス名。

       TERM   端末の種類。出力はこれにあわせて用意される。

       PAGER  テキストファイルを表示するユーテリティ。ユーザーが好みのものを設定する。

       EDITOR/VISUAL
              テキストファイルを編集するユーテリティ。ユーザーが好みのものを設定する。

       Names may be placed in the shell's environment by the export command in sh(1), or  by  the
       setenv command if you use csh(1).

       The  initial  environment  of  the shell is populated in various ways, such as definitions
       from /etc/environment that are processed by pam_env(8) for all users  at  login  time  (on
       systems  that  employ pam(8)).  In addition, various shell initialization scripts, such as
       the system-wide /etc/profile  script  and  per-user  initializations  script  may  include
       commands  that  add  variables  to  the  shell's  environment; see the manual page of your
       preferred shell for details.

       Bourne-style shells support the syntax

           NAME=value command

       to create an environment variable definition  only  in  the  scope  of  the  process  that
       executes  command.   Multiple  variable definitions, separated by white space, may precede
       command.

       exec(3)   の引数としても環境を設定することができる。   C   プログラムからは、   getenv(3),
       putenv(3), setenv(3), unsetenv(3)  などの関数を用いて環境を扱うことができる。

       Note that the behavior of many programs and library routines is influenced by the presence
       or value of certain environment variables.  Examples include the following:

       *  LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES, などの変数は、ロケールの扱いに影
          響する。 catopen(3), gettext(3), locale(5) を参照。

       *  TMPDIR  は、 tempnam(3) などのルーチンによって作成されるファイル名や sort(1) や他のプロ
          グラムが使用する一時ディレクトリに前置されるパスに影響する。

       *  LD_LIBRARY_PATH, LD_PRELOAD などの LD_*  変数はダイナミックローダーリンカーの動作に影響
          する。

       *  POSIXLY_CORRECT が指定されると、ある種のプログラムやライブラリルーチンは POSIX の規定に
          従うようになる。

       *  malloc(3)  の動作は MALLOC_* 変数によって影響される。

       *  HOSTALIAS 変数は、  gethostbyname(3)   が用いるエイリアスが書かれているファイル名を与え
          る。

       *  TZTZDIRtzset(3)   および、この関数を使う ctime(3), localtime(3), mktime(3),
          strftime(3)  といった関数で用いられるタイムゾーンの情報を与える。 tzselect(8)  も参照の
          こと。

       *  TERMCAP  は、現在の端末情報の取得先 (あるいはそのような情報が書かれているファイル名) を
          与える。

       *  COLUMNSLINES アプリケーションにウインドウのサイズを伝える。  実際のサイズとは違う値
          を与えることもできる。

       *  PRINTER または LPDEST 用いたいプリンタを指定する。 lpr(1)  を参照のこと。

注意

       The  prctl(2)  PR_SET_MM_ENV_START and PR_SET_MM_ENV_END operations can be used to control
       the location of the process's environment.

バグ

       これらの中には、明らかにセキュリティ上の危険が存在する。 ユーザーが IFSLD_LIBRARY_PATH
       に異常な値を与えたことによって、 これまで多くのシステムコマンドがだまされて、 システムをひ
       どい目にあわせてきた。

       名前空間が汚染される危険性も存在する。 makeautoconf のようなプログラムでは、デフォルト
       のユーティリティを  環境にある似たような名前の変数で上書きすることができる (通常はすべて大
       文字の変数を用いる)。  すなわち、利用したい  C  コンパイラは  CC  で選択できる。また同様に
       MAKE,  AR, AS, FC, LD, LEX, RM, YACC なども用いることができる。 ところが一方では、このよう
       な変数を  (パス名ではなく)    プログラムに対するオプションとして扱うような流儀も存在してき
       た。 例えば MORE, LESS, GZIP などがそうである。 このような利用法は間違っていると考えるべき
       で、 新しいプログラムでは避けるべきである。 gzip  の作者たちは、オプションを与える環境変数
       を GZIP_OPT に改名することを考えるほうがよい。

関連項目

       bash(1),  csh(1),  env(1),  login(1), printenv(1), sh(1), tcsh(1), execve(2), clearenv(3),
       exec(3), getenv(3), putenv(3), setenv(3), unsetenv(3), locale(7), ld.so(8), pam_env(8)

この文書について

       この man ページは Linux man-pages プロジェクトのリリース 5.10 の一部である。プロジェクトの
       説明とバグ報告に関する情報は https://www.kernel.org/doc/man-pages/ に書かれている。