plucky (7) environ.7.gz

Provided by: manpages-pl_4.25.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 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ 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⟩.