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 14.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)