.\" -*- 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.
.\"
.\" SPDX-License-Identifier: GPL-2.0-or-later
.\"
.\" 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>
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH environ 7 "15 czerwca 2024 r." "Linux man\-pages 6.9.1" 
.SH NAZWA
environ \- środowisko użytkownika
.SH SKŁADNIA
.nf
\fBextern char **\fP\fIenviron\fP\fB;\fP
.fi
.SH OPIS
Zmienna \fIenviron\fP wskazuje na tablicę łańcuchów zwaną
"środowiskiem". Ostatni wskaźnik w tej tablicy musi mieć wartość NULL. Ta
tablica łańcuchów udostępniana jest procesowi przez funkcję \fBexecve\fP(2)
podczas uruchamiania nowego programu. Gdy proces potomny jest tworzony przez
\fBfork\fP(2), dziedziczy \fIcopy\fP ze środowiska swojego rodzica.
.P
Zgodnie z konwencją, łańcuch w \fIenviron\fP ma postać
"\fInazwa\fP\fB=\fP\fIwartość\fP". Nazwa jest wrażliwa na wielkość liter i nie może
zawierać znaku równości "\fB=\fP".  Wartość może być wszystkim co można zapisać
jako łańcuch tekstowy. Nazwa i wartość nie mogą zawierać bajtu zerowego
("\[rs]0"), gdyż służy on do zakończenia łańcucha.
.P
Zmienne środowiskowe mogą być umieszczane w środowisku powłoki poleceniem
\fIexport\fP w \fBsh\fP(1) lub \fIsetenv\fP jeśli korzysta się z \fBcsh\fP(1).
.P
Na początkowe środowisko powłoki ma wpływ wiele czynników, takich jak
definicje z \fI/etc/environment\fP przetwarzane dla wszystkich użytkowników
przy logowaniu przez \fBpam_env\fP(8) (w systemach korzystających z
\fBpam\fP(8)). Dodatkowo wiele inicjalizacyjnych skryptów powłoki, takich jak
systemowy skrypt \fI/etc/profile\fP i skrypty inicjalizacyjne użytkowników mogą
zawierać polecenia dodające zmienne do środowiska powłoki; proszę zapoznać
się z podręcznikiem systemowym swojej powłoki, aby dowiedzieć się więcej.
.P
Powłoki wzorowane na powłoce Bourne'a obsługują składnię
.P
.in +4n
.EX
NAZWA=wartość polecenie
.EE
.in
.P
aby zdefiniować zmienną środowiskową wyłącznie w zakresie procesu
wykonującego \fIpolecenie\fP. Przed \fIpoleceniem\fP można podać wiele definicji,
oddzielonych białym znakiem.
.P
W środowisku mogą być również umieszczane argumenty w momencie wykonywania
funkcji \fBexec\fP(3). Program napisany w C może manipulować środowiskiem za
pomocą funkcji \fBgetenv\fP(3), \fBputenv\fP(3), \fBsetenv\fP(3) i \fBunsetenv\fP(3).
.P
Poniżej przedstawiono listę zmiennych środowiskowych występujących zwykle w
systemie. Jest niekompletna i zawiera wyłącznie powszechne zmienne spotykane
na co dzień przez przeciętnego użytkownika. Zmienne środowiskowe przypisane
określonemu programowi lub funkcji bibliotecznej opisano w rozdziale
ŚRODOWISKO właściwego podręcznika systemowego.
.TP 
\fBUSER\fP
Nazwa zalogowanego użytkownika (wykorzystywana przez niektóre programy
wywodzące się z BSD). Ustawiana przy logowaniu, zob. poniższy rozdział
UWAGI.
.TP 
\fBLOGNAME\fP
Nazwa zalogowanego użytkownika (wykorzystywana przez niektóre programy
wywodzące się z Systemu V). Ustawiana przy logowaniu, zob. poniższy rozdział
UWAGI.
.TP 
\fBHOME\fP
Katalog domowy użytkownika. Ustawiany przy logowaniu, zob. poniższy rozdział
UWAGI.
.TP 
\fBLANG\fP
Nazwa ustawień językowych, jaka ma być stosowana dla wszystkich kategorii
ustawień, jeśli nie zostały narzucone przez zmienną środowiskową, taką jak
\fBLC_COLLATE\fP, \fBLC_CTYPE\fP, \fBLC_MESSAGES\fP, \fBLC_MONETARY\fP, \fBLC_NUMERIC\fP i
\fBLC_TIME\fP (zob. \fBlocale\fP(7) aby dowiedzieć się więcej o zmiennych
\fBLC_*\fP).
.TP 
\fBPATH\fP
Sekwencja przedrostków katalogów używanych przez \fBsh\fP(1) i wiele innych
programów przy wyszukiwaniu pliku wykonywalnego podanego jako zwykła nazwa
pliku (tj. którego ścieżka nie zawiera ukośników). Przedrostki są oddzielone
dwukropkami (\fB:\fP). Lista  przedrostków jest przeszukiwana od początku do
końca, poprzez sprawdzenie ścieżki zawierającej przedrostek, ukośnik i nazwę
pliku, dopóki nie odnajdzie się plik wykonywalny
.IP
Dla zapewnienia kompatybilności, przedrostek zerowy (określony jako dwa
złączone dwukropki lub dwukropek rozpoczynający lub kończący) jest
interpretowany jako bieżący katalog roboczy. Takie użycie jest przestarzałe,
a POSIX zaznacza, że zgodne z nim aplikacje powinny używać jawnej ścieżki
(np. \fI.\fP) do określenia bieżącego katalogu roboczego.
.IP
Podobnie jak \fBPATH\fP, \fBCDPATH\fP jest używane przez niektóre powłoki do
poszukiwania katalogu docelowego dla polecenia zmiany katalogu, \fBMANPATH\fP
jest używane przez \fBman\fP(1) do poszukiwania stron podręcznika itd.
.TP 
\fBPWD\fP
Bezwzględna ścieżka do bieżącego katalogu roboczego, musi być częściowo
kanoniczna (bez składowych \fI.\&\fP lub \fI..\&\fP).
.TP 
\fBSHELL\fP
Absolutna ścieżka do powłoki logowania użytkownika. Ustawiana przy
logowaniu, zob. rozdział UWAGI poniżej.
.TP 
\fBTERM\fP
Rodzaj terminala, dla którego system ma przygotowywać wyjście.
.TP 
\fBPAGER\fP
Preferowane przez użytkownika narzędzie do wyświetlania plików
tekstowych. Poprawny będzie każdy łańcuch akceptowany jako argument do
polecenia \fIsh\ \-c\fP. Jeśli \fBPAGER\fP jest pusta lub nieustawiona, aplikacje
skorzystają z domyślnego programu takiego jak \fBless\fP(1) lub \fBmore\fP(1).
.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/\[ti]esr/BROWSER/ .
Preferowane przez użytkownika narzędzie do edycji plików
tekstowych. Poprawny będzie każdy łańcuch akceptowany jako argument do
polecenia \fIsh\ \-c\fP.
.P
Trzeba zauważyć, że obecność lub wartości pewnych zmiennych środowiska mają
wpływ na zachowanie wielu programów i funkcji bibliotecznych. Oto przykłady:
.IP \[bu] 3
Zmienne \fBLANG\fP, \fBLANGUAGE\fP, \fBNLSPATH\fP, \fBLOCPATH\fP, \fBLC_ALL\fP,
\fBLC_MESSAGES\fP, itd. wpływają na obsługę ustawień językowych,
zob. \fBcatopen\fP(3), \fBgettext\fP(3) i \fBlocale\fP(7).
.IP \[bu]
\fBTMPDIR\fP wpływa na prefiks ścieżki w nazwach tworzonych przez \fBtempnam\fP(3)
i inne funkcje oraz katalog tymczasowy wykorzystywany przez \fBsort\fP(1) i
inne programy itd.
.IP \[bu]
\fBLD_LIBRARY_PATH\fP, \fBLD_PRELOAD\fP i inne zmienne \fBLD_*\fP wpływają na
zachowanie programu ładującego/konsolidatora bibliotek
dynamicznych. Zob. też \fBld.so\fP(8).
.IP \[bu]
\fBPOSIXLY_CORRECT\fP powoduje, że niektóre programy i funkcje biblioteczne
przestrzegają zaleceń POSIX.
.IP \[bu]
Na zachowanie \fBmalloc\fP(3) wpływają zmienne \fBMALLOC_*\fP.
.IP \[bu]
Zmienna \fBHOSTALIASES\fP określa nazwę pliku zawierającego aliasy, z których
ma korzystać \fBgethostbyname\fP(3).
.IP \[bu]
\fBTZ\fP i \fBTZDIR\fP podają informacje o strefie czasowej wykorzystywaną przez
\fBtzset\fP(3) i przez funkcje takie jak \fIctime\fP(3), \fIlocaltime\fP(3),
\fImktime\fP(3), \fIstrftime\fP(3).  Zobacz także \fBtzselect\fP(8).
.IP \[bu]
\fBTERMCAP\fP podaje informacje o tym, jak adresować określony terminal (lub
podaje nazwę pliku zawierającego te informacje).
.IP \[bu]
\fBCOLUMNS\fP i \fBLINES\fP mówią aplikacjom o rozmiarze okna, ewentualnie
narzucając wartości inne niż rzeczywiste rozmiary.
.IP \[bu]
\fBPRINTER\fP lub \fBLPDEST\fP mogą określać drukarkę, która powinna być
używana. Zobacz \fBlpr\fP(1).
.SH UWAGI
Historycznie i w zgodności ze standardem, \fIenviron\fP musi być zadeklarowane
w programie użytkownika. Jednak dla wygody programisty \fIenviron\fP jest
(niestandardowo) deklarowane w nagłówku pliku \fI<unistd.h>\fP jeśli
zdefiniowane jest testowe makro \fB_GNU_SOURCE\fP
(zob. \fBfeature_test_macros\fP(7)).
.P
Operacje \fBPR_SET_MM_ENV_START\fP i \fBPR_SET_MM_ENV_END\fP \fBprctl\fP(2) mogą
posłużyć do kontroli położenia środowiska procesu.
.P
Zmienne \fBHOME\fP, \fBLOGNAME\fP, \fBSHELL\fP i \fBUSER\fP są ustawiane gdy dochodzi do
zmiany użytkownika, za pomocą interfejsu zarządzania sesją, zwykle przez
program typu \fBlogin\fP(1), na takiego z bazy danych użytkowników
(np. \fBpasswd\fP(5)). Przełączenie na użytkownika root za pomocą \fBsu\fP(1) może
skutkować mieszanym środowiskiem, gdy \fBLOGNAME\fP i \fBUSER\fP pochodzą jeszcze
od starego użytkownika; zob. stronę podręcznika systemowego \fBsu\fP(1).
.SH USTERKI
Oczywiście istnieje tu ryzyko naruszenia bezpieczeństwa. Wiele poleceń
systemowych zostało oszukanych w celu wyrządzenia szkody przez użytkownika,
który nadał nietypowe wartości zmiennym \fBIFS\fP lub \fBLD_LIBRARY_PATH\fP.
.P
Istnieje również ryzyko skażenia przestrzeni nazw. Programy takie jak
\fImake\fP i \fIautoconf\fP pozwalają na nadpisywanie domyślnych nazw programów
narzędziowych poprzez środowisko zawierające zmienne o nazwach podobnych do
nazw tych programów, ale składających się wyłącznie z wielkich liter.  Zatem
używa się \fBCC\fP do określenia pożądanego kompilatora C (i podobnie \fBMAKE\fP,
\fBAR\fP, \fBAS\fP, \fBFC\fP, \fBLD\fP, \fBLEX\fP, \fBRM\fP, \fBYACC\fP itd.).  Jednakże, w
niektórych tradycyjnych zastosowaniach takie zmienne środowiskowe podają
opcje dla programów zamiast ścieżki. Zatem mamy \fBMORE\fP i \fBLESS\fP. Takie
zastosowanie jest traktowane jako błędne i należy go unikać w nowych
programach.
.SH "ZOBACZ TAKŻE"
\fBbash\fP(1), \fBcsh\fP(1), \fBenv\fP(1), \fBlogin\fP(1), \fBprintenv\fP(1), \fBsh\fP(1),
\fBsu\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)
.PP
.SH TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika:
Przemek Borys <pborys@dione.ids.pl>,
Robert Luberda <robert@debian.org>
i
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
