Linux file system - struktura direktorija
U Windowsima ste navikli da se sistemske datoteke nalaze u C:\Windows direktoriju, instalirani programi u C:\Program Files, a ostatak particije je prepušten vama da rasporedite vaše datoteke (My Documents, MyMusic itd..) U linuxu je stvar malo drugačija i na prvi pogled dijeluje komplicirano, iako uistinu nije. Početna lokacija u linuxu je root direktorij, koji se označava sa "/" (bez navodnika). U njemu se nalaze sve ostale datoteke i direktoriji. Idemo redom pokušati objasniti za što služi koji direktorij.
/bin - služi za smještaj osnovnih sistemskih izvršnih datoteka (cat, ls, cp..)
/boot - sadržava datoteke važne za učitavanje sistema (kernel image, GRUB...)
/dev - direktorij koji prikazuje sve prisutne uređaje na računalu (u linuxu svi uređaji poput tvrdog diska ili CD-Roma predstavljaju se u obliku datoteka (pr. dvd, cdrom, hda), tako da linux vaš cdrom vidi kao "/dev/cdrom"
/etc - direktorij koji sadrži konfiguracijske datoteke sistema (mijenjanjem sadržaja ovih datoteka možemo konfigurirati cijeli sistem)
/home - vaš "home" direktorij, odnosno mjesto gdje spremate sve vaše datoteke (dokumenti, slike, glazba...)
/initrd - svojevrsni temp (privremeni) direktorij koji se koristi samo pri učitavanju sistema, a zatim se njegov sadržaj briše, tako da je uvijek prazan
/lib - sadržava razne biblioteke potrebne izvršnim datotekama koje se nalaze u direktorijima /bin i /sbin
/media - direktorij iz kojeg možemo pristupiti svim tvrdim diskovima i izmjenjivim medijima (CD, DVD, USB...)
/mnt - direktorij iz kojeg se prije pristupalo tvrdim diskovima i izmjenjivim medijima, u većini distribucija sada se za ovu svrhu koristi /media direktorij.
/opt - direktorij u kojeg se spremaju datoteke programa koji nisu instalirani putem upravitelja paketa ili kompajliranjem izvornog koda
/proc - direktorij koji sadrži informacije važne za rad sistema
/root - direktorij korisnika root
/sbin - sadrži sistemske izvršne datoteke
/sys - datoteke sustava
/tmp - direktorij za privremene datoteke
/usr - korisnički direktorij koji sadržava izvršne datoteke instaliranih programa, dokumentaciju i sl.
/var - sadrži promijenjive (varijabilne) datoteke poput sistemskih logova
Kao što vidite, većina ovih direktorija pripada sistemu, i nećete imati potrebu prčkati po njima, kao što niste ni po C:\Windows direktoriju u windowsima. Ipak nije loše znati čemu služi koji direktorij. Za početak je najvažnije zapamtiti /home i /media direktorije.
Napomena: Direktorij je isto što i "folder" i "mapa".

HOME - korisnički direktorij
Home direktorij je naš osobni direktorij gdje spremamo sve naše datoteke. U nekim distribucijama podijeljen je na poddirektorije tipa Documents, Music, Video i slično. Znači kao što ste u windowsima često znali koristiti particije "D:", "E:" i sl. za spremanje vaših osobnih datoteka, ovdje za tu namjenu koristimo home direktorij. Home direktorij može biti i kompletna particija, što je korisno ukoliko se odlučimo promijeniti distribuciju, naše osobne datoteke ostati će netaknute.

Linux datoteke
Linux može baratati gotovo sa svim vrstama datotekama koje ste koristili u windowsima (.html, .txt, .wav, .jpg, .gif, .pdf, .mp3 itd.) No neke od njih ne znače mu apsolutno ništa, kao što je to slučaj sa izvršnim EXE datotekama. U radu sa linuxom susretat ćete se sa nekim vrstama datoteka na koje niste navikli. Ponekad ćete naići i na datoteke koje nemaju nastavak. (pomoću naredbe File možemo saznati o kakvoj vrsti datotekama se radi, a često je posve dovoljno pogledati u direktorij u kojem se nalaze).
Ovo su neke osnovne datoteke na koje ćete često nailaziti.
.bz2, .gz, .tar, .tar.gz, .tgz - datoteke sa ovakvim nastavcima su arhivirane/kompresirane datoteke. Njihov ekvivalenti u windowsima najčešće su .zip i .rar datoteke. Za pregled i ekstraktiranje ovakvih datoteka trebat ćete neki program za dearhiviranje.
.deb - Debian paket za instalaciju softvera (dovoljno ga je samo pokrenuti i on će obaviti instalaciju)
.rpm - Red Hat paket za instalaciju softvera (dovoljno ga je samo pokrenuti i on će obaviti instalaciju)
.conf - konfiguracijska datoteka. U nekim slučajevima "conf" se koristi kao naziv datoteke a ne kao ekstenzija
.so - biblioteka ili modul
.png - slikovna datoteka (Portable Network Graphic)
.sh - shell skripta
.py — python skripta
.pl - perl skripta

Što su to virtualne radne površine?

Što je to komandna linija?

Koje su često upotrebljavane naredbe u komandnoj liniji?
Prelazak sa grafike na konzolni (tekstualni) način rada i obrnuto:
- CTRL+ALT+F1 = prelazak sa grafičkog moda u tekstualnu konzolu
- CTRL+ALT+F7 = prelazak sa tekstualnog moda u grafički
- CTRL+ALT+BACKSPACE = resetiranje grafičkog servera (X-servera)
- startx = Naredba za povratak u grafičko sučelje iz konzole
Logiranja:
Kad se otvara konzola logirate se sa svojim loginom i šifrom (Linux ne prikazuje znakove dok tipkate šifru, ali ih PRIHVAĆA)
Kada dobijete prompt ono malo teksta ispred crtice koja trepće, možete u Linux unositi naredbe, odnosno pozivati programe i skripte koje se nalaze na disku.
Govoriti ćemo samo o najosnovnijima kako bi mogli učiniti nešto u slučajevima kada grafika krahira. Smatram da korisnicima koji koriste Linux kao OS za rad i zabavu nije potreban preveliki rad u konzoli.
Dakle, vratimo se temi.
Od komandi za logiranje potrebno je znati ovo:
login korisnički_login = logiranje na sustav pod korisničkim imenom (ono što se desi kada pređete na konzolni rad, pa vas pita login i password)
passwd [-d] korisnički_login = promjena šifre korisnika, ako se upotrijebi opcija -d, onda se naredbom briše šifra i korisnik tada NEMA šifru i na pitanje password stisne se ENTER
sudo neka_naredba = pozivanjem naredbe sudo, te navođenjem druge naredbe i parametara iza nje omogućava izvršavanje te, navedene naredbe kao root.
sudo -s = naredbom prebacujete se u root korisnika. To znači da će te od tada sve naredbe izvršavati kao root.
Što je root?
Root (korijen op.prev.) je naziv za dvije stvari.
Prvo, to je naziv za prvi, korijenski direktorij na datotečnom sustavu. Ima oznaku kose crte (/). Svi direktoriji se granaju iz njega. Primijetili ste već da u Linuxu nema C, D, E... diskova. Sve je u direktorijima. Pa se tako i raznim "mrežnim diskovima" i ostalim diskovima (Flash, hard, floppy) pristupa ulazeći u određene direktorije
Drugo, to je naziv za, odnosno sinonim za superuser login. Odnosno korisnika sa pravima administriranja sustava. Root-u je sve dozvoljeno. On može doslovno sve obrisati sa diskova ako mu pukne film.
Oprez!
U radu sa sudo moguć je nesmetan pristup i rad sa sistemskim datotekama, koje su sve one koje nisu unutar vašeg /home/moj_home direktorija. Nepažnjom ili neznanjem možete bitno oštetiti vaš operativni sustav, čak do te mjere da će te morati sve nanovo preinstalirati, a moguć je i gubitak svih vaših podataka.
Rad sa datotekama, direktorijima i linkovima:
Prvo i osnovno: Linux razlikuje velika i mala slova i nije svejedno kako napisali ime komande, direktorija, datoteke ili linka!
Ove naredbe će vam gotovo sigurno trebati u radu sa datotekama. No prije svega, bit ću malo dosadan pa vas upoznati sa tri generalne stvari kod rada sa datotekama.
Imamo tri pojma: 1. datoteke, 2. direktorije (foldere, ako hoćete) i 3. linkove. Ovo treće će vam biti možda nešto novo u odnosu na Windoze. Generalna koncepcija je ovakva: U direktorije spremamo druge direktorije, datoteke i linkove. U datoteke spremamo podatke. Linkovima kreiramo neke vrste veza, prečaca i ajd, recimo kvazi-duplikata. Linkovi vam i tako nisu presudni za rad sa datotečnim sustavom, pa ću ih ostavit za kraj poglavlja.
Rad sa direktorijima
cd putanja = ovom naredbom ulazimo u druge direktorije. Putanja je put do željenog direktorija prema dubini. (npr /home/moj_home/Desktop)
cd .. = vraća nas jedan korak prema gore u direktorijima po dubini
ls = naredbom prikazujemo (listamo) sadržaj direktorija u kojem se trenutno nalazimo. Radi i naredba dir, ali ls je izvorni Linux. Ovime dobivamo kratku listu samo imena
ls -l = naredbom prikazujemo detaljnu listu sadržaja trenutnog direktorija
mkdir ime_dir = Naredba služi za kreiranje novog direktorija sa imenom ime_dir
rmdir ime_dir = Naredba služi za brisanje direktorija, ali samo ako je prazan
rm -r ime_dir = Naredba služi za brisanje direktorija i svega što je u njemu
Trik: kada želimo ući u neki direktorij koji ima ime dugačko kao kobasica, ne moramo tipkati sve znakove. Otipkajte prvih nekoliko i stavite znak *. To je jocker koji zamjenjuje bilo koje znakove. Npr: cd /home/moj_home/Des* odvest će vas u Desktop direktorij.
Rad sa datotekama:
cp putanja_od/ime_datoteke putanja_do/novo_ime = Kopira datoteku ime_datoteke iz putanja_od u putanja_do sa imenom novo_ime. Ako se ne navede putanja_od kopirati će iz trenutnog direktorija, ako se ne navede putanja_do kopirati će u trenutni direktorij, ako se ne navede novo_ime kopija će imati isto ime kao original.
mv putanja_od/ime_datoteke putanja_do/novo_ime = Premješta datoteku ime_datoteke iz putanja_od u putanja_do sa imenom novo_ime. Ako se ne navede putanja_od premjestit će iz trenutnog direktorija, ako se ne navede putanja_do premjestit će u trenutni direktorij, ako se ne navede novo_ime premještena će datoteka imati ime kao original.
rm putanja/ime_datoteke = Naredba briše datoteku. Ako se ne navede putanja briše datoteku iz trenutnog direktorija.
Rad sa linkovima:
Eh, sada što su to linkovi. Kako to postoji i u Windozama, samo se iz tko zna kojih razloga Microsoft nikada nije potrudio bolje objasniti i podržati u GUI-u pokušat ću vam to predočiti ovdje. Kao prvo, to nisu Shortcutovi (prečaci) iz Windowsa. Shortcut u Windowsima je zapravo datoteka sa nastavkom .lnk. Linkovi su točno ono što i sama riječ kaže - veze, poveznice. Razlikujemo dva tipa linkova u Linuxu. Hard linkove i Symbolic linkove. Razlika - drastična.
Simbolički linkovi su jednostavniji za objasniti i oni su donekle slični Shortcutovima (prečacima) u Windowsima, sa jednom razlikom što se mogu primijeniti i na direktorije.
Kako stvar funkcionira:
Npr, često trebate ići u direktorij koji ima za ime svoje putanje čitavu kobasicu ili želite brže doći do nekog direktorija (npr. često koristite cdrom i da bi otišli na njega morate uvije kucati /media/cdrom, vama se to ne da i htjeli biste brže, npr iz svog home direktorija. Ništa lakše - napravite simbolički link ovako: ln -s /media/cdrom cdrom. Sada kada želite na cd-rom iz svog direktorija samo tipkate: cd cdrom i gore ste! Isto vrijedi za datoteke.
Dakle:
ln -s putanja ime_linka = Naredbom se za putanja kreira simbolički link ime_linka u trenutnom direktoriju
ln -s putanja/datoteka ime_linka = Naredbom se za putanja/datoteka kreira simbolički link ime_linka u trenutnom direktoriju
rm putanja/ime_linka = Naredba briše link. Ako se ne navede putanja briše link iz trenutnog direktorija. (Ista naredba kao i za datoteke)
A sada nešto o hard linkovima. Hard link funkcionira isključivo na datotekama. Njegov vidljivi rezultat je gotovo identičan kao da ste kopirali datoteku iz direktorija u direktorij. Čak će vam napisati i veličinu datoteke kada pregledavate direktorij. Nećete uočiti vidljivu razliku između kopirane i hard-linkane datoteke. ALI, razlika je u ovome. Zamislite datoteku kao nešto što ima glavu u tijelo. Glava je njezino ime, podaci o veličini, atributi. a tijelo su podaci u datoteci. Kada kopirate datoteku naredbom cp vi stvarate duplikat i glave i tijela i takva datoteka zauzima prostor na disku dva puta. Međutim, kada stvarate hard-link datoteke vi stvarate SAMO duplikat glave datoteke, a tijelo je zajedničko, što znači da takva datoteka zauzima samo jedno mjesto na disku. Bez obzira pristupali datoteci preko originalnog imena (glave) ili preko hard-link imena (glave) vi ćete uvijek pristupiti ISTIM podacima u datoteci (tijelu).
Tu se odmah postavlja pitanje, što ako ja pristupivši datoteci preko hard-link imena promijenim podatke u datoteci i snimim to natrag na disk. Što će se desiti sa podacima koji bi trebali pripadati originalnom imenu, zar će i i tamo promijeniti. E neće, u tom slučaju veza se automatski raskida i hard-link postaje prava datoteka sa svojim tijelom koje u sebi nosi i promjenu koju ste snimili, a original ostaje netaknut. To sve radi datotečni sustav automatski i vi o tome ne vodite brigu. (Da, to postoji i pod windozama i radi odlično, ali samo u NTFS datotečnom sustavu)
Ako obrišete originalno ime (glavu), a hard-link ostavite, datotečni sustav neće obrisati daoteku, nego hard-link postaje original.
Kako ih se stvara:
ln putanja/datoteka ime_linka = Naredbom se za putanja/datoteka kreira hard-link ime_linka u trenutnom direktoriju
rm putanja/ime_linka = Naredba briše link. Ako se ne navede putanja briše link iz trenutnog direktorija. (Ista naredba kao i za datoteke)


|