2.3 Lekcija 1
Uvod
Sertifikat: |
Linux Essentials |
---|---|
Verzija: |
1.6 |
Tema: |
2 Kretanje kroz Linux sistem |
Cilj: |
2.3 Korištenje direktorija i prikaz datoteka |
Lekcija: |
1 od 2 |
Datoteke i direktoriji
Linux sistem datoteka sličan je sistemima datoteka drugih operativnih sistema po tome što sadrži datoteke i direktorije. Datoteke sadrže podatke kao što su tekst čitljiv ljudima, izvršni programi ili binarni podaci koje koristi računar. Direktoriji se koriste za kreiranje organizacije unutar sistema datoteka. Direktoriji mogu sadržavati datoteke i druge direktorije.
$ tree Documents ├── Mission-Statement.txt └── Reports └── report2018.txt 1 directory, 2 files
U ovom primjeru, Documents
je direktorij koji sadrži jednu datoteku po imenu (Mission-Statement.txt
) i jedan poddirektorij (Report
). Direktorij Reports
zauzvrat sadrži jednu datoteku pod nazivom report2018.txt
. Za direktorij Documents
se kaže da je roditelj (eng.parent) direktorija Reports
.
Tip
|
Ako komanda |
Datoteke i nazivi direktorija
Imena datoteka i direktorija u Linuxu mogu sadržavati mala i velika slova, brojeve, razmake i posebne znakove. Međutim, budući da mnogi specijalni znakovi imaju posebno značenje u Linux šelu, dobra je praksa ne koristiti razmake ili posebne znakove prilikom imenovanja datoteka ili direktorija. Za razmake, na primjer, potreban je escape znak \
da bi se ispravno unio:
$ cd Mission\ Statements
Također, pogledajte naziv datoteke report2018.txt
. Imena datoteka mogu sadržavati sufiks koji dolazi nakon tačke (.
). Za razliku od Windowsa, ovaj sufiks nema posebno značenje u Linuxu; tu je za ljudsko razumijevanje. U našem primjeru .txt
nam ukazuje da je ovo tekst datoteka, iako tehnički može sadržavati bilo koju vrstu podataka.
Navigacija kroz sistem
Dobijanje trenutne lokacije
Pošto su Linux šelovi kao što je Bash zasnovani na tekstu, važno je zapamtiti svoju trenutnu lokaciju kada se krećete po sistemu datoteka. komandni prompt pruža ove informacije:
user@hostname ~/Documents/Reports $
Imajte na umu da će informacije kao što su korisnik
i ime hosta
biti pokrivene u budućim odjeljcima. Iz prompta sada znamo da je naša trenutna lokacija u direktoriju Reports
. Slično, komanda pwd
će ispisati radni direktorij:
user@hostname ~/Documents/Reports $ pwd /home/user/Documents/Reports
Odnos direktorija je predstavljen kosom crtom (/
). Znamo da je Reports
poddirektorij Documents
direktorija, koji je poddirektorij korisnika
, koji se nalazi u direktoriju zvanom home
. home
izgleda da nema roditeljski direktorij, ali to uopće nije istina. Roditelj home
direktorija se naziva root i predstavljen je prvom kosom crtom (/
). O root direktoriju ćemo raspravljati u kasnijem odjeljku.
Obratite pažnju kako se izlaz komande pwd
malo razlikuje od putanje date na komandnoj liniji. Umjesto /home/user
, komandna linija sadrži tildu (~
). Tilda je poseban znak koji predstavlja korisnikov početni direktorij. Ovo će biti detaljnije obrađeno u sljedećoj lekciji.
Prikaz sadržaja direktorija
Sadržaj trenutnog direktorija se prikazuje koristeći komandu 'ls'.
user@hostname ~/Documents/Reports $ ls report2018.txt
Imajte na umu da ls
ne daje informacije o roditeljskom direktoriju. Slično, po defaultu ls
ne prikazuje nikakve informacije o sadržaju poddirektorija. ls
može samo “vidjeti” ono što je u trenutnom direktoriju.
Promjena trenutnog direktorija
Navigacija u Linuxu se prvenstveno obavlja komandom cd
. Ovo promjenjuje direktorij. Koristeći komadnu pwd
od ranije, znamo da je naš trenutni direktorij /home/user/Documents/Reports
. Možemo promijeniti naš trenutni direktorij unošenjem nove putanje:
user@hostname ~ $ cd /home/user/Documents user@hostname ~/Documents $ pwd /home/user/Documents user@hostname ~/Documents $ ls Mission-Statement.txt Reports
Sa naše nove lokacije možemo “vidjeti” Mission-Statement.txt
i naš poddirektorij Reports
, ali ne i sadržaj našeg poddirektorija. Možemo se kretati nazad do `Reports`direktorija ovako:
user@hostname ~/Documents $ cd Reports user@hostname ~/Documents/Reports $ pwd /home/user/Documents/Reports user@hostname ~/Documents/Reports $ ls report2018.txt
Sad smo se vratili na početak.
Apsolutna i relativna putanja
Komanda pwd
uvijek ispisuje apsolutnu putanju. To znači da putanja sadrži svaki korak staze, od vrha sistema datoteka (/
) do dna (Reports
) direktorija. Apsolutne putanje uvijek počinju sa /
.
/ └── home └── user └── Documents └── Reports
Apsolutna putanja sadrži sve informacije potrebne da se dođe do Reports
direktorija s bilo kojeg mjesta u sistemu datoteka. Nedostatak je što je zamorno kucanje.
Drugi primjer (cd Reports
) bio je mnogo lakši za kucanje. Ovo je primjer relativne putanje. Relativne putanje su kraće, ali imaju značenje samo u odnosu na vašu trenutnu lokaciju. Razmotrite ovu analogiju: posjećujem vas u vašoj kući. Rekli ste mi da vaš prijatelj živi u susjedstvu. Razumjet ću tu lokaciju jer je relativna u odnosu na moju trenutnu lokaciju. Ali ako mi ovo kažeš preko telefona, neću moći pronaći kuću tvog prijatelja. Morat ćete mi dati kompletnu adresu.
Specijalne relativne putanje
Linux šel nam daje načine da skratimo put kada se krećemo. Da bismo otkrili prve specijalne putanje, unosimo komandu ls
sa zastavicom (opcijom) -a
. Ova zastavica modificira komandu ls
tako da su sve datoteke i direktoriji navedeni, uključujući skrivene datoteke i direktorije:
user@hostname ~/Documents/Reports $ ls -a . .. report2018.txt
Note
|
Možete pogledati |
Ova komanda je otkrila dva dodatna rezultata: Ovo su posebne putanje. Oni ne predstavljaju nove datoteke ili direktorije, već predstavljaju direktorije koje već poznajete:
.
-
Označava trenutnu lokaciju (u ovom slučaju,
Reports
) direktorija. ..
-
Označava roditeljski direktorij (u ovom slučaju,
Documents
) direktorija.
Obično nije potrebno koristiti posebnu relativnu putanju za trenutnu lokaciju. Lakše je i razumljivije otkucati report2018.txt
nego ./report2018.txt
. Ali .
ima namjene koje ćete naučiti u budućim odjeljcima. Za sada ćemo se fokusirati na relativnu putanju za roditeljski direktorij:
user@hostname ~/Documents/Reports $ cd .. user@hostname ~/Documents $ pwd /home/user/Documents
Primjer cd
komande je mnogo lakši kada koristite ..
umjesto apsolutne putanje. Osim toga, možemo kombinirati ovaj obrazac da bismo se vrlo brzo kretali po stablu datoteka.
user@hostname ~/Documents $ cd ../.. $ pwd /home
Vođene vježbe
-
Za svaki od sljedećih putanja odredite da li je apsolutna ili relativna:
/home/user/Downloads
../Reports
/var
docs
/
-
Obratite pažnju na sljedeću strukturu datoteke. Napomena: Direktoriji završavaju kosom crtom (
/
) kada sestablo
pozove s opcijom-F
. Trebat će vam povišene privilegije da biste pokrenuli komandutree
u root (/
) direktoriju. Sljedeći je primjer izlaza i ne ukazuje na potpunu strukturu direktorija. Koristite ga da odgovorite na sljedeća pitanja:$ sudo tree -F / / ├── etc/ │ ├── network/ │ │ └── interfaces │ ├── systemd/ │ │ ├── resolved.conf │ │ ├── system/ │ │ ├── system.conf │ │ ├── user/ │ │ └── user.conf │ └── udev/ │ ├── rules.d/ │ └── udev.conf └── home/ ├── lost+found/ └── user/ └── Documents/ 12 directories, 5 files
Koristite ovu strukturu kako biste odgovorili sljedeća pitanja.
Korisnik je unjeo sljedeće komande
$ cd /etc/udev $ ls -a
Šta će prikazati komanda 'ls -a'?
-
Unesite najkraće komande za svaki od navedenog:
-
Vaša trenutna lokacija je root('/') direktorija. Unesite komandu za navigaciju u direktorij 'lost+found' unutar 'home' direktorija (primjer):
$ cd home/lost+found
-
Vaša trenutna lokacija je root('/') direktorij. Unesite komandu za navigaciju u direktorij /etc/network.
-
Vaša trenutna lokacija je direktorij
/home/user/Documents/
. Navigirajte ili odaberite direktorij '/etc'. -
Vaša trenutna lokacija je direktorij
/etc/systemd/system/
. Navigirajte ili odaberite direktorij/home/user/
.
-
-
Razmotrite sljedeće komande
$ pwd /etc/udev/rules.d $ cd ../../systemd/user $ cd .. $ pwd
-
Šta će na kraju prikazati komanda 'pwd'?
Istraživačke vježbe
-
Pretpostavite da je korisnik unjeo sljedeće komande:
$ mkdir "this is a test" $ ls this is a test
Koja 'cd' komanda će vam omogućiti da uđete u ovaj direktorij?
-
Pokušajte ponovo, ali nakon unosa 'cd this', pritisnite TAB taster. Šta je sada prikazano u promptu?
Ovo je primjer autokompletiranja, koji je neprocjenjiv alat ne samo za uštedu vremena, već i za sprječavanje pravopisnih grešaka.
-
Pokušajte kreirati direktorij čije ime sadrži znak
\
. Prikažite ime direktorija sals
i izbrišite direktorij.
Sažetak
U ovoj lekciji ste naučili:
-
Osnove Linux sistema podataka
-
Razlika između roditeljskog direktorija i poddirektorija
-
Razlika između apsolutne i relativne putanje datoteka
-
Posebna relativna putanja
.
i..
-
Navigacija kroz sistem datoteka korištenjem komande 'cd'
-
Prikaži trenutnu lokaciju korištenjem komande 'pwd'
-
Prikaži sve datoteke i direktorije korištenjem 'ls -a' komande
Sljedeće komande su korištene u ovoj lekciji:
cd
-
Promijeni trenutni direktorij
pwd
-
Prikaži putanju trenutnog radnog direktorija
ls
-
Prikaži sadržaj direktorija i pojedinosti o datotekama
mkdir
-
Kreiraj novi direktorij
tree
-
Prikaži hijerarhijski stablo direktorija
Odgovori na vođene vježbe
-
Za svaki od sljedećih putanja odredite da li je apsolutna ili relativna:
/home/user/Downloads
apsolutna
../Reports
relativna
/var
absolutna
docs
relativna
/
absolutna
-
Obratite pažnju na sljedeću strukturu datoteke. Napomena: Direktoriji završavaju kosom crtom (
/
) kada setree
pozove s opcijom-F
. Trebat će vam povišene privilegije da biste pokrenuli komandutree
u tree (/
) direktoriju. Sljedeći je primjer izlaza i ne ukazuje na potpunu strukturu direktorija. Koristite ga da odgovorite na sljedeća pitanja:$ sudo tree -F / / ├── etc/ │ ├── network/ │ │ └── interfaces │ ├── systemd/ │ │ ├── resolved.conf │ │ ├── system/ │ │ ├── system.conf │ │ ├── user/ │ │ └── user.conf │ └── udev/ │ ├── rules.d/ │ └── udev.conf └── home/ ├── lost+found/ └── user/ └── Documents/ 12 directories, 5 files
Korisnik je unjeo sljedeće komande:
$ cd /etc/udev $ ls -a
Šta će prikazati komanda 'ls -a'?
. .. rules.d udev.conf
-
Unesite najkraće komande za svaki od navedenog:
-
Vaša trenutna lokacija je root (
/
) direktorija. Unesite komandu za navigaciju u direktorijlost+found
unutarhome
direktorija (primjer):$ cd home/lost+found
-
Vaša trenutna lokacija je root (
/
) direktorij. Unesite komandu za navigaciju u direktorij/etc/network
.$ cd etc/network
-
Vaša trenutna lokacija je direktorij
Documents
. Navigirajte do direktorija pod nazivometc
:$ cd /etc
-
Vaša trenutna lokacija je direktorij
system
. Navigirajte do direktorijauser
.$ cd /home/user
-
-
Razmotrite sljedeće komande:
$ pwd /etc/udev/rules.d $ cd ../../systemd/user $ cd .. $ pwd
Šta će na kraju prikazati
pwd
komanda?/etc/systemd
Odgovor na istraživačke vježbe
-
Pretpostavite da je korisnik unjeo sljedeće komande:
$ mkdir "this is a test" $ ls this is a test
Koja 'cd' komanda će vam omogućiti da uđete u ovaj direktorij?
$ cd this\ is\ a\ test
-
Pokušajte ponovo, ali nakon unosa 'cd this', pritisnite TAB taster. Šta je sada prikazano u promptu?
+
$ *cd this\ is\ a\ test*
+ Ovo je primjer autokompletiranja, koji je neprocjenjiv alat ne samo za uštedu vremena, već i za sprječavanje pravopisnih grešaka.
-
Pokušajte kreirati direktorij čije ime sadrži znak
\
. Prikažite ime direktorija sals
i izbrišite direktorij.Možete ili izbjeći obrnutu kosu crtu koristeći drugu obrnutu kosu crtu (
\\
) ili koristiti jednostruke ili dvostruke navodnike oko cijelog imena direktorija:$ mkdir my\\dir $ ls 'my\dir' $ rmdir 'my\dir'