Powłoka jest uruchamiana podczas logowania, ale jest również uruchamiana przez programy takie jak makelub podczas uruchamiania skryptu powłoki, podczas pisania :shdo vilub tworzenia nowego okna terminala.
Oryginalnie powłoka wczytywała się ~/.profilepo zalogowaniu lub uruchomieniu su. Ten skrypt służy do ogłaszania, czy masz nowy e-mail, dostosowywania znaków kasowania i zabijania oraz ustawiania i eksportowania zmiennych TERM i PATH. Po uruchomieniu w prawie każdym innym kontekście powłoka nie czytała ~/.profile, ponieważ wykonanie większości tych czynności byłoby zbędne. Oczekiwano, że wyeksportowano wszystkie ważne zmienne powłoki do nowej powłoki.
Sposób powłoka wiedział, czy odczytywane ~/.profilebyło sprawdzenie, czy pierwszy znak argv[0], znany $0był '-'.
Począwszy od csh, wprowadzono aliasy. Aliasy nie zostały wyeksportowane do środowiska. cshzostał zaprojektowany do odczytu w dwóch różnych skryptach inicjujących. ~/.loginzostał odczytany tylko wtedy, gdy użytkownik się zalogował, a wskazówką, aby to zrobić, było argv[0]rozpoczęcie '-'. ~/.cshrcbył czytany przy każdym uruchomieniu powłoki. Ogólnie, umieszcza się aliasy ~/.cshrci wszystko inne w ~/.login. cshobsługiwane również ~/.logout, co w większości przypadków po prostu wyczyściło ekran i uruchomiło się fortune.
Inne pociski przyjęły te same funkcje. kshwczytywałoby ~/.kshrc, bashwczytywałoby się ~/.bashrc, a tam byłyby miejsca, w których należy umieścić definicje aliasów.
Krótko mówiąc, aplikacja, która spawnuje powłokę, decyduje, czy powinna to być „powłoka logowania”, w takim przypadku '-'na początku, czy zwykła powłoka. W większości przypadków powłoka, która ma być interaktywna, jest uruchamiana jako powłoka logowania, a powłoka służy tylko do uruchamiania niektórych poleceń, jako argumentów lub skryptu, a następnie wyjście jest zwykłą powłoką.
Ale wszystko zależy od kaprysu aplikacji, która uruchamia powłokę.