Scroll to navigation

ENVIRON(7) Linux - příručka programátora ENVIRON(7)

JMÉNO

environ - uživatelské prostředí

POUŽITÍ

extern char **environ;

POPIS

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.

By convention the strings in environ have the form "name=value". Common examples are:

Jméno přihlášeného uživatele (je používáno některými programy odvozenými z BSD).
Jméno přihlášeného uživatele (je používáno některými programy odvozenými z System-V).
Uživatelův domovský adresář, který je nastaven při přihlášení programem login(1) ze souboru hesel passwd(5).
The name of a locale to use for locale categories when not overridden by LC_ALL or more specific environment variables such as LC_COLLATE, LC_CTYPE, LC_MESSAGES, LC_MONETARY, LC_NUMERIC, and LC_TIME (see locale(7) for further details of the LC_* environment variables).
Seznam adresářů, které sh(1) a mnoho dalších programů používá při hledání souboru u něhož není známa kompletní cesta. Jednotlivé adresáře jsou odděleny ':'. (Podobně se CDPATH používá v některých shellech k nalezení cíle pro příkaz změny adresáře, man(1) používá MANPATH k nalezení manuálových stránek, atd.)
Aktuální pracovní adresář. Nastavují jej některé shelly.
Cesta k login shellu uživatele.
Typ terminálu, pro který má být připraven výstup.
Uživatelem preferovaná utilita pro zobrazení textových souborů.
Uživatelem preferovaná utilita pro editování textových souborů.

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.

Argumenty mohou být umístěny do prostředí i při volání funkce exec(3). Program v C může manipulovat svým prostředím pomocí funkcí getenv(3), putenv(3), setenv(3), a 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:

  • The variables LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL, LC_MESSAGES, and so on influence locale handling; see catopen(3), gettext(3), and locale(7).
  • TMPDIR ovlivňuje prefix cesty u názvů, které vytváří tempnam(3) a jiné rutiny, dočasný adresář, který používá sort(1) a jiné programy.
  • LD_LIBRARY_PATH, LD_PRELOAD a další LD_* proměnné ovlivňují chování dynamického loaderu/linkeru.
  • POSIXLY_CORRECT způsobí, že se určité programy a knihovní rutiny drží předpisů POSIX.
  • Chování malloc(3) je ovlivněno proměnnými MALLOC_*.
  • Proměnná HOSTALIASES obsahuje název souboru, který obsahuje aliasy pro použití s gethostbyname(3).
  • TZ a TZDIR obsahují informaci o časové zóně, kterou používá tzset(3) a tím pádem i funkce jako ctime(3), localtime(3), mktime(3), strftime(3). Viz též tzselect(8).
  • TERMCAP obsahuje informaci o možnostech terminálu (nebo název souboru obsahujícího tuto informaci).
  • COLUMNS a LINES sdělují aplikacím velikost okna, bez ohledu na jeho skutečnou velikost.
  • PRINTER nebo LPDEST mohou určit tiskárnu, která má být použita. Viz lpr(1).

POZNÁMKY

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.

CHYBY

Je zde jasné bezpečností riziko. Mnoho systémových příkazů může být svedeno k páchání škody uživatelem, který zadal zvláštní hodnoty pro IFS nebo LD_LIBRARY_PATH.

Existuje také riziko kontaminace jmenného prostoru. Programy jako make a autoconf umožňují upřednostnit výchozí názvy utilit prostředí podobně pojmenovanými proměnnými zapsanými velkými písmeny. Takže se používá CC pro výběr požadovaného překladače C (a podobně i MAKE, AR, AS, FC, LD, LEX, RM, YACC, atd.). Nicméně při klasickém použití předává takováto proměnná prostředí programu volbu, nikoliv název soboru. Takže se používá MORE, LESS, a GZIP. Takovéto použití se pokládá za chybu a nové programy by se mu měly vyhýbat. Autoži programu gzip by měli zvážit přejmenování volby na GZIP_OPT.

DALŠÍ INFORMACE

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)

TIRÁŽ

Tato stránka je součástí projektu Linux man-pages v5.10. Popis projektu a informace o hlášení chyb najdete na https://www.kernel.org/doc/man-pages/.

P◈EKLAD

Překlad této příručky do španělštiny vytvořili Pavel Heimlich <tropikhajma@gmail.com>

Tento překlad je bezplatná dokumentace; Přečtěte si GNU General Public License Version 3 nebo novější ohledně podmínek autorských práv. Neexistuje ŽÁDNÁ ODPOVĚDNOST.

Pokud narazíte na nějaké chyby v překladu této příručky, pošlete e-mail na adresu translation-team-cs@lists.sourceforge.net.

13. srpna 2020 Linux