Autor sekcije: Vedran Miletić, Vanja Slavuj, Sanja Pavkov

Stablo direktorija

  • višekorijenski operacijski sustav za više više particija ima više korijenskih direktorija
    • primjerice, operacijski sustav Windows particije označava kao C:\, D:\, E:\, ...
  • jednokorijenski operacijski sustav za više particija imaju jedan korijenski direktorij
    • operacijski sustavi slični Unixu mogu imati particije u direktorijima /, /home, /media/usbdisk, ...

Uloga pojedinih direktorija u sustavu

  • Filesystem Hierarchy Standard definira naziv u ulogu direktorija u datotečnom sustavu
    • dugo vremena je bila aktualna verzija 2.3, siječanj 2004., trenutna aktualna je verzija verzija 3.0, ljeto 2012.
    • više informacija možete pronaći na stranici s dokumentima o FHS
  • /bin, /sbin, /lib -- izvršne datoteke i bibliotečne datoteke
    • izvršne datoteke napravljene iz izvornog koda koji ima funkciju main()
    • bibliotečne datoteke napravljene iz izvornog koda koji nema funkciju main()
  • /dev sadrži u sebi uređaje
  • /etc sadrži konfiguracijske datoteke -- one određuju kako se programi ponašaju
  • /root, /home/<ime_korisnika> su redom root direktorij administratora, kućni direktoriji ostalih korisnika
  • /proc, /sys sadrže u sebi inforamcije o sustavu (hardveru)
  • /lost+found sadrži dijelove datoteka koje su pronađene u datotečnom sustavu prilikom oporavka od pada sustava
  • /media, /mnt sadrži direktorije putem kojih je dostupna vanjska memorija (USB, fotoaparat, digitalna kamera..)
  • /opt unutar njega su poddirektoriji, najčešće sa komercijalnim programima koji se instaliraju drugačije od ostalog softvera
  • /tmp sadrži privremene datoteke
  • /var sadrži datoteke koje program koristi kod pokretanja (datoteke koje se mijenjaju dok program radi)
  • /usr, /usr/local sadrži programe razdijeljene po poddirektoirjima /usr/bin, /usr/sbin, /usr/lib, /usr/share
    • konvencija je da se softver koji se instalira putem upravitelja paketima (sustav sličan Apple Store-u i Google Play-u) postavlja u /usr, a softver koji administrator instalira mimo upravitelja paketima u /usr/local

Zadatak

  • Izlistajte sve obične i sakrivene direktorije i datoteke u vašem kućnom direktoriju.
  • Izlistajte sve direktorije u /home direktoriju. Što vidite?
  • Objasnite što se nalazi u sljedećim direktorijima:
    • /home/student12
    • /usr/include/c++/4.6
    • /dev/input
    • /etc/acpi

(Uputa: podsjetite se koje je značenje kratice ACPI.)

Rad s direktorijima, naredbe pwd i cd

  • pwd ispisuje putanju do radnog direktorija
  • cd mijenja radni direktorij u dani
    • bez argumenata vraća vas u kućni direktorij
  • <Tab> -- kompletiranje imena datoteka i direktorija
    • postoji razlika između <Tab> i <Tab><Tab>
    • na sličan način kompletiraju se imena naredbi
    • na sličan način kompletiraju se nazivi parametara nekih naredbi (u novijm verzijama bash ljuske, datoteka /etc/bash_completion i direktorij /etc/bash_completion.d)

Zadatak

Isprobajte sljedeće naredbe i objasnite što rade:

  • cd
  • cd .
  • cd ..
  • cd ~
  • cd -
  • cd ../..
  • cd ./././..
  • cd ../.././.
  • cd ../../../../../..
  • . referira na trenutni direktorij
  • .. referira na direktorij iznad trenutnog
  • ../.. referira na direktorij iznad direktorija iznad trenutnog (tako možemo i dalje)

Naredbe mkdir i rmdir

  • mkdir stvara direktorij s danim imenom
  • rmdir briše (prazan) direktorij danog imena

