This is an old revision of the document!


Tema 2 - Mini-busybox

Informații generale

Deadline: 18 Martie, ora 23:55
Punctaj: 1 punct din notă
Încărcarea temei: vmchecker.cs.pub.ro
Încărcarea cu întârziere: 1 punct / zi (maxim 4 zile)

Cunoștințe evaluate

  • Folosirea limbajului Python
  • Modul de funcționare a liniei de comandă

Reguli

  1. Tema trebuie să conțină un fișier Readme în care să explicați cum ații făcut tema (-0.1p).
  2. Tema trebuie implementată folosind limbajul Python și doar folosind funcții POSIX (biblioteca Python os). Orice alte implementări vor duce la anularea temei (0 puncte).

Copierea

Tema se rezolvă individual. Orice tentativă de copiere va rezulta în 0 puncte pentru tema respectivă. Vom utiliza și sisteme automate de detectare a copierii. Dacă avem dubii, vă vom adresa întrebări suplimentare legate de temă.

Întrebări

Dacă aveți întrebări legate de temă, vă rugăm să scrieți un issue pe repository-ul de github repository cu titlul de forma [busybox] <titlul întrebări voastre>. Aveți nevoie de un cont de github pentru a scrie întrebări.

NU PUBLICAȚI COD SURSĂ. Acesta va fi considerată copiere și se va penaliza cu 0 puncte pe temă pentru voi.

Dacă doriți să primiți un email când se pun întrebări noi sau cand apar răspunsuri, accesați github repository și faceți click pe Watch.

Mini-busybox

Scopul acestei teme este implementarea unui utilitar capabil să execute comenzi tip Linux bash.

Pentru rezolvarea temei veți realiza un script Python care primește ca argumente comanda ce se dorește a fi executată, urmată de parametrii acesteia. Scriptul va executa comanda după care își va încheia execuția.

Exemplu:

python busybox.py cp file folder

Programul va fi rulat folosind Python 3.

Comenzi suportate

În continuare, vom defini comenzile suportate de utilitar, împreună cu comportamentul caracteristic și parametrii pe care acestea de suportă. Pentru orice altă comandă sau orice alt format, scriptul va afișa mesajul Invalid command și va returna valoarea 1.

În cazul în care comanda primită de utilitar a fost rulată cu succes, acesta va returna valoarea 0. În caz contrar, acesta va returna valoarea 1.

Pentru a vă ajuta în înțelegerea modului de funcționare a fiecărei comenzi, am atașat pagina de manual a acesteia. Nu se cere implementarea tuturor parametrilor precizați în manual, doar a celor precizați în cerință.

Comenzile suportate de aplicația mini-busybox sunt:

Exemplu: $python busybox.py pwd /home/pi/my_directories

sde/teme/tema_ro_2_busybox.1583169744.txt.gz · Last modified: 2020/03/02 19:22 by ioana_maria.culic
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0