Zmienna środowiskowa w systemie Linux może służyć do przekazywania informacji lub wpływania na zachowanie aplikacji lub procesu. W tym artykule wyjaśnimy różne sposoby ustawiania zmiennych środowiskowych i sposoby ich używania.
Aby ustawić zmienną środowiskową dla aktualnie używanej powłoki, zdefiniuj zmienną w następującym formacie:
$MYVAR=xyz
Definicja jest oczywista, MYVAR to nazwa zmiennej, a xyz to jej wartość. Uruchomienie poniższego polecenia zweryfikuje, czy zmienna środowiskowa została poprawnie ustawiona:
$wyrzucił $MYVAR
Zwróć uwagę na składnię zmiennych środowiskowych. Chociaż działają one jak inne zmienne powłoki, ogólnie dobrą praktyką jest używanie wielkich liter i podkreśleń dla lewej strony (nazwa zmiennej).
Aby usunąć zmienną, użyj poniższego polecenia:
$nieoprawnyMYVAR
Jeśli ponownie sprawdzisz zmienną za pomocą wspomnianego powyżej polecenia echo, żadne dane wyjściowe nie zostaną wyświetlone. Zauważ, że unset będzie działać tylko dla bieżącej sesji terminala. Jeśli w systemie są zdefiniowane globalne, ogólnosystemowe zmienne środowiskowe, będą one ponownie dostępne w nowej sesji terminala.
Aby ustawić zmienną środowiskową dla aktualnie używanej powłoki, a także dla wszelkich procesów potomnych / powłok uruchamianych z niej, użyj zmiennej w następującym formacie:
$eksport MYVAR=xyzAby na stałe ustawić zmienną środowiskową dla powłok bash (większość domyślnych aplikacji terminalowych w dystrybucjach systemu Linux jest skonfigurowana dla powłoki bash), dodaj zmienną (ze słowem kluczowym export) na końcu ukrytego pliku .bashrc w katalogu domowym.
eksportuj MYVAR=xyzMożesz edytować plik .bashrc, uruchamiając poniższe polecenie:
$subl ~/.bashrcZastąp subl poleceniem swojego ulubionego edytora tekstu. Będziesz musiał ponownie załadować plik .bashrc, aby włączyć zmiany. Uruchom poniższe polecenie, aby to zrobić:
$źródło~/.bashrcPoniżej znajduje się przykład niestandardowych zmiennych środowiskowych, które ustawiłem dla Ruby Gems.
Możesz wyświetlić wszystkie zmienne środowiskowe włączone w systemie, uruchamiając poniższe polecenie:
$zazdrościćAby konkretnie sprawdzić, czy niestandardowa zmienna środowiskowa dodana do pliku .bashrc została włączona, czy nie, uruchom poniższe polecenie:
$zazdrościć | chwyt MYVAR=Aby ustawić zmienną środowiskową dla całego systemu dla wszystkich aplikacji, powłok i procesów, dodaj swoją niestandardową zmienną w pliku /etc/environment bez słowa kluczowego export.
MYVAR=xyzMożesz edytować plik /etc/environment, uruchamiając poniższe polecenie:
$sudosubl/itp/środowiskoZastąp subl swoim ulubionym edytorem tekstu. Może być konieczne ponowne uruchomienie systemu, aby zmiany zaczęły obowiązywać. Aby sprawdzić, czy zmienna niestandardowa została prawidłowo ustawiona, uruchom poniższe polecenie:
$zazdrościć | chwyt MYVAR=Alternatywnie możesz użyć polecenia printenv, aby zweryfikować zmiany:
$printenv MYVARZauważ, że wyjaśnione powyżej polecenie unset działa dla wszystkich niestandardowych zmiennych środowiskowych, niezależnie od tego, czy są to zmienne specyficzne dla sesji, czy globalne. Jednak unset usuwa zmienną tylko dla działającej sesji powłoki i nie usunie na stałe żadnej zmiennej systemowej ani globalnej.
Niektóre z predefiniowanych zmiennych środowiskowych w Ubuntu obejmują:
- USER – nazwa zalogowanego użytkownika
- HOME – katalog domowy zalogowanego użytkownika (zwykle /home/username)
- WYŚWIETLACZ – aktywny monitor w użyciu (zwykle automatycznie ustawiany przez menedżera logowania)
- PWD – katalog roboczy, w którym używana lub wywoływana jest powłoka
- SHELL – powłoka używana w całym systemie (zwykle /bin/bash)
- LANG – język używany przez system (zdefiniowany przez użytkownika, można go zmienić)
- PATH – skrypty/binaria/pliki wykonywalne są przeszukiwane w katalogach ustawionych w zmiennej PATH
Niektóre zmienne środowiskowe, które są powszechnie używane do wpływania na zachowanie aplikacji:
- LC_ALL – wymusza nadpisanie ustawień regionalnych użytkownika wartością określoną w zmiennej
- LD_LIBRARY_PATH – służy do definiowania dodatkowych katalogów, w których będą przeszukiwane biblioteki uruchomieniowe
- PATH – służy do definiowania dodatkowych katalogów, w których będą przeszukiwane skrypty/binaria/pliki wykonywalne
- LD_PRELOAD – służy do ładowania niestandardowych/obniżonych/zaktualizowanych bibliotek w aplikacji
To oznacza koniec tego artykułu. Zmienne środowiskowe w systemie Linux pomagają w uruchamianiu zmodyfikowanych poleceń i aplikacji bez faktycznej modyfikacji bazowego źródła i plików binarnych, zapewniając sposób definiowania i używania zmiennych globalnych w całym systemie.