Jak ustawić zmienną środowiskową w ZSH

Jak ustawić zmienną środowiskową w ZSH

Jeśli kiedykolwiek używałeś terminalu Linux, prawdopodobnie jesteś świadomy zmiennych środowiskowych. Zmienne środowiskowe odnoszą się do zestawu nazw zmiennych dynamicznych, które przechowują wartość, której aplikacje mogą używać z linusowej powłoki.

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:

  1. Zmienne środowiska
  2. Zmienne powłoki.

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.

  • DOM - Reprezentuje katalog domowy dla obecnego użytkownika.
  • POWŁOKA - Pokazuje ścieżkę powłoki bieżącego użytkownika.
  • UŻYTKOWNIK - Pokazuje aktualnie zalogowany użytkownik.
  • ŚCIEŻKA - Zawiera listę katalisków, które mają być wyszukiwane w przypadku plików wykonywalnych po wykonaniu polecenia.
  • Lang - Pokazuje ustawienia lokalizacji, w tym kodowanie znaków
  • TERMIN - Odnosi się do bieżącej emulacji terminali.
  • _ - Pokazuje wcześniej wykonane polecenie dla tego użytkownika.

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.

  • Zsh_version - Wykonana wersja powłoki ZSH.
  • PODPOWIEDŹ - Pokazuje symbole zastępcze dla bieżącego formatu montażu ZSH. Podobne do $ PS1.
  • Histsize - Liczba poleceń historii przechowywanych w pamięci.
  • Histfile - Ścieżka do pliku historii poleceń ZSH.
  • Zsh_name - Nazwa powłoki ZSH.
  • UID - UID bieżącego użytkownika.
  • Ifs - Przechowuje wartość wewnętrznego separatora pola.

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.