Ahhoz, hogy megértsük milyen lehetőségei vannak a felhasználónak munkakörnyezetének egyedivé alakításában, először azt kell megnéznünk, hogy mi is zajlik le, amikor egy felhasználó bejelentkezik a rendszerbe.
Karakteres terminálon a getty program várja a felhasználók bejelentkezését. Ez kiírja a login: feliratot, és még más üzenetet is kiírhat. Amikor a getty megkapja, hogy a felhasználó bejelentkezik a rendszerbe, akkor segítségül hívja a login programot. Ez a program megváltoztatja a felhasználó környezetét, és meghívja a beállított shellt. A login program PATH-ja a /usr/include/paths.h fájlban van definiálva. Ez az általános felhasználóknak:
/usr/local/bin:/usr/bin:/bin:.a root-nak:
/sbin:/bin:/usr/sbin:/usr/binAz általános felhasználók PATH-ja tartalmazza a pont-ot (.), ami az aktuális könyvtárat jelenti. De ez nagyon veszélyes lenne a root-ra nézve, ezért az övében nincs is benne.
A bejelentkezéskori PATH gyakran felülíródik a shell elindulásakor. A /etc/passwd fájlban meghatározhatunk más programot is, nem csak shellt, ami a felhasználó bejelentkezésekor elindul, például:
etu-ppp:/4WS5p3cVqwzs:1000:1000:,,,:/home/zsiga:/usr/sbin/pppd
A bash login shell amikor elindul, a következő sorrendben olvassa és hajtja végre a parancsokat:
Tehát ezek közül a fájlok közül azokban állíthatod be a saját környezetedet, amelyek a home könyvtáradban vannak. Bash shell esetén tehát a .bash_profile fájlban célszerű elhelyezni a PATH megváltoztatására szolgáló utasítást, és beállítani a kívánt környezeti változókat. A környezeti változókról ebben a fejezetben olvashatsz részletesen.
Amikor kilépsz a login shellből, akkor a bash elolvassa és végrehajtja a ~/.bash_logout fájlt, ha létezik. Ebbe a fájlba szoktak olyan parancsot tenni, ami például letörli a képernyőt a kilépéskor: clear.