Zmienne środowiskowe są parami wartości klucza, w których klucz reprezentuje nazwę zmiennej i wartość. Możesz dostosować wartości zmiennych środowisk.
W tym przewodniku omówi się w interakcji ze zmiennymi środowiskowymi, czytanie i ustawianie zmiennych środowiskowych za pomocą powłoki ZSH.
Jak działają zmienne środowiskowe
Poświęćmy chwilę, aby zrozumieć, jak działają zmienne środowiskowe.
W systemie Linux i innych systemów opartych na UNIX, za każdym razem, gdy uruchamiamy nową sesję powłoki, inicjuje proces zebrania informacji, które powinny być dostępne w ramach sesji powłoki i wszystkich procesów dziecięcych. Takie informacje są gromadzone z plików konfiguracyjnych, takich jak .Zshrc, .Zlogin itp.
Celem zmiennych środowiskowych jest zapewnienie prostego medium, w którym powłoka może pobierać lub ustawić ustawienia związane z systemem.
Zmienne środowiskowe przyjmują następujący format:
Klucz = wartość
Klucz = wartość 1: wartość2
Jeśli zmienna środowiskowa zawiera wiele wartości, każda wartość jest oddzielona dwukropkiem (:). Słynnym przykładem takiej zmiennej środowiskowej jest ścieżka $.
Podobnie, jeśli wartość zmiennej środowiskowej zawiera przestrzenie, wartość jest zamknięta w parach znaków cytatowych jako:
Key = „Wartość z przestrzeniami”
Zmienne środowiskowe są wrażliwe na przypadki. Zaleca się użycie nazwy wielkich do zmiennych środowiskowych, aby rozróżnić je w innych kontekstach.
Nie powinieneś zawierać przestrzeni wokół znaku równego (=).
Istnieją dwa główne typy zmiennych:
Zmienne środowiska
Zmienne środowiskowe są zmiennymi globalnymi odziedziczonymi przez wszystkie powłoki i odpowiednie procesy dziecka.
Zmienne powłoki
Z drugiej strony zmienne powłoki są dostępne w skorupce, w której są zdefiniowane lub ustawione. Są one powszechnie używane do przechowywania danych tymczasowych i są automatycznie niszczone po zakończeniu sesji powłoki.
Każda skorupa, taka jak Bash, Zsh, Fish i inne, zawiera własny zestaw zmiennych skorupy.
Jak drukować zmienne środowiskowe
Różne skorupy Linux śledzą ich predefiniowane zmienne powłoki i środowiska. Możemy wyświetlić te zmienne za pomocą różnych poleceń.
Najczęstszym poleceniem do wyświetlania zmiennych środowiskowych jest polecenie PrinteNV. Jeśli uruchomisz to polecenie bez żadnych argumentów, drukuje wszystkie zmienne środowiskowe, jak pokazano w poniższym przykładzie:
Printenv
Powyższe polecenie powinno wydrukować wszystkie zmienne środowiskowe, jak pokazano:
Shell =/bin/zsh
Session_manager = lokalny/debian10.Lokalne:@/tmp/.LÓD-
UNIX/964, UNIX/Debian10.lokalne:/tmp/.Ice-Unix/964
Qt_Accessibility = 1
Kolorterm = TrueColor
Xdg_menu_prefix = gnome-
Gnome_desktop_session_id = to-IS-Deprecated
Ssh_auth_sock =/run/user/1000/breaking/ssh
Desktop_session = gnome
GTK_MODULES = GAIL: ATK-BRIDGE
XDG_SEAT = Seat0
PWD =/Home/Debian
Xdg_session_desktop = gnome
LogName = Debian
Xdg_session_type = Wayland
Gjs_debug_topics = js błąd; js log
Gdm_lang = en_us.UTF-8
Strona główna =/Home/Debian
Nazwa użytkownika = Debian
---------Wyjście obcięte-------------------------------------
Korzystając z polecenia PrintenV, możesz wydrukować indywidualną zmienną, przekazując ją jako argument. Na przykład, aby pokazać wartość ścieżki $, możesz użyć polecenia:
Ścieżka printenv
Polecenie powinno zwrócić wartość zmiennej ścieżki jako:
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
Możesz także przekazać wiele zmiennych do polecenia PrinteNV jako:
$ Printenv ścieżka domowa nazwa użytkownika
/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games
/dom/debian
Debian
Polecenie powinno wydrukować wartości zmiennych środowiskowych przekazywanych w jednym wierszu.
WSKAZÓWKA: Możesz także użyć polecenia ENV do drukowania lub ustawienia wartości zmiennych środowiskowych.
Popularne zmienne środowiskowe
Poniżej znajdują się standardowe zmienne środowiskowe.
Jak wydrukować zmienne skorupy
Zarówno polecenia PrinteNV, jak i Env pokażą tylko zmienne środowiskowe. Użyj polecenia SET, aby wyświetlić wszystkie zmienne, w tym zmienne powłoki i lokalne, funkcje i zmienne środowiskowe.
Jeśli wykonasz polecenie SET bez żadnych parametrów, wydrukuje wszystkie zmienne jako:
ustawić
Oto przykład wyjścia:
'!'= 0
'#' = 0
'$' = 2801
'*' = ()
-= 569JNRXZGHIKLMS
0 = Zsh
'?'= 0
@= ()
Argc = 0
BG
Cdpath = "
Kolorterm = TrueColor
Kolumny = 211
Cputype = x86_64
Dbus_session_bus_address = 'UNIX: ścieżka =/run/user/1000/bus'
Desktop_session = gnome
Wyświetlacz =: 0
Egid = 1000
Epokrealtime
Epokekundy
EUID = 1000
FG
Fignore = "
Fpath =/home/debian/.oh-my-zsh/wtyczki/git:/home/debian/.o mój-
zsh/funkcje:/home/debian/.Oh-my-Zsh/Ukończenia
---Wyjście obcięte----------------------------------------
Wartości wydrukowane z polecenia SET są zazwyczaj masywną listą elementów, które można filtrować, kierując wyjście do poleceń, takich jak GREP.
Popularne zmienne skorupowe
Chociaż zmienne powłoki będą się różnić w zależności od używanej powłoki; Następujące są powszechne w skorupce ZSH.
Jak ustawić zmienne środowiskowe w ZSH
Aby ustawić zmienne środowiskowe, używamy polecenia eksportu. Składnia to:
Klucz eksportu = wartość
Na przykład, aby utworzyć zmienną http_proxy i ustawić ją na adres URL, możemy zrobić:
Eksportuj http_proxy = "http: // 127.0.0.1: 8080 "
Aby zweryfikować tworzenie zmiennej, możemy użyć polecenia PrintenV jako:
Printenv http_proxy
http: // 127.0.0.1: 8080
Po ustawieniu zmiennej środowiskowej możesz uzyskać do niej dostęp ze wszystkich procesów dziecka. Na przykład:
Zsh -c 'echo $ http_proxy'
Jednak zmienne środowiskowe utworzone w metodzie omówionej powyżej są dostępne tylko w bieżącej sesji powłoki. Po zamknięciu wszystkie zmienne środowiskowe są zniszczone.
Jak tworzyć stałe zmienne środowiskowe
Jeśli chcesz utworzyć zmienną środowiskową, która może utrzymywać się w sesjach powłoki, możesz użyć plików konfiguracji powłoki.
W ZSH możesz zdefiniować zmienne środowiskowe w .plik Zshrc.
Podobnie musisz użyć polecenia eksportu jako:
vim ~/.Zshrc
Eksportuj http_proxy- "http: // 127.0.0.1: 8080 "
Zamknij i zapisz plik.
Aby załadować zmienne środowiskowe w bieżącej sesji powłoki, użyj polecenia źródłowego jako:
Źródło ~/.Zshrc
Wniosek
W tym przewodniku omówiliśmy, jak pracować ze środowiskiem i zmiennymi powłokami w systemach Linux. Nauczyliśmy się również, jak ustawić zmienne środowiskowe i stosować trwałość w sesjach powłoki.
Dziękuję za przeczytanie.