Zadatak

  • U Vašem kućnom direktoriju napravite predloženu strukturu direktorija:

    studentXY ---------- Ispiti ------------- Ispit1 -------- 15102012
              |                        |
              |                        |----- Ispit2
              |
              |--------- Kolokviji ---------- Kolokvij1
              |                        |
              |                        |----- Kolokvij2 ----- Rjesenja
              |
              |--------- Seminari
              |
              |--------- DZ ----------------- Grafovi
    
  • Uđite u direktorij Ispiti i pokušajte izbrisati direktorij Ispit1. Što se događa?

  • Pozicionirajte se u direktorij Kolokviji i u jednoj naredbi pokušajte izbrisati sve poddirektorije koji se ondje nalaze.

  • Vratite se do direktorija Seminari i uđite u njega. Pokušajte ga izbrisati. Što se događa? Zašto?

  • Otiđite do svog kućnog direktorija i od tamo pokušajte izbrisati direktorij 15102012. Zašto ga ne možete izbrisati?

  • Uđite u direktorij Kolokvij i iz njega pokušajte izbrisati direktorij DZ. Možete li to učiniti? Zašto?

Dodatni zadatak

  • U svom kućnom direktoriju stvorite poddirektorij trnoruzica. Uđite u taj direktorij.
  • Stvorite direktorije mikimaus i minimaus.
  • Uđite u direktorij mikimaus.
  • Probajte sada izbrisati direktorij minimaus. Objasnite zašto to ne možete.
  • Vratite se u direktorij trnoruzica i izbrisite direktorij minimaus.
  • Isprobajte naredbe cd -, cd ../. i cd -/.. te objasnite što rade.

Apsolutno i relativno referenciranje

  • /home/vedran/radnidir
    • apsolutno referira na radnidir, radi od svugdje
    • apsolutno referenciranje kreće od korijenskog direktorija i ide do traženog direktorija, uvijek započinje sa /
  • radnidir
    • relativno referira na radnidir, radi samo kad se nalazimo u direktoriju /home/vedran
    • relativno referenciranje kreće od trenutnog direktorija i ide do traženog direktorija, nikad ne započinje znakom /

Zadatak

  • Izlistajte kućni direktorij korisnika prof:
    • apsolutnim referenciranjem iz svojeg kućnog direktorija,
    • apsolutnim referenciranjem iz korijenskog direktorija,
    • relativnim referenciranjem iz svojeg kućnog direktorija,
    • relativnim referenciranjem iz korijenskog direktorija.
  • Objasnite zašto prva dva dijela imaju isto rješenje.
  • Koji je vaš kućni direktorij na računalu na kojem trenutno radite?
  • U kojem se direktoriju nalazi moj kućni direktorij?
  • U kojem se direktoriju nalazi vaš kućni direktorij, a u kojem vaš home direktorij?
  • Imate li pristup kućnom direktoriju korisnika student08? Izlistajte sadržaj neke njegove datoteke.

Rekurzivnost u radu s direktorijima i datotekama

  • ls -R radi rekurzivno izlistavanje
    • izlista direktorij i njegove poddirektorije
    • na sličan način radi brisanje direktorija u kojem postoje poddirektoriji i datoteke

Zadatak

  • Koristeći naredbu ls izlistajte rekurzivno svoj kućni direktorij.
  • Izlistajte rekurzivno sljedeće direktorije:
    • /usr,
    • /usr/local (ovaj direktorij izlistajte dva puta: prvi put koristeći relativno, a drugi put apsolutno referenciranje).
  • Što se događa kada umjesto parametra -R koristite parametar -r? Isprobajte.

Ponovimo!

  • Navedite po jedan primjer za jednokorijenski i višekorijenski operacijski sustav.
  • Što je FHS?
  • Prisjetite se koja je uloga pojedinih direktorija u datotečnom sustavu.
  • Postoji li razlika između kućnog i home direktorija korisnika?
  • Na koji način možemo kompletirati nazive direktorija i datoteka?
  • Kako izglda referenca za trenutni (radni) direktorij? Kako za onaj jednu hijerarhijsku razinu više?
  • Ponovite razliku između apsolutnog i relativnog referenciranja.
  • Ako se nalazite u vlastitom kućnom direktoriju, napišite relativnu i apsolutnu adresu koja će vas odvesti do korijenskog direktorija.
  • Čemu služi rekurzivno izlistavanje direktorija?
  • Kakve informacije daje naredba pwd?