Lista zmiennych środowiskowych w systemie Linux/Unix

⚡ Inteligentne podsumowanie

Zmienne środowiskowe w systemach Linux i Unix to dynamiczne wartości nazwane, które kształtują sposób działania programów i powłoki, przechowując ustawienia, takie jak zmienna PATH, katalog domowy, domyślny edytor, język i aktualnie używana powłoka.

  • 🌱 Czym oni są: Zmienne środowiskowe przechowują dynamiczne wartości, które mają wpływ na procesy. Można je tworzyć, edytować i usuwać.
  • 🧭 ŚCIEŻKA: Zmienna PATH zawiera listę katalogów, w których powłoka przeszukuje pliki w celu znalezienia i uruchomienia poleceń wykonywalnych.
  • 🔎 Odczyt wartości: Polecenie echo wyświetla jedną zmienną, natomiast env i printenv wyświetlają wszystkie zmienne środowiskowe.
  • 🆕 Tworzenie: Przypisz wartość za pomocą NAME=wartość, a następnie użyj polecenia export, aby udostępnić ją procesom potomnym.
  • 🗑️ Usuwanie: Polecenie unset usuwa zmienną i jej wartość z bieżącej sesji powłoki.
  • 💾 Trwałość: Dodaj wiersze eksportu do ~/.bashrc lub /etc/environment, aby zachować zmienne pomiędzy sesjami.
  • 🤖 Pomoc AI: Asystenci AI i GitHub Copilot mogą audytować zmienne i generować skrypty powłoki, które z nich korzystają.

Lista typowych zmiennych środowiskowych w systemach Linux i Unix

Zmienne środowiskowe to jedna z pierwszych rzeczy, które warto zrozumieć na każdym etapie Linux lub system Unix, ponieważ dyskretnie kontrolują działanie programów i powłoki. Ten przewodnik wyjaśnia, czym są, jakie są najczęstsze i jak je odczytywać, tworzyć i usuwać.

Co to jest środowisko komputerowe?

Środowisko obliczeniowe to platforma (platforma = system operacyjny + procesor), gdzie użytkownik może uruchamiać programy.

Co to jest zmienna?

W informatyce zmienna to miejsce przechowywania wartości, którą może być nazwa pliku, tekst, liczba lub dowolne inne dane. Zazwyczaj jest ona nazywana nazwą symboliczną, nadaną jej podczas tworzenia. Zapisaną wartość można następnie wyświetlić, usunąć, edytować i ponownie zapisać.

Zmienne odgrywają ważną rolę w programowaniu komputerowym, ponieważ umożliwiają programistom pisanie elastycznych programów. Ponieważ są one powiązane z systemem operacyjnym, w którym pracujesz, ważne jest, aby znać niektóre z nich i wiedzieć, jak na nie wpływać.

Czym są zmienne środowiskowe?

Zmienne środowiskowe to wartości dynamiczne, które wpływają na procesy lub programy na komputerze. Występują w każdym systemie operacyjnym, ale ich typy mogą się różnić. Zmienne środowiskowe można tworzyć, edytować, zapisywać i usuwać, a także dostarczają informacji o zachowaniu systemu.

Zmienne środowiskowe mogą zmieniać sposób działania oprogramowania i programów. Na przykład zmienna środowiskowa $LANG przechowuje język zrozumiały dla użytkownika. Ta wartość jest odczytywana przez aplikację, dzięki czemu użytkownikowi chińskiemu wyświetlany jest interfejs w języku mandaryńskim, a użytkownikowi amerykańskiemu interfejs w języku angielskim.

Przyjrzyjmy się bliżej kilku powszechnie występującym zmiennym środowiskowym:

Zmienna OPIS
PATH Ta zmienna zawiera listę katalogów, rozdzielonych dwukropkami (:), w których system szuka plików wykonywalnych. Po wpisaniu polecenia w terminalu, powłoka szuka go w katalogach wymienionych w zmiennej $PATH. Jeśli polecenie zostanie znalezione, zostanie wykonane. W przeciwnym razie zwróci błąd „polecenie nie znaleziono”.
USER Nazwa użytkownika
GŁÓWNA Domyślna ścieżka do katalogu domowego użytkownika
REDAKCJA Ścieżka do programu edytującego zawartość plików
NIP (VAT) Unikalny identyfikator użytkownika
TERM Domyślny emulator terminala
SHELL Powłoka używana przez użytkownika

Dostęp do wartości zmiennych

Aby ustalić wartość zmiennej, należy użyć polecenia echo:

echo $VARIABLE

Na przykład zrzut ekranu poniżej pokazuje wartość zmiennej PATH wyświetlaną za pomocą polecenia echo.

Wyświetlanie wartości zmiennej PATH za pomocą polecenia echo

