Provided by: manpages-pl_4.23.1-1_all bug

NAZWA

       environ - środowisko użytkownika

SKŁADNIA

       extern char **environ;

OPIS

       Zmienna  environ  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ę  execve(2)  podczas
       uruchamiania  nowego  programu.  Gdy  proces  potomny  jest  tworzony  przez  fork(2), dziedziczy copy ze
       środowiska swojego rodzica.

       Zgodnie z konwencją, łańcuch w environ ma postać "nazwa=wartość". Nazwa jest wrażliwa na wielkość liter i
       nie może zawierać znaku równości "=".  Wartość może być wszystkim co można zapisać jako łańcuch tekstowy.
       Nazwa i wartość nie mogą zawierać bajtu zerowego ("\0"), gdyż służy on do zakończenia łańcucha.

       Zmienne środowiskowe mogą być umieszczane w środowisku powłoki poleceniem export w sh(1) lub setenv jeśli
       korzysta się z csh(1).

       Na początkowe środowisko powłoki ma wpływ  wiele  czynników,  takich  jak  definicje  z  /etc/environment
       przetwarzane  dla  wszystkich  użytkowników przy logowaniu przez pam_env(8) (w systemach korzystających z
       pam(8)). Dodatkowo wiele inicjalizacyjnych skryptów powłoki, takich jak systemowy skrypt  /etc/profile  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.

       Powłoki wzorowane na powłoce Bourne'a obsługują składnię

           NAZWA=wartość polecenie

       aby  zdefiniować  zmienną  środowiskową  wyłącznie  w  zakresie  procesu  wykonującego  polecenie.  Przed
       poleceniem można podać wiele definicji, oddzielonych białym znakiem.

       W  środowisku  mogą  być  również  umieszczane  argumenty w momencie wykonywania funkcji exec(3). Program
       napisany w  C  może  manipulować  środowiskiem  za  pomocą  funkcji  getenv(3),  putenv(3),  setenv(3)  i
       unsetenv(3).

       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.

       USER   Nazwa  zalogowanego  użytkownika  (wykorzystywana  przez  niektóre  programy wywodzące się z BSD).
              Ustawiana przy logowaniu, zob. poniższy rozdział UWAGI.

       LOGNAME
              Nazwa zalogowanego użytkownika (wykorzystywana przez niektóre programy wywodzące się z Systemu V).
              Ustawiana przy logowaniu, zob. poniższy rozdział UWAGI.

       HOME   Katalog domowy użytkownika. Ustawiany przy logowaniu, zob. poniższy rozdział UWAGI.

       LANG   Nazwa ustawień językowych, jaka ma być stosowana dla  wszystkich  kategorii  ustawień,  jeśli  nie
              zostały  narzucone  przez  zmienną  środowiskową,  taką  jak  LC_COLLATE,  LC_CTYPE,  LC_MESSAGES,
              LC_MONETARY, LC_NUMERIC i LC_TIME (zob. locale(7) aby dowiedzieć się więcej o zmiennych LC_*).

       PATH   Sekwencja przedrostków katalogów używanych przez sh(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 (:). 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

              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. .) do określenia bieżącego katalogu roboczego.

              Podobnie  jak PATH, CDPATH jest używane przez niektóre powłoki do poszukiwania katalogu docelowego
              dla polecenia zmiany katalogu, MANPATH jest używane przez man(1) do poszukiwania stron podręcznika
              itd.

       PWD    Bezwzględna ścieżka do bieżącego katalogu roboczego, musi być częściowo kanoniczna (bez składowych
              . lub ..).

       SHELL  Absolutna ścieżka do powłoki logowania użytkownika. Ustawiana przy logowaniu, zob. rozdział  UWAGI
              poniżej.

       TERM   Rodzaj terminala, dla którego system ma przygotowywać wyjście.

       PAGER  Preferowane  przez  użytkownika narzędzie do wyświetlania plików tekstowych. Poprawny będzie każdy
              łańcuch akceptowany jako argument do polecenia sh -c. Jeśli PAGER  jest  pusta  lub  nieustawiona,
              aplikacje skorzystają z domyślnego programu takiego jak less(1) lub more(1).

       EDITOR/VISUAL
              Preferowane przez użytkownika narzędzie do edycji plików tekstowych. Poprawny będzie każdy łańcuch
              akceptowany jako argument do polecenia sh -c.

       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:

       •  Zmienne LANG, LANGUAGE, NLSPATH, LOCPATH, LC_ALL,  LC_MESSAGES,  itd.  wpływają  na  obsługę  ustawień
          językowych, zob. catopen(3), gettext(3) i locale(7).

       •  TMPDIR  wpływa  na  prefiks  ścieżki w nazwach tworzonych przez tempnam(3) i inne funkcje oraz katalog
          tymczasowy wykorzystywany przez sort(1) i inne programy itd.

       •  LD_LIBRARY_PATH,   LD_PRELOAD   i   inne   zmienne    LD_*    wpływają    na    zachowanie    programu
          ładującego/konsolidatora bibliotek dynamicznych. Zob. też ld.so(8).

       •  POSIXLY_CORRECT powoduje, że niektóre programy i funkcje biblioteczne przestrzegają zaleceń POSIX.

       •  Na zachowanie malloc(3) wpływają zmienne MALLOC_*.

       •  Zmienna HOSTALIASES określa nazwę pliku zawierającego aliasy, z których ma korzystać gethostbyname(3).

       •  TZ  i  TZDIR  podają informacje o strefie czasowej wykorzystywaną przez tzset(3) i przez funkcje takie
          jak ctime(3), localtime(3), mktime(3), strftime(3).  Zobacz także tzselect(8).

       •  TERMCAP  podaje  informacje  o  tym,  jak  adresować  określony  terminal  (lub  podaje  nazwę   pliku
          zawierającego te informacje).

       •  COLUMNS  i  LINES  mówią  aplikacjom  o  rozmiarze  okna,  ewentualnie  narzucając  wartości  inne niż
          rzeczywiste rozmiary.

       •  PRINTER lub LPDEST mogą określać drukarkę, która powinna być używana. Zobacz lpr(1).

