Jako administrator systemu, zapewne wiesz jak ważne są zmienne środowiskowe w Bashu.
Zmienne środowiskowe są używane do definiowania zmiennych, które będą miały wpływ na działanie programów.
W Bashu zmienne środowiskowe definiują wiele różnych rzeczy: domyślny edytor, aktualną nazwę użytkownika czy aktualną strefę czasową.
Co najważniejsze, zmienne środowiskowe mogą być używane w skryptach Basha w celu modyfikacji zachowania skryptów.
W tym poradniku zobaczymy jak w prosty sposób można ustawić zmienne środowiskowe w Bashu.
Spis treści
Ustawianie zmiennych środowiskowych w Bashu
Najprostszym sposobem ustawiania zmiennych środowiskowych w Bashu jest użycie słowa kluczowego „export”, po którym następuje nazwa zmiennej, znak równości i wartość, która ma być przypisana do zmiennej środowiskowej.
Na przykład, aby przypisać wartość „abc” do zmiennej „VAR”, napisałbyś następującą komendę
$ export VAR=abc
Jeśli chcesz mieć spacje w swojej wartości, takie jak „moja wartość” lub „Linus Torvalds”, będziesz musiał zawrzeć swoją wartość w cudzysłowie.
$ export VAR="my value"$ export VAR="Linus Torvalds"
Aby wyświetlić zmienną środowiskową, musisz poprzedzić zmienną znakiem dolara.
$ echo $VARLinus Torvalds
Podobnie można użyć polecenia „printenv”, aby wydrukować wartość zmiennej środowiskowej.
Tym razem nie trzeba poprzedzać jej znakiem dolara.
$ printenv VARLinus Torvalds
Ustawianie zmiennych za pomocą interpolacji Bash
W niektórych przypadkach możesz potrzebować ustawić konkretną zmienną środowiskową na wynik polecenia na serwerze.
Aby to osiągnąć, będziesz potrzebował interpolacji Bash, zwanej również podstawianiem parametrów.
Powiedzmy na przykład, że chcesz przechowywać wartość bieżącej instancji powłoki w zmiennej o nazwie MYSHELL.
Aby ustawić zmienną środowiskową przy użyciu podstawiania parametrów, użyj słowa kluczowego „export” i polecenia ujętego w nawias zamykający poprzedzony znakiem dolara.
$ export VAR=$(<bash command>)
Na przykład, biorąc pod uwagę nasz poprzedni przykład, jeśli chcesz mieć zmienną środowiskową „SHELL” w nowej zmiennej o nazwie „MYSHELL”, napisałbyś
$ export MYSHELL=$(echo $SHELL)
Gratulacje, udało Ci się stworzyć swoją pierwszą zmienną środowiskową w Bashu!
Ustawianie trwałych zmiennych środowiskowych w Bashu
Kiedy przypisujesz wartość zmiennej używając „export” w powłoce, zmiany nie są zachowywane przy ponownym uruchomieniu lub w innych powłokach.
Aby ustawić stałą zmienną środowiskową w Bashu, musisz użyć polecenia export i dodać ją albo do swojego pliku „.bashrc” (jeśli ta zmienna jest tylko dla ciebie) albo do pliku /etc/environment, jeśli chcesz, by wszyscy użytkownicy mieli tę zmienną środowiskową.
$ nano /home/user/.bashrc# Content of the .bashrc fileexport VAR="My permanent variable"
Aby zmiany zostały zastosowane do twojej bieżącej sesji, będziesz musiał uźródlić swój plik .bashrc.
$ source .bashrc
Teraz możesz sprawdzić wartość swojej zmiennej środowiskowej w każdej powłoce, którą chcesz.
$ printenv VAR
Ta zmienna zostanie utworzona na każdej instancji powłoki dla bieżącego użytkownika.
Jeśli jednak dodasz ją do pliku „/etc/environment”, zmienna środowiskowa zostanie ustawiona dla wszystkich użytkowników w systemie.
$ nano /etc/environment# Content of the environment fileexport GLOBAL="This is a global variable"
Po pozyskaniu pliku, zmienne środowiskowe zostaną ustawione dla każdego użytkownika na twoim hoście.
$ source /etc/environment$ echo $GLOBAL
Niesamowite, udało Ci się ustawić globalną zmienną środowiskową na Twoim serwerze!
Podsumowanie
W tym tutorialu dowiedziałeś się, jak możesz łatwo ustawić zmienne środowiskowe w Bashu używając polecenia export.
Dowiedziałeś się również, że zmiany nie są trwałe dopóki nie dodasz ich do swojego :
- .bashrc : jeśli chcesz, aby zmienna była dostępna tylko dla aktualnie zalogowanego użytkownika;
- /etc/environment : jeśli chcesz, aby zmienna była wspólna dla wszystkich użytkowników w systemie.
Jeśli jesteś zainteresowany administracją systemem Linux, lub Bash’em, mamy kompletny dział poświęcony temu na stronie, więc upewnij się, że to sprawdzisz!