This shows you the differences between two versions of the page.
|
sde:teme:tema_ro_2_busybox [2020/03/02 19:24] ioana_maria.culic |
— (current) | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| - | ====== Tema 2 - Mini-busybox ====== | ||
| - | |||
| - | ===== Informații generale ===== | ||
| - | |||
| - | <note important> | ||
| - | Deadline: **18 Martie, ora 23:55**\\ | ||
| - | Punctaj: **1 punct** din notă\\ | ||
| - | Încărcarea temei: [[https://vmchecker.cs.pub.ro|vmchecker.cs.pub.ro]]\\ | ||
| - | Încărcarea cu întârziere: **1 punct / zi** (maxim 4 zile)\\ | ||
| - | </note> | ||
| - | |||
| - | ===== Cunoștințe evaluate ===== | ||
| - | |||
| - | * Folosirea limbajului Python | ||
| - | * Modul de funcționare a liniei de comandă | ||
| - | |||
| - | ===== Reguli ===== | ||
| - | |||
| - | - Tema trebuie să conțină un fișier Readme în care să explicați cum ații făcut tema **(-0.1p)**. | ||
| - | - 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 [[https://github.com/upb-fils/sde.git|repository]] cu titlul de forma [busybox] <titlul întrebări voastre>. Aveți nevoie de un cont de github pentru a scrie întrebări. | ||
| - | |||
| - | <note warning> | ||
| - | **NU PUBLICAȚI COD SURSĂ**. Acesta va fi considerată copiere și se va penaliza cu **0 puncte** pe temă pentru voi. | ||
| - | </note> | ||
| - | |||
| - | Dacă doriți să primiți un email când se pun întrebări noi sau cand apar răspunsuri, accesați github [[https://github.com/upb-fils/sde|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:** | ||
| - | <code bash> | ||
| - | python busybox.py cp file folder | ||
| - | </code> | ||
| - | |||
| - | <note info> | ||
| - | Programul va fi rulat folosind Python 3. | ||
| - | </note> | ||
| - | |||
| - | ==== 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. | ||
| - | |||
| - | <note info> | ||
| - | 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ță. | ||
| - | </note> | ||
| - | |||
| - | Comenzile suportate de aplicația mini-busybox sunt: | ||
| - | |||
| - | * **pwd** - Afișează calea completă a directorului curent. (https://linux.die.net/man/1/pwd) | ||
| - | |||
| - | **Exemplu:** | ||
| - | <code bash> | ||
| - | $python busybox.py pwd | ||
| - | /home/pi/my_directories | ||
| - | </code> | ||
| - | |||
| - | * **echo [opțiune] argumente - Afișează argumentele în consolă urmate de linie nouă. (https://linux.die.net/man/1/echo) | ||
| - | * **-n** nu adaugă o linie nouă la final | ||
| - | |||
| - | |||
| - | |||
| - | |||