UWAGI

       Historycznie i w zgodności ze standardem, environ musi być zadeklarowane w programie użytkownika.  Jednak
       dla  wygody  programisty  environ  jest  (niestandardowo)  deklarowane  w nagłówku pliku <unistd.h> jeśli
       zdefiniowane jest testowe makro _GNU_SOURCE (zob. feature_test_macros(7)).

       Operacje PR_SET_MM_ENV_START i PR_SET_MM_ENV_END prctl(2) mogą posłużyć do kontroli położenia  środowiska
       procesu.

       Zmienne HOME, LOGNAME, SHELL i USER są ustawiane gdy dochodzi do zmiany użytkownika, za pomocą interfejsu
       zarządzania  sesją,  zwykle  przez  program  typu  login(1),  na  takiego z bazy danych użytkowników (np.
       passwd(5)). Przełączenie na użytkownika root za pomocą su(1) może skutkować mieszanym  środowiskiem,  gdy
       LOGNAME i USER pochodzą jeszcze od starego użytkownika; zob. stronę podręcznika systemowego su(1).

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   IFS   lub
       LD_LIBRARY_PATH.

       Istnieje  również  ryzyko  skażenia  przestrzeni  nazw.  Programy  takie jak make i autoconf 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ę CC do
       określenia  pożądanego  kompilatora C (i podobnie MAKE, AR, AS, FC, LD, LEX, RM, YACC itd.).  Jednakże, w
       niektórych tradycyjnych zastosowaniach takie zmienne środowiskowe  podają  opcje  dla  programów  zamiast
       ścieżki.  Zatem  mamy  MORE  i  LESS. Takie zastosowanie jest traktowane jako błędne i należy go unikać w
       nowych programach.

ZOBACZ TAKŻE

       bash(1), csh(1), env(1), login(1), printenv(1), sh(1), su(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)

TŁUMACZENIE

       Autorami  polskiego  tłumaczenia  niniejszej  strony podręcznika są: Przemek Borys <pborys@dione.ids.pl>,
       Robert Luberda <robert@debian.org> i Michał Kułach <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje  o  warunkach  licencji  można  uzyskać
       zapoznając   się   z   GNU General Public License w wersji 3   lub  nowszej.  Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej  manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.8                              2 maja 2024 r.                                       environ(7)