Přepsáno z coursewearu
Povinné příkazy shellu
Ke každému příkazu automaticky psát nápovědu do příkazu man.
cat - vypíše soubor
cd - změní pracovní adresář shellu
echo - vypíše zprávu
exit - ukončí shell
kill - ukončí proces
ls - vypíše obsah pracovního adresáře; ls - vypisuje aktuální adresář; ls rel_cesta; ls abs_cesta
man - vypíše stručnou nápovědu a všechny implementované příkazy
ps - vypíše všechny procesy v modelu (výpis kompletně všech procesů - kvůli ladění)
pwd - vypíše pracovní adresář shellu
shell - spustí shell (lze spouštět rekurzivě)
shutdown - ukončí běh modelu; ne pouhé volání Sytem.exit, ale volání služby, která nejprve ukončí všechny procesy, ... a až na konec zavolá System.exit (pouze pokud je potřeba)
sort - seřadí řádky ze vstupu a vypíše je na výstup
Uchovávejte historii příkazů
Každý z uvedených příkazů musí obsahovat jednodnotnou možnost získání nápovědy o funkci, možných parametrech atd. man
Další rozšíření
jednouživatelský, víceúlohový systém
prompt musí ukazovat celou cestu k aktuálnímu adresáři (lepší testování)
Doporučený postup
1. Napište si terminálové okno.
2. Navrhněte gramatiku pro shell.
3. Navrhněte a implementujte syntaktický analyzátor.
4. Navrhněte strukturu modelu.
5. Udělejte propojení na souborový systém, napište váš cat a ukažte jeho funkčnost.
6. Doplňte model o vykonávání příkazů shellu v hierarchii virtuálních strojů - init, login, shell, program xyz, ...
7. Přidejte přesměrování a roury.
8. Napište další programy pro příkazy shellu, logout, shell, date, ...
9. Model můžete rozšířit o send a receive mezi uživateli, vykonávání v pozadí, příkazy bg a fg.
10. K historii příkazů uchovávejte i adresáře, ve kterých byly použity
11. Dokončete detaily.
12. Testujte.