3 Powłoka bash

3.2 Zmienne powłoki i środowiska

Zachowanie powłoki można skonfigurować ustawiając wartości specjalnym zmiennych. Oto lista kilku z nich:

  • PS1 definiuje zawartość znaku zachęty

  • HISTSIZE ilość zapamiętywanych poleceń w historii

  • IFS zmienna definiująca separator pól dla komendy read (domyślna wartość to białe znaki: spacja, tabulacja, nowa linia)

  • RANDOM losowa wartość całkowita

Listę wszystkich zmiennych oraz funkcji zadeklarowanych w bieżącej powłoce uzyskujemy za pomocą polecenia set. Więcej o tworzeniu i manipulowaniu zmiennymi powłoki znajduje się w rozdziale 4.4.

Zmienne można podzielić na zmienne powłoki (lokalne), które są dostępne wyłącznie w danej instancji powłoki oraz zmienne środowiskowe, które są dziedziczone przez procesy potomne.

Zmienne środowiskowe definiuje się poprzez wyeksportowanie zmiennych powłoki za pomocą komendy export, np.:
$ ZMIENNA=42
$ export ZMIENNA
lub krócej
$ export ZMIENNA=42

Zachowanie wielu programów zależne jest od ustawień konkretnych zmiennych środowiskowych. Aktualną listę zmiennych środowiskowych można uzyskać za pomocą polecenia printenv lub env.

Przykład typowych zmiennych środowiskowych:

  • PATH  lista katalogów oddzielonych dwukropkiem. Katalogi te są przeszukiwane przez powłokę w poszukiwaniu programów do uruchomienia

  • USER  nazwa użytkownika

  • HOME  katalog domowy użytkownika

  • EDITOR  domyślny edytor tekstu

  • LD_LIBRARY_PATH  lista lokalizacji w których system poszukuje bibliotek

  • LANG, LANGUAGE, LC_ALL  ustawienia lokalizacji (wersji językowej)

3.2.1 Lokalizacja

Aktualne ustawienia lokalizacji można sprawdzić za pomocą polecenia locale.

locale

wyświetl ustawienia lokalizacji
Postać: locle [opcje]
Polecenie wyświetla wartości zmiennych odpowiedzialnych za lokalizację środowiska, takich jak, np,: LANG, LANGUAGE, LC_ALL.
Najważniejsze opcje:
-a wyświetli listę wszystkich zainstalowych w systemie lokalizacji

Ustawienie lokalizacji (np. języka polskiego) sprowadza się do ustawienia wartości zmiennych środowiskowych takich jak:

  • LANG  podstawowa zmienna odpowiedzialna za ustawienia języka, używana gdy nie są zdefiniowane zmienne LC_*

  • LC_CTYPE  kodowanie znaków używane do prezentacji tekstu

  • LC_NUMERIC  formatowanie wartości liczbowych

  • LC_TIME  formatowanie czasu i daty

  • LC_COLLATE  określa sposób sortowania alfabetycznego

  • LC_MESSAGES  język komunikatów systemu

  • LC_ALL  nadpisuje wszystkie pozostałe ustawienia lokalizacji

Przykład ustawienia lokalizacji polskiej:
$ export LC_ALL=pl_PL.utf8
$ querty
bash: qwerty: nie znaleziono polecenia

Zmiana na inną lokalizację:
$ export LC_ALL=hu_HU.utf8
$ querty
bash: qwerty: parancs nem található

Dodanie wpisu o polskiej lokalizacji do pliku konfiguracyjnego powłoki:
$ echo export LC_ALL=pl_PL.utf8 >> /.bashrc