Studiați secțiunea de Cunoștințe evaluate și suportul agregat necesar temei. Aceasta este valabilă la orice temă și se recomandă parcurgea sa.
Folosiți thread-urile de discuții existente în cadrul forumului, fără a crea altele, atât în forumul pentru Discuții Generale cât și în forumul temei. În consecință, thread-urile (subiectele de discuții) nou create vor fi șterse deoarece informația utilă va fi greu de urmărit.
Căutați pe forum informația pe care doriți să o obțineți, înainte să puneți o întrebare. De cele mai multe ori, cineva a mai întrebat același lucru. În fiecare thread al forumului aveți informații despre cum puteți căuta în forum.
În cazul în care doriți să publicați un screenshot, recomandăm folosirea site-urilor pentru partajarea gratuită a imaginilor, precum imgur sau alternativele sale, publicând pe forum doar link către screenshot. Dorim să păstrăm o parcurgere ușoară a forumului, din acest motiv, orice poză inserată în răspunsuri, va fi ștearsă.
Urmăriți atât forumul cât și modificările aduse enunțului/checker-ului, modificări ce sunt publicate și explicate în paragrafele de mai jos.
În timpul realizării temei, când vă loviți de probleme și aveți nevoie de suportul echipei de USO, parcurgeți și lista de întrebări frecvente întâlnite în cadrul temelor. Să țineți cont, va rugăm, și de recomandările de comunicare electronică.
uso
vă afișează eroarea: “Nu ai conexiune la internet” urmați pașii de mai jos:
ping 8.8.8.8
.sudo dhclient <nume_interfață>
. Numele interfeței default este ens33
. Pentru a inspecta numele interfeței rulați ip link show
ping google.com
/etc/resolv.conf
. Veți avea nevoie de sudo
nameserver 8.8.8.8
și nameserver 1.1.1.1
Singurul lucru de care trebuie să aveți grijă este să nu puneți pe forum rezolvările taskurilor. Puteți să sugerați diferite abordări sau să dați idei celorlalți. Mai multe informații găsiți in recomandările de comunicare electronică.
Testarea temei se va face doar pe mașina virtuală autentificat ca utilizator student
, folosind utilitarul uso
. Acesta poate fi executat în orice moment pentru a verifica dacă au fost rezolvate corect task-urile. Nu lucrați autentificat ca utilizator root
în sistem, la nicio temă. Din acest motiv există posibilitatea să nu vă treacă testele. Pe de altă parte, nu este o metoda de siguranță să lucrați autentificat ca utilizator root din motive de securitate și/sau permisiuni.
Utilitarul uso
implementează testele doar pentru task-urile temei curente. La fiecare temă nouă, pentru a folosi utilitarul uso
, primul pas este să porniți tema folosind comanda sudo uso start <numar_tema>
. În caz contrar, nu veți avea actualizat checker-ul pentru tema curentă.
Verificați versiunea checker-ului, afișată la rularea comenzii sudo uso version
. Asigurați-vă că aveți ultima versiune înainte de a continua lucrul pentru temă. Versiunea actuală este specificată în secțiunea Informații generale prezentă în enunțul temei. Pentru situațiile în care nu dispuneți de ultima versiune a checker-ului, rulați sudo uso update
.
Finalizarea temei se realizează prin rularea comenzii sudo uso submit
.
Andrei și Maria sunt studenți la Facultatea de Automatica și Calculatoare. Prima provocare a acestora este să își organizeze sistemul de fișiere astfel încât să se poată descurca la fiecare materie în parte. În cele ce urmează, voi trebuie să îi ajutați cu următoarele aspecte:
[26p] Pentru început, Andrei și Maria își doresc să aibă directoarele și fișierele bine organizate pentru a putea naviga foarte ușor între materialele fiecărei materii. În acest sens, voi trebuie să realizați următoarea structură în ~
:
Facultatea de Automatica si Calculatoare/ |----- Anul 1/ | |----- Utilizarea sistemelor de operare/ | | |-----Sisteme de fisiere | | |-----Instalarea si utilizarea aplicatiilor | | |-----Investigare > securitatea sistemului | |----- Programarea calculatoarelor/ | | |-----Instructiunile limbajului C/ | | |-----Alocarea dinamica a memoriei.c/ | | | |----- Vectori.c | | | |----- Matrice.c | | |-----Parametrii liniei de comanda`/ | | | |----- Preprocesorul | | | |----- Vectori.cpp | | | |----- Blocuri.c | |----- Proiectare logica/ | |-----Logica combinationala/ | |-----$Logica secventiala$/ |----- Anul 2/ | |----- Programare orientata pe obiecte/ | | |----- | Constructori | si referinte | | |----- Mostenire\/ | |----- IOCLA/ | |----- Teoria sistemelor/ |----- Anul 3/ |----- Anul 4/
/
(slash).
Pentru a nu lucra direct în ierarhia de fișiere menționată anterior, Andrei și Maria preferă să aibă anumite copii ale unor directoare și/sau fișiere pe care să le folosească până în momentul în care aceștia sunt siguri că rezolvările/materialele lor sunt corecte. De asemenea aceștia observă și faptul că au greșit numele și/sau poziționarea unor directoare/fișiere.
Astfel, aflându-vă în directorul Facultatea de Automatica și Calculatoare
datoria voastră este să îi ajutați folosind câte o singură comandă pentru fiecare din cerințele acestui task:
[2p] Faceți o copie a directorului Programarea calculatoarelor
(cu tot ceea ce conține acesta) care să aibă numele Copie PC
și amplasați-o ca direct descendent al folderului Facultatea de Automatică și Calculatoare
.
[10p] Următoarele cerințe se referă la directorul Copie PC
(nu schimbați directorul în care vă aflați):
Vectori.c
și Matrice.c
din cadrul directorului Alocarea dinamica a memoriei.c
și amplasați aceste copii în folderul Instructiunile limbajului C
;Vectori.c
din folderul Instructiunile limbajului C
în Arrays.c
;Parametrii liniei de comanda
;| Segmentation Fault
în directorul Alocarea dinamica a memoriei.c
;Matrice.c
din cadrul directorului Alocarea dinamica a memoriei.c
.
~/Facultatea de Automatică și Calculatoare/Copie PC/
. Acesta trebuie să râmână în această formă pentru verificările ulterioare ale checkerului. Veți pierde punctele obținute pentru acest task dacă faceți modificări și va fi nevoie de refacerea task-ului.
Andrei și Maria lucrează de-a lungul anului pentru a finaliza mai multe teme la USO. În acest sens, pentru a face temele mai greu accesibile pentru o persoană din exterior și în același timp pentru a nu șterge fișierele/directoarele din greșeală, doresc să le ascundă. Un fișier sau director este ascuns atunci când nu apare în mod normal în ierarhia de fișiere. Cu alte cuvinte, atunci când executăm într-un director comanda ls
, acesta nu apare.
[5p] Pentru a îi ajuta, creați în directorul /home/student
directorul ascuns - Teme USO
. În cadrul acestui director creați trei fișiere ascunse intitulate: prima parte
, a doua parte
și a treia parte
. În fiecare dintre fișierele menționate anterior scrieți textul Aceasta este X din tema curenta.
, unde X reprezintă numele fișierului în care se află textul.
[5p] În directorul /home/student
creați fișierul task_3.txt
în care atașați pe câte un rând separat conținutul celor 3 fișiere create la subpunctul anterior (în ordinea în care sunt menționate anterior).
O legătură este o scurtătură către un fișier sau un director. Acestea sunt necesare atunci când nu vrem să parcurgem toată ierarhia de fișiere. Astfel, trebuie să îi ajutați pe cei doi studenți să iși faciliteze căutarea unui anumit fișier.
[5p] Creați în directorul /home/student
două legături simbolice cu numele partea1
și partea2
care să conducă spre fișierul ascuns prima parte
și respectiv a doua parte
corespunzătoare task-ului anterior.
[5p] Pentru a verifica buna funcționare a legăturilor simbolice create anterior, în fișierul task_4.txt
(realizat de voi în /home/student
) atașați pe rând conținutul celor două fișiere prin intermediul celor două legături create.
Cei doi vor să salveze outputul unor comenzi undeva astfel încât să nu fie nevoie să îl copieze, să creeze un fișier nou sau să folosească unul deja existent, să îl deschidă, să lipească textul în el și să salveze modificările. Trecerea prin toți acești pași durează și devenim ineficienți în lucrul în terminal.
[10p] Astfel, realizați următoarele cerințe din directorul /home/student
folosind câte o singură comandă:
/home/student
in fisierul /home/student/ierarhie1.txt
/boot
(fără a modifica directorul în care vă aflați) în fișierul /home/student/ierarhie2.txt
;/etc/group
în fișierul utilizatori_si_grupuri.txt
;nu_exista.txt
în fișierul eroare.txt
;task_5.txt
.
La finalul semestrului, Andrei și Maria au adunat multe fișiere și materiale pe care le-au organizat conform task-urilor anterioare. Acum, aceștia iși doresc ca fișierele/directoarele create anterior să ocupe mai puțin spațiu, deci să le comprime. Comprimarea este o arhivare mai specială pentru că micșorează dimensiunea fișierului rezultat. Rezultatul este similar: agregarea într-un singur fișier.
În directorul /home/student
realizați următoarele:
[4p] Adăugați directorul Facultatea de Automatică și Calculatoare
și toate fișierele conținute în două arhive cu numele archive1.tar
și respectiv archive2.tar
, de tip tar
;
~/Facultatea de Automatică și Calculatoare/
. Acesta trebuie să râmână în această formă pentru verificările ulterioare ale checker-ului. Veți pierde punctele obținute pentru task-ul 1 dacă faceți modificări și va fi nevoie de refacerea taskului.
[4p] Adăugați în arhiva creată anterior, archive2.tar
cele cinci fișiere realizate la task-ul 05 (ierarhie1.txt
, ierarhie2.txt
, utilizatori_și_grupuri.txt
, eroare.txt
și task_5.txt
);
[4p] Realizați comprimarea de tip tar.gz
a directorului Facultatea de Automatică și Calculatoare
și a tuturor fișierelor conținute într-o nouă arhivă cu numele archive1.tar.gz
(nu ștergeți arhiva creată la punctul 1).
Cei doi vor să afle dacă într-o ierarhie de fișiere găsește un anumit fișier și, dacă există, să descopere unde anume se află acesta. Voi trebuie să îi ajutați. De asmenea, cei doi au aflat despre existența variabilelor de mediu și vor să le modifice pentru ca terminalul lor să afișeze informațiile de care au nevoie în modul în care aceștia își doresc:
[5p] Căutați toate fișierele (fără directoare) care se termină în .c
pornind de la /home/student
și redirectați toate căile în fișierul cautare.txt
. Acesta trebuie să se alfe tot în /home/student
;
[5p] Anexați pe câte un rând în fișerul final.txt
calea către utilitarele: cat, rm și vim (în această ordine). Acest fișier trebuie să se afle tot în /home/student
;
[5p] Modificați valoarea variabilei de mediu PS1
astfel încât promptul să conțină următoarele culori: roșu pentru username, verde pentru hostname și mov pentru calea către directorul curent. Atenție, caracterele speciale trebuie să rămână albe. Realizați modificările necesare în așa fel încât configurația variabilei PS1 menționată mai devreme să fie persistentă la restart. Ulterior, puneți valoarea acesteia în fișierul prompt.txt
amplasat tot în /home/student
;
PS1
, prompt-ul trebuie să aibă următorul format: username@hostname:calea_către_directorul_curent $
.
Acest lucru poate fi obesrvat în exemplul din imaginea următoare
Codurile de culori pe care trebuie să le folosiți conform documentației PS1:
[5p] Modificați valoarea variabilei de mediu TZ
astfel încât promptul să afișeze la fiecare afișare a variabilei de mediu, data în care ne aflăm după următorul format: ll/zz/aa. Realizați modificările necesare în așa fel încât configurația variabilei TZ menționată mai devreme să fie persistentă la restart. Ulterior, puneți valoarea acesteia în fișierul data.txt
amplasat tot în /home/student
.
TZ
pe directorul home, output-ul în terminal ar trebui să fie următorul:
$TZ
și nu este nevoie de o comandă de genul echo $TZ
/home/student
deci și rezultatul vostru în cadrul task-ului 05. Rezolvați această problemă.
Finalizați tema si asigurați-vă că ați submis tema cu sudo uso submit
.