Program powinien przyjmować na wejściu polecenia, a następnie wykonywać działania zgodne z ich treścią. Powłoka powinna:
- wyświetlać znak zachęty w postaci [{path}] $, gdzie {path} jest ścieżką do bieżącego katalogu roboczego;
- obsługiwać polecenie cd, działające analogicznie jak cd znane nam z powłoki bash;
- obsługiwać polecenie exit, kończące działanie programu powłoki;
- obsługiwać polecenie help, wyświetlające na ekranie informacje o autorze programu i oferowanych przez niego funkcjonalnościach;
- przyjmować polecenia odwołujące się przez nazwę do programów znajdujących się w katalogach opisanych wartością zmiennej środowiskowej PATH oraz umożliwiać wywołanie tych skryptów i programów z argumentami (czyt. fork() + exec*());
- wypisywać komunikat błędu, gdy niemożliwe jest poprawne zinterpretowanie polecenia;
- wyświetlanie loginu aktualnie zalogowanego użytkownika
- obsługę argumentów w cudzysłowach
Wymagane komentarze przy każdym poleceniu ułatwiające zrozumienie działania programu.