Sunteți pe pagina 1din 2

Linux WorkShop April autor: Iosub Thomas 01/05/2021

Exercițiu Linux – „Baza de date a unei firme zăpăcite”

Înainte de a începe: Acesta este un exercițiu opțional, făcut în joacă. Pentru cine vrea să pună la încercare
propriile capacități. Soluțiile sunt mai multe, așa că simțiți-vă liberi să explorați și să găsiți soluția care se potrivește
cel mai bine pentru voi. Citiți cu atenție inclusiv trimiterile numerice (1) acolo unde este cazul. Pentru orice întrebare
sau nelămurire, putem folosi grupul WhatsApp, unde ne vom ajuta unii pe alții în îndeplinirea acestui exercițiu.

Obiectivele exercițiului:
Familiarizarea cu Shell și Comand Line. Consolidarea cunoștințelor dezvoltate până acum. Navigarea cu ușurință în
filesystem. Manevrarea fișierelor în diferite directory. Extragerea informațiilor dintr-un fișier, prelucrarea și scrierea
lor în alt fișier.

Scenariu:
În cadrul unei firme de îmbrăcăminte, managerul ne cere evidența situației curentă a comenzilor efectuate de clienți.
Deoarece managerul nu știe unde este această bază de date și nu înțelege datele din ea; sarcina noastră este să
găsim fișierul ce conține aceste date și să le transformăm în informații pe înțelesul tuturor.

Indicații:
1. Pe serverul hostat în cloud cu adresa IP: 3.120.201.17, se află fișierul status ce conține datele firmei.
Accesează acest server prin MobaXtrem.
2. Efectuează login-ul cu root1 (dacă te-ai logat cu succes vei vedea la linia de comandă semnul #, nu $).
3. Odată intrat cu root, navighează folosind comenzile învățate (cd, ls, pwd, cat) către folderul /home (aici se
află toți userii ce au acces la acest server). Intră în folderul userului iosub.rt.thomas18 (Atenție! Asigura-te
că ești logat ca root).
4. Explorează folderele și fișierele acestui user până vei găsi locația fișierului status. (Atenție la capcane!)2
5. Vizualizează conținutul fișierului status și observă structura sa3.
Pe manager îl interesează un rezumat al acestor date, astfel încât el să știe câte comenzi sunt pe fiecare
stadiu. (exemplu: Pending Payment: 20, Processing: 43, ..)
6. Folosește linia de comandă pentru a căuta în fișierul status liniile ce conțin statusul Pending Payment.
7. Folosește simbolul pipe ( | )4 și word count -lines pentru a numără liniile găsite.
8. Folosește comanda echo5 pentru a pune răspunsul într-o propoziție, și simbolul backquote ( ` )6 pentru a
menționa o comandă într-o comandă.
9. Pentru a scrie și a păstra rezultatul unei comenzi într-un fișier (în loc de a-l vizualiza temporar în linia de
comandă), folosește doua semne de mai mare ( >> ) după comandă, urmate de destinația fișierului unde vei
salva rezultatul.7
10. Repetă pasul 6, 7 și 8 pentru toate statusurile (Processing, Cancelled, Delivered, Successful, Returned)
11. Verifică fișierul orders_status, și asigură-te că acesta conține corect numărul de comenzi pentru fiecare
status.8
1
Root este „administrator”. El are acces la toate comenzile și toate fișierele de pe server. Nouă ne va fi util pentru a
accesa foldere la care utilizatorii normali nu au acces. Folosește comanda sudo su – pentru a te loga ca root urmată
de parola userului tău (parola este invizibilă, așa că nu te speria dacă nu vezi nimic când tastezi)
2
Atenție! Linux și linia de comandă sunt Case Sensitive. Adică se ține cont dacă literele sunt MARI DE TIPAR, sau mici
(asta înseamnă că Downloads și downloads sunt doua foldere diferite).
Atenție! Fișierul pe care îl căutați poate fi ascuns într-un fișier arhivat. Pentru a vizualiza conținutul arhivelor
folosește comanda tar -tvf numele_arhivei.tar(.gz) .

1
Linux WorkShop April autor: Iosub Thomas 01/05/2021

3
Structura: Acesta este un fișier CVS, deseori folosit în baze de date.

Pentru a înțelege acest tip de fișier, imaginează-ti-l ca un document Excel, unde fiecare linie este un rând, iar
coloanele sunt despărțite prin semnul punct-și-virgulă ( ; ). În acest fișier există următoarele date:
id; prenume; nume; email ;data comenzii; codul de referință; statusul comenzii.
id-ul reprezintă indexul comenzilor, atribuit automat în ordine crescătoare comenzilor pe măsură ce acestea
sunt înregistrate. Codul de referință este codul de identificare al comenzii (cu acest cod, managerul poate
identifica factura, produsele comandate, și alte informații specifice fiecărei comenzi în parte).

Statusul comenzii reprezintă etapa la care se află acea comandă specifică.


Acesta poate fi:

- Pending Payment (în așteptarea plății din partea clientului);


- Processing (plata a fost efectuată și comanda este procesată de către firmă pentru expediere);
- Cancelled (comanda a fost anulată de către client);
- Delivered (comanda a fost împachetată și este în posesia curierului pentru a fi livrată clientului);
- Successful (pachetul a fost livrat cu succes și este în posesia clientului);
- Returned (comanda nu a putut fi livrată și s-a întors în posesia firmei).
4
Simbolul pipe ( | ) se folosește atunci când vrei să aplici o noua comandă rezultatului comenzii anterioare. În cazul
nostru prima comandă este grep, iar rezultatul său vor fi liniile ce conțin cuvântul indicat în grep.
Dacă acestui rezultat vreau sa îi aplic o nouă comandă, de exemplu word count (wc) atunci voi scrie
« grep -i ”pending payment” status | wc -l » și rezultatul va fi numărul de linii ce conțin patternul ”pending
payment”.
5
Comanda echo (de la ecou) va repeta ceea ce scriem noi, însă interpretând variabilele mențioate. În cazul nostru,
vrem să spună Pending Payment: și numărul de linii.
6
Simbolul backquote ( ` ) este folosit atunci când în interiorul unei comenzi dorim rularea altei comenzi. În cazul
nostru vrem ca în interiorul comenzii echo să rulăm comanda de word count.
Scriind astfel: echo ”Pending Payment: `wc -l`”
7
Destinația fișierului cu rezultatele va fi în folderul personal al tău și se va numi orders_status.
Deci vei scrie: grep -i ”pending payment” status | echo ”Pending Payment: `wc -l`” >>
/home/[username]/orders_status
8
Rezultatul trebuie să arate cam așa: (unde xx este numărul comenzilor)
Pending Payment: xx
Processing: xx
Cancelled: xx
Delivered: xx
Successful: xx
Returned: xx

S-ar putea să vă placă și