Każdą zmienną środowiskową można odczytać w ten sam sposób. Poniższy wynik pokazuje, jak echo zwraca wartość zmiennej.

Wynik polecenia echo pokazujący wartość zmiennej środowiskowej

Zmienne rozróżniają wielkość liter, dlatego upewnij się, że w nazwie zmiennej wpisałeś ją z odpowiednią wielkością liter; w przeciwnym razie możesz nie uzyskać oczekiwanego rezultatu. Aby wyświetlić wszystkie zmienne środowiskowe naraz, użyj polecenia env, jak pokazano poniżej.

Polecenie env wyświetlające wszystkie zmienne środowiskowe w terminalu

Ustaw nowe zmienne środowiskowe

Możesz utworzyć własną zmienną zdefiniowaną przez użytkownika, korzystając z następującej składni:

VARIABLE_NAME=variable_value

Pamiętaj, że nazwy zmiennych rozróżniają wielkość liter i zazwyczaj są pisane wielkimi literami. Utworzona w ten sposób zmienna jest lokalną zmienną powłoki, widoczną tylko dla bieżącej powłoki. Aby awansować ją do zmiennej środowiskowej, którą dziedziczą również procesy potomne, użyj polecenia export:

export VARIABLE_NAME=value

Zrzut ekranu poniżej pokazuje tworzenie nowej zmiennej, która jest następnie wyświetlana za pomocą echa.

Tworzenie i wyświetlanie nowej zmiennej środowiskowej zdefiniowanej przez użytkownika

Usuwanie zmiennych

Poniższa składnia usuwa zmienną z systemu:

unset variablename

Spowoduje to usunięcie zmiennej i jej wartości z bieżącej sesji powłoki, jak pokazano poniżej.

Usuwanie zmiennej środowiskowej za pomocą polecenia unset

FAQ

Zmienna powłoki istnieje tylko w bieżącej powłoce i nie jest przekazywana do innych programów. Zmienna środowiskowa to zmienna powłoki, która została wyeksportowana, więc procesy potomne uruchomione z tej powłoki ją dziedziczą. Użyj polecenia export, aby awansować zmienną.

Zmienne ustawione w terminalu znikają po zamknięciu sesji. Aby je zachować, dodaj wiersz eksportu do pliku startowego: ~/.bashrc lub ~/.profile dla pojedynczego użytkownika albo /etc/environment dla każdego użytkownika w systemie. Przeładuj plik lub otwórz ponownie terminal, aby zastosować zmiany.

Dodaj nowy katalog do istniejącej zmiennej PATH, aby go nie nadpisać: export PATH=$PATH:/nowy/katalog/twoja/nowa. Spowoduje to dodanie folderu do listy poleceń przeszukiwanych przez powłokę. Umieść ten sam wiersz w pliku ~/.bashrc, aby zmiany zostały uwzględnione w nowych sesjach.

Polecenie printenv wyświetla tylko zmienne środowiskowe i może wyświetlić tylko jedną, taką jak printenv HOME. Polecenie env również wyświetla zmienne środowiskowe i umożliwia uruchomienie programu w zmodyfikowanym środowisku. Polecenie set wyświetla wszystkie zmienne, w tym zmienne i funkcje powłoki, a nie tylko te wyeksportowane.

Zazwyczaj oznacza to nadpisanie zmiennej PATH zamiast dodania do niej dodatkowych poleceń, przez co powłoka nie może już znaleźć standardowych poleceń. Zawsze uwzględniaj $PATH podczas jej ustawiania. Aby odzyskać dane w bieżącej sesji, uruchom polecenie export PATH=/usr/local/bin:/usr/bin:/bin, a następnie popraw plik startowy.

To wygodne, ale ryzykowne. Zmienne środowiskowe można odczytać z /proc, są dziedziczone przez procesy potomne i często wyciekają do logów lub raportów o awariach. W przypadku poufnych sekretów, zamiast zwykłej zmiennej, lepiej jest użyć dedykowanego menedżera sekretów lub zaszyfrowanego pliku z ograniczonymi uprawnieniami.

Asystenci AI mogą wyjaśnić, do czego służy nieznana zmienna, przeprowadzić audyt plików konfiguracyjnych pod kątem brakujących lub zduplikowanych wpisów oraz oznaczyć przypadkowo ujawnione w zmiennych sekrety. Narzędzia uczenia maszynowego mogą również skanować środowiska procesowe na wielu serwerach w celu wykrycia błędnych konfiguracji, których ręczna analiza byłaby żmudna.

Tak. Drugi pilot GitHub może generować polecenia eksportu, edycje ~/.bashrc i skrypty powłoki odczytujące zmienne takie jak $HOME lub $PATH. Sugeruje składnię podczas pisania, jednak przed uruchomieniem należy przejrzeć kod obsługujący dane uwierzytelniające.

Podsumuj ten post następująco: