.\" -*- coding: UTF-8 -*- .\" 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. .\" .\" %%%LICENSE_START(GPLv2+_DOC_FULL) .\" 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, see .\" . .\" %%%LICENSE_END .\" .\" 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 .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH ENVIRON 7 "13 августа 2020 г." Linux "Руководство программиста Linux" .SH ИМЯ environ \- пользовательское окружение .SH СИНТАКСИС .nf \fBextern char **\fP\fIenviron\fP\fB;\fP .fi .SH ОПИСАНИЕ Переменная \fIenviron\fP указывает на массив указателей на строки, который называют «окружением» (environment). Последний указатель в этом массиве имеет значение NULL (данная переменная должна быть объявлена в программе пользователя, а кроме того она объявлена в заголовочном файле \fI\fP, если определён макрос тестирования свойств \fB_GNU_SOURCE\fP). Указанный массив строк, становится доступным процессу после вызова \fBexec\fP(3), которая запускает процесс. Если дочерний процесс создаётся с помощью \fBfork\fP(2), то он наследует \fIкопию\fP окружения своего родителя. .PP По договорённости, строки в \fIenviron\fP имеют вид «\fIимя\fP\fB=\fP\fIзначение\fP». Вот некоторые примеры: .TP \fBUSER\fP Имя пользователя, зарегистрированного в системе (используется некоторыми программами, написанными для BSD). .TP \fBLOGNAME\fP Имя пользователя, зарегистрированного в системе (используется некоторыми программами, написанными для System\-V). .TP \fBHOME\fP Домашний каталог пользователя, устанавливается программой \fBlogin\fP(1) согласно значению из файла паролей \fBpasswd\fP(5). .TP \fBLANG\fP Имя локали используется для категорий локали, если не заменено значением \fBLC_ALL\fP или более специфичными переменными окружения, такими как \fBLC_COLLATE\fP, \fBLC_CTYPE\fP, \fBLC_MESSAGES\fP, \fBLC_MONETARY\fP, \fBLC_NUMERIC\fP и \fBLC_TIME\fP (подробней смотрите описание переменных окружения \fBLC_*\fP в \fBlocale\fP(7)). .TP \fBPATH\fP Последовательность каталогов, которые \fBsh\fP(1) и многие другие программы будут применять в качестве префикса при поиске файла, если он задан неполным именем Каталоги разделяются «\fB:\fP» (похожим образом переменная \fBCDPATH\fP используется некоторыми командными оболочками для поиска каталога, в который нужно перейти, \fBMANPATH\fP используется командой \fBman\fP(1) для поиска справочных страниц и т. д.). .TP \fBPWD\fP Текущий рабочий каталог. Устанавливается некоторыми командными оболочками. .TP \fBSHELL\fP Имя регистрационной командной оболочки пользователя. .TP \fBTERM\fP Тип терминала, для которого будет подготавливаться вывод. .TP \fBPAGER\fP Предпочитаемая пользователем утилита просмотра текстовых файлов. .TP \fBEDITOR\fP/\fBVISUAL\fP .\" .TP .\" .B BROWSER .\" The user's preferred utility to browse URLs. Sequence of colon-separated .\" browser commands. See http://www.catb.org/\(tiesr/BROWSER/ . Предпочитаемая пользователем утилита редактирования текстовых файлов. .PP Имена можно помещать в окружение оболочки с помощью команды \fIexport\fP в \fBsh\fP(1) или командой \fIsetenv\fP, если используется \fBcsh\fP(1). .PP Начальное окружение оболочки создаётся различными путями, например из файла \fI/etc/environment\fP, который обрабатывается \fBpam_env\fP(8) при входе любого пользователя (в системах с \fBpam\fP(8)). Также, различные сценарии инициализации оболочки, такие как системный сценарий \fI/etc/profile\fP и локальный пользовательский сценарий инициализации могут содержать команды, могут добавлять переменные в окружение оболочки; подробности смотрите в справочной странице на предпочитаемую оболочку. .PP Оболочки, подобные Bourne, поддерживают синтаксис .PP ИМЯ=значение команда .PP для создания определения переменной окружения только в процессе, который выполняет \fIкоманду\fP. Перед \fIкомандой\fP можно указывать несколько определений переменных, разделяя их пробельным символом. .PP При вызове \fBexec\fP(3) в окружение также могут быть помещены и аргументы. Программа, написанная на языке C, может изменять своё окружение с помощью функций \fBgetenv\fP(3), \fBputenv\fP(3), \fBsetenv\fP(3) и \fBunsetenv\fP(3). .PP Заметим, что наличие или значения определённых переменных окружения может отказывать влияние на поведение многих программ и библиотечных процедур. Примеры: .IP * 3 Переменные \fBLANG\fP, \fBLANGUAGE\fP, \fBNLSPATH\fP, \fBLOCPATH\fP, \fBLC_ALL\fP, \fBLC_MESSAGES\fP и т. д. влияют на работу с локалью; смотрите \fBcatopen\fP(3), \fBgettext\fP(3) и \fBlocale\fP(7). .IP * Переменная \fBTMPDIR\fP влияет на путь файлов, создаваемых \fBtempnam\fP(3) и некоторыми другими процедурами, а также на временный каталог, который используется \fBsort\fP(1) и некоторыми другими программами. .IP * Переменные \fBLD_LIBRARY_PATH\fP, \fBLD_PRELOAD\fP и другие \fBLD_*\fP влияют на поведение динамического загрузчика/компоновщика. .IP * Переменная \fBPOSIXLY_CORRECT\fP влияет на определённые программы и библиотечные вызовы таким образом, что они включают режим соответствия POSIX. .IP * На поведение \fBmalloc\fP(3) оказывают влияние переменные \fBMALLOC_*\fP. .IP * В переменной \fBHOSTALIASES\fP задаётся имя файла, содержащего псевдонимы имени узла, которые будут использованы в функции \fBgethostbyname\fP(3). .IP * В переменных \fBTZ\fP и \fBTZDIR\fP указывается информация о часовом поясе; они используются в функциях \fBtzset\fP(3), \fBctime\fP(3), \fBlocaltime\fP(3), \fBmktime\fP(3), \fBstrftime\fP(3). Смотрите также \fBtzselect\fP(8). .IP * В переменной \fBTERMCAP\fP указывается информация по работе с терминалом (можно указать имя файла, содержащего такую информацию). .IP * Через переменные \fBCOLUMNS\fP и \fBLINES\fP приложение может узнать о размере окна (возможно указать ненастоящий размер). .IP * В переменной \fBPRINTER\fP или \fBLPDEST\fP можно указать предпочтительный для печати принтер. Смотрите \fBlpr\fP(1). .SH ЗАМЕЧАНИЯ Операции \fBprctl\fP(2) \fBPR_SET_MM_ENV_START\fP и \fBPR_SET_MM_ENV_END\fP можно использовать для управления расположением окружения процесса. .SH ДЕФЕКТЫ Честно говоря, использование переменных окружения таит в себе проблемы с безопасностью. Многие системные команды могут неправильно работать, если пользователь укажет неправильные значения для переменной \fBIFS\fP или \fBLD_LIBRARY_PATH\fP. .PP Также есть риск засорения пространства имен. Такие программы как \fImake\fP и \fIautoconf\fP позволяют заменять имена используемых по умолчанию утилит через переменные окружения. Например, переменная \fBCC\fP используется для выбора нужного C\-компилятора (и, похожим образом, можно использовать переменные \fBMAKE\fP, \fBAR\fP, \fBAS\fP, \fBFC\fP, \fBLD\fP, \fBLEX\fP, \fBRM\fP, \fBYACC\fP и т.д.). Однако, есть случаи, когда в переменных окружения задают параметры программ, а не их имена (например, \fBMORE\fP, \fBLESS\fP и \fBGZIP\fP). Использование таких имён для переменных окружения является ошибочным и не должно применяться в новых программах. Авторы \fIgzip\fP должны бы переименовать переменную в \fBGZIP_OPT\fP. .SH "СМ. ТАКЖЕ" \fBbash\fP(1), \fBcsh\fP(1), \fBenv\fP(1), \fBlogin\fP(1), \fBprintenv\fP(1), \fBsh\fP(1), \fBtcsh\fP(1), \fBexecve\fP(2), \fBclearenv\fP(3), \fBexec\fP(3), \fBgetenv\fP(3), \fBputenv\fP(3), \fBsetenv\fP(3), \fBunsetenv\fP(3), \fBlocale\fP(7), \fBld.so\fP(8), \fBpam_env\fP(8) .SH ЗАМЕЧАНИЯ Эта страница является частью проекта Linux \fIman\-pages\fP версии 5.10. Описание проекта, информацию об ошибках и последнюю версию этой страницы можно найти по адресу \%https://www.kernel.org/doc/man\-pages/. .PP .SH ПЕРЕВОД Русский перевод этой страницы руководства был сделан Azamat Hackimov , Yuri Kozlov и Иван Павлов . .PP Этот перевод является бесплатной документацией; прочитайте .UR https://www.gnu.org/licenses/gpl-3.0.html Стандартную общественную лицензию GNU версии 3 .UE или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ. .PP Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо на .MT man-pages-ru-talks@lists.sourceforge.net .ME .