====== 2. Operații de bază cu fișiere ====== Sistemul de fișiere reprezintă componenta cea mai vizibilă din cadrul unui sistem de operare. Un utilizator folosește sistemul de fișiere prin operații de creare, ștergere, modificare și investigare a fișierelor. Mai mult, un utilizator poate administra sistemul de fișiere prin configurarea de permisiuni, prin stabilirea de cote de sistem de fișiere și prin acțiuni de formatare și montare de sisteme de fișiere. ===== Subiecte abordate ===== * Fișiere: definiții, tipuri, operații * Date și metadate * Sisteme de fișiere: roluri, operații * Sisteme de fișiere pentru mașini virtuale (imagini) ==== Utilitare folosite ==== * ''mkdir'', ''rmdir'', ''touch'', ''ls'', ''rm'', ''cp'' * ''stat'', ''chmod'', ''chown'' ==== Bune practici ==== * Construcția ''%%$(...)%%'' versus ''xargs'' * Construcția ''%%$(...)%%'' versus ''%%`...`%%'' ==== Slide-uri ==== [[http://koala.cs.pub.ro/training/res/linux-admin/slides/cap-02.pdf|Slide-uri capitol 2]]
===== Exerciții ===== ==== Demo-uri ==== Folosirea comenzilor mkdir și rm pentru a crea și șterge ierarhii complexe. Folosirea comenzii ''stat'' cu formatare pentru a afișa metainformații despre fișiere. ==== Exercițiu 1 ==== Creați, în directorul home al utilizatorului ''training'', structura de mai jos: supermarket/ ├── curatat/ │ ├── pronto - lemn curat │ └── solutie curatat ferestre └── mancare/ ├── -- -> lactate/lapte batut ├── carne/ │ └── -10 grade sunca ├── fructe/ │ └── castraveti spanioli └── lactate/ └── lapte batut Intrarea ''%%--%%'' este un link simbolic, adică numele link-ului simbolic trebuie să fie ''%%--%%''. Intrările care se termină în ''/'' (//slash//) sunt directoare (''supermarket/'', ''curatat/'', ''mancare/'', ''carne/'', ''fructe/'', ''lactate/''). Restul de intrări sunt fișiere obișnuite (//regular files//). Pentru a valida structura creată, folosiți, din directorul home al utilizatorului ''student'', comanda tree -F supermarket ==== Exercițiu 2 ==== Pe structura de directoare creată anterior configurați timpi astfel: * pe intrările din mâncare, mai puțin link-ul simbolic, configurați ca timp de acces miezul nopții la Crăciun 2013 * pe intrări de curățat configurați ca timp de modificare miezul nopții la Revelion 2013 Nu e nevoie să folosiți o comandă specială care să se aplice pe toate intrările. Luați intrările la rând și modificați timpii. Pentru modificarea timpilor folosiți comanda ''touch''. Pentru a verifica timpii de acces folosiți comanda ''stat''. ==== Exercițiu 3 ==== * Creați un fișier nou, denumit ''numere''. * Deschideți fișierul în ''nano'' și editați-l astfel încât să conțină 10 linii, pe fiecare câte un număr de la 1 la 10. * Salvați fișierul și închideți ''nano''. * Deschideți fișierul în ''nano'' și editați-l astfel încât să conțină doar numerele prime, în ordine descrescătoare. * Salvați fișierul sub numele ''prime'' și închideți ''nano''. ==== Exercițiu 4 ==== Adăugăm în sistem utilizatorul ''ana''. Pentru aceasta, ne autenficăm ca root și apoi folosim comanda ''adduser''. Adică rulăm comenzile: $ sudo su # adduser ana Ca ''root'', actualizăți următoarele metadate pe link-ul simbolic: * modificați timpii la miezul nopții Halloween 2013 * modificați deținătorul link-ului în ''ana'' Pentru modificarea deținătorului unui link, folosiți comanda ''chown''. Comanda ''chown'' poate fi rulată doar de utilizatorul root. Exemple de rulare a comenzii ''chown'' sunt: chown tony mydata.iso # change owner user of file mydata.iso to tony chown tony:players icon.bmp # change owner user of file icon.bmp to tony and owner group to players ==== Exercițiu 5 ==== Dorim să afișăm informații despre fișiere folosind comanda ''stat'', comandă dedicată exact obținerii de informații despre fișiere. Afișați pentru fișierul ''/etc/passwd'' doar dimensiunea. **Indicație**: Folosiți comanda ''stat'' împreună cu opțiunea ''%%--format%%'' (sau ''-c'', forma scurtă a acestei opțiuni). Afișați pentru fișierul ''/etc/passwd'' inode-ul, dimensiunea și uid-ul, separate prin '','' (virgulă). Afișați numele, inode-ul, dimensiunea și uid-ul separate prin '','' (virgulă) pentru fișierele din ierarhia ''/etc/''. Afișați numele, inode-ul, dimensiunea și uid-ul separate prin '','' (virgulă) pentru fișierele din ierarhia ''/etc/'' care au extensia ''.conf''. Calculați totalul de octeți ocupat de fișierele din ierarhia ''/etc/'' care au extensia ''.conf''. **Indicație**: opțiunea ''-c''