summaryrefslogtreecommitdiffstats
path: root/man5/environ.5
diff options
context:
space:
mode:
Diffstat (limited to 'man5/environ.5')
-rw-r--r--man5/environ.5221
1 files changed, 221 insertions, 0 deletions
diff --git a/man5/environ.5 b/man5/environ.5
new file mode 100644
index 000000000..326e5cc11
--- /dev/null
+++ b/man5/environ.5
@@ -0,0 +1,221 @@
+.\" Copyright (c) 1993 Michael Haardt (michael@moria.de),
+.\" Fri Apr 2 11:32:09 MET DST 1993
+.\" and Andries Brouwer (aeb@cwi.nl), Fri Feb 14 21:47:50 1997.
+.\"
+.\" This is free documentation; you can redistribute it and/or
+.\" modify it under the terms of the GNU General Public License as
+.\" published by the Free Software Foundation; either version 2 of
+.\" the License, or (at your option) any later version.
+.\"
+.\" The GNU General Public License's references to "object code"
+.\" and "executables" are to be interpreted as the output of any
+.\" document formatting or typesetting system, including
+.\" intermediate and printed output.
+.\"
+.\" This manual is distributed in the hope that it will be useful,
+.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
+.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+.\" GNU General Public License for more details.
+.\"
+.\" You should have received a copy of the GNU General Public
+.\" License along with this manual; if not, write to the Free
+.\" Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111,
+.\" USA.
+.\"
+.\" Modified Sun Jul 25 10:45:30 1993 by Rik Faith (faith@cs.unc.edu)
+.\" Modified Sun Jul 21 21:25:26 1996 by Andries Brouwer (aeb@cwi.nl)
+.\" Modified Mon Oct 21 17:47:19 1996 by Eric S. Raymond (esr@thyrsus.com)
+.\" Modified Wed Aug 27 20:28:58 1997 by Nicolás Lichtmaier (nick@debian.org)
+.\" Modified Mon Sep 21 00:00:26 1998 by Andries Brouwer (aeb@cwi.nl)
+.\" Modified Wed Jan 24 06:37:24 2001 by Eric S. Raymond (esr@thyrsus.com)
+.\" Modified Thu Dec 13 23:53:27 2001 by Martin Schulze <joey@infodrom.org>
+.\"
+.TH ENVIRON 5 2001-12-14 "Linux" "Linux Programmer's Manual"
+.SH NAME
+environ \- user environment
+.SH SYNOPSIS
+.ad l
+.nf
+.B extern char **environ;
+.br
+.fi
+.ad b
+.SH DESCRIPTION
+The variable
+.I environ
+points to an array of strings called the `environment'.
+(This variable must be declared in the user program,
+but is declared in the header file
+.I unistd.h
+in case the header files came from libc4 or libc5, and
+in case they came from glibc and
+.B _GNU_SOURCE
+was defined.)
+This array of strings is made available to the process by the
+.BR exec (3)
+call that started the process. By convention these strings
+have the form `\fIname\fP\fB=\fP\fIvalue\fP'. Common examples are:
+.TP
+.B USER
+The name of the logged-in user (used by some BSD-derived programs).
+.TP
+.B LOGNAME
+The name of the logged-in user (used by some System-V derived programs).
+.TP
+.B HOME
+A user's login directory, set by
+.BR login (1)
+from the password file
+.BR passwd (5).
+.TP
+.B LANG
+The name of a locale to use for locale categories when not overridden
+by \fBLC_ALL\fP or more specific environment variables like
+\fBLC_COLLATE\fP, \fBLC_CTYPE\fP, \fBLC_MESSAGES\fP, \fBLC_MONETARY\fP,
+\fBLC_NUMERIC\fP, \fBLC_TIME\fP, cf.
+.BR locale (5).
+.TP
+.B PATH
+The sequence of directory prefixes that \fBsh\fP(1) and many other
+programs apply in searching for a file known by an incomplete path name.
+The prefixes are separated by `\fB:\fP'.
+(Similarly one has \fBCDPATH\fP used by some shells to find the target
+of a change directory command, \fBMANPATH\fP used by \fBman\fP(1) to
+find manual pages, etc.)
+.TP
+.B PWD
+The current working directory. Set by some shells.
+.TP
+.B SHELL
+The file name of the user's login shell.
+.TP
+.B TERM
+The terminal type for which output is to be prepared.
+.TP
+.B PAGER
+The user's preferred utility to display text files.
+.TP
+.BR EDITOR / VISUAL
+The user's preferred utility to edit text files.
+.TP
+.B BROWSER
+The user's preferred utility to browse URLs. Sequence of colon-separated
+browser commands. See http://www.catb.org/~esr/BROWSER/ .
+.PP
+Further names may be placed in the environment by the \fBexport\fP
+command and `name=value' in
+.BR sh (1),
+or by the \fBsetenv\fP command if you use
+.BR csh (1).
+Arguments may also be placed in the
+environment at the point of an
+.BR exec (3).
+A C program can manipulate its environment using the functions
+.BR getenv (3),
+.BR putenv (3),
+.BR setenv (3),
+and
+.BR unsetenv (3).
+
+Note that the behaviour of many programs and library routines is
+influenced by the presence or value of certain environment variables.
+A random collection:
+.LP
+The variables
+.BR LANG ", " LANGUAGE ", " NLSPATH ", " LOCPATH ", " LC_ALL ", " LC_MESSAGES ", "
+etc. influence locale handling, cf.
+.BR locale (5).
+.LP
+.B TMPDIR
+influences the path prefix of names created by
+\fBtmpnam(3)\fP and other routines, the temporary directory used by
+\fBsort\fP(1) and other programs, etc.
+.LP
+.BR LD_LIBRARY_PATH ", " LD_PRELOAD
+and other LD_* variables influence
+the behaviour of the dynamic loader/linker.
+.LP
+.B POSIXLY_CORRECT
+makes certain programs and library routines follow
+the prescriptions of POSIX.
+.LP
+The behaviour of \fBmalloc\fP(3) is influenced by MALLOC_* variables.
+.LP
+The variable
+.B HOSTALIASES
+gives the name of a file containing aliases
+to be used with \fBgethostbyname\fP(3).
+.LP
+.BR TZ " and " TZDIR
+give time zone information used by
+.BR tzset (3)
+and through that by functions like
+.IR ctime (),
+.IR localtime (),
+.IR mktime (),
+.IR strftime ().
+See also
+.BR tzselect (1).
+.LP
+.B TERMCAP
+gives information on how to address a given terminal
+(or gives the name of a file containing such information).
+.LP
+.BR COLUMNS " and " LINES
+tell applications about the window size, possibly overriding the actual size.
+.LP
+.BR PRINTER " or " LPDEST
+may specify the desired printer to use. See
+.BR lpr (1).
+.LP
+Etc.
+.SH BUGS
+Clearly there is a security risk here. Many a system command has been
+tricked into mischief by a user who specified unusual values for
+.BR IFS " or " LD_LIBRARY_PATH .
+
+There is also the risk of name space pollution.
+Programs like
+.I make
+and
+.I autoconf
+allow overriding of default utility names from the
+environment with similarly named variables in all caps.
+Thus one uses
+.B CC
+to select the desired C compiler (and similarly
+.BR MAKE ,
+.BR AR ,
+.BR AS ,
+.BR FC ,
+.BR LD ,
+.BR LEX ,
+.BR RM ,
+.BR YACC ,
+etc.).
+However, in some traditional uses such an environment variable
+gives options for the program instead of a pathname.
+Thus, one has
+.BR MORE ,
+.BR LESS ,
+and
+.BR GZIP .
+Such usage is considered mistaken, and to be avoided in new
+programs. The authors of
+.I gzip
+should consider renaming their option to
+.BR GZIP_OPT .
+.SH "SEE ALSO"
+.BR bash (1),
+.BR csh (1),
+.BR login (1),
+.BR sh (1),
+.BR tcsh (1),
+.BR execve (2),
+.BR clearenv (3),
+.BR exec (3),
+.BR getenv (3),
+.BR putenv (3),
+.BR setenv (3),
+.BR unsetenv (3),
+.BR locale (5)