Download as pdf or txt
Download as pdf or txt
You are on page 1of 92

ZAVOD ZA ELEKTRONIKU, MIKROELEKTRONIKU, RAUNALNE I INTELIGENTNE SUSTAVE

FAKULTET ELEKTROTEHNIKE I RAUNARSTVA


SVEUILITE U ZAGREBU

GNU/LINUX
Osnovni teaj
uredili: Marko Salki, Miljen Miki

Zagreb, 2005.

Sadraj
1.Osnove Linuxa..................................................................................................................................
......7
1.1.Operacijski sustav.................................................................................................................
..........7
1.2.Linux.................................................................................................................................
..............7
1.3.Struktura Linuxa............................................................................................................
.................7
1.3.1.Jezgra (kernel) Linuxa ...........................................................................................
................8
1.3.2.Ljuska (shell) i korisnika razina ..................................................................
........................9
1.4.Kratki povijesni razvoj Linuxa..............................................................................................
.........9
1.5.Tko je vlasnik Linuxa?..............................................................................................
...................10
1.6.Koritenje sustava pomoi..........................................................................................................
..10
1.6.1.Naredba man..........................................................................................................
...............10
1.6.2.Naredba info.............................................................................................
............................13
2.Korisnici u Linux operacijskom sustavu........................................................................................
......15
2.1.Terminal...............................................................................................................................
.........15
2.2.Prijava i odjava sa sustava.................................................................................................
...........15
2.2.1.Naredba login...................................................................................................................
.....15
2.2.2.Naredba logout..................................................................................................................
....16
2.3.Promjena zaporke naredbom passwd..........................................................................
.................16
2.4.Informacije o korisniku.......................................................................................
.........................16
2.4.1.Naredba finger..............................................................................................
........................16
2.4.2.Naredba chfn.................................................................................................................
........17
2.4.3.Naredba who am i.....................................................................................................
............18
2.5.Informacije o ostalim korisnicima.............................................................................................
...18
2.5.1.Naredba users...................................................................................................................
.....18
2.5.2.Naredba who..........................................................................................................
...............18
2.6.Aktivnost korisnika na sustavu....................................................................................................
.19
2.7.Promjena grupe..................................................................................................................
...........19
2.8.Identifikator korisnika i grupe..........................................................................................
............20
2.8.1.Naredba id...................................................................................................................
..........20
2.9.Zadaci........................................................................................................................................
....20
3.Rad s datotekama i direktorijima..............................................................................
...........................21
3.1.Uvod..........................................................................................................................................
....21
3.2.Hijerarhijska struktura datotenog sustava..................................................................................21
3.3.Prikaz sadraja direktorija............................................................................................
................22
3.4.Naredba pwd....................................................................................................................
.............24
3.5.Kreiranje novog direktorija ..................................................................................
.......................25
3.6.Promjena direktorija................................................................................................
.....................26
3.7.Kopiranje datoteka..................................................................................................................
......27
3.8.Premjetanje i preimenovanje datoteka..................................................................................
......28
3.9.Brisanje datoteke................................................................................................
..........................28
3.10.Brisanje direktorija................................................................................................
.....................30
3.11.Zadaci.......................................................................................................................................
...31
4.Struktura datotenog sustava u Linuxu...................................................................................
.............32
4.1.Uvod..........................................................................................................................................
....32
4.2.Direktorij /bin......................................................................................................
.........................32
4.3.Direktorij /dev..........................................................................................................................
.....32
4.4.Direktorij /etc.......................................................................................................................
.........33
4.5.Direktorij /lib..........................................................................................................
......................34
4.6.Direktorij /lost+found.......................................................................................................
............35
4.7.Direktorij /mnt.........................................................................................................
.....................35
4.8.Direktorij /var......................................................................................................
.........................35
4.9.Direktorij /sys.......................................................................................................
........................36
4.10.Direktorij /tmp........................................................................................................
....................36

4.11.Direktorij /usr.............................................................................................................................
.36
4.12.Direktorij /usr/bin..................................................................................................
.....................37
4.13.Direktorij /usr/sbin.................................................................................................................
.....37
4.14.Direktorij /usr/share.........................................................................................................
...........37
4.15.Direktorij /usr/man..........................................................................................
...........................37
4.16.Specijalni direktoriji . i ................................................................................................
..............37
4.17.Poetni direktorij................................................................................................
........................38
4.18.Nadgledanje zauzea diskovnog prostora..................................................................
................38
4.18.1.Naredba du..............................................................................................................
............38
4.18.2.Naredba df........................................................................................................................
...39
4.18.3.Naredba quota........................................................................................................
.............39
4.19.Zadaci.......................................................................................................................................
...40
5.Kreiranje datoteka ................................................................................................................................
41
5.1.Naredba touch...................................................................................................................
............41
5.2.Naredba file...................................................................................................................................
41
5.3.Naredba cat ..............................................................................................................
....................42
5.4.Naredba head..........................................................................................................
......................43
5.5.Naredba tail............................................................................................................................
.......44
5.6.Naredba more.............................................................................................................................
...44
5.7.Naredba less........................................................................................................................
..........45
5.8.Zadaci........................................................................................................................................
....46
6.Vlasnitvo i dozvole........................................................................................................
.....................47
6.1.Uvod..........................................................................................................................................
....47
6.2.Vlasnik, grupa i ostali.........................................................................................................
..........47
6.3.Promjena dozvola...................................................................................................
......................48
6.4.Promjena vlasnika......................................................................................................................
...51
6.5.Promjena grupe..................................................................................................................
...........51
6.6.Zadaci........................................................................................................................................
....52
7.Pretraivanja, filtri i cjevovodi.....................................................................................................
........53
7.1.Preusmjeravanje sadraja, operatori <, >, >>, |.........................................................................
...53
7.2.Izdvajanje odreenih redaka datoteke, naredba grep...................................................................55
7.3.Brojanje rijei i linija datoteke, naredba wc................................................................................56
7.4.Sortiranje sadraja datoteke, naredba sort................................................................................
....57
7.5.Izbacivanje duplih linija, naredba uniq....................................................................
....................59
7.6.Izrezivanje dijelova redaka datoteka, naredba cut.......................................................................60
7.7.Traenje datoteka....................................................................................................................
......61
7.7.1.Naredba find.............................................................................................
............................61
7.7.2.Naredba whereis.........................................................................................
..........................63
7.7.3.Naredba locate..............................................................................................
........................64
7.8.Zadaci........................................................................................................................................
....65
8.Zamjenski znakovi i regularni izrazi...........................................................................................
.........66
8.1.Zamjenski znakovi..................................................................................................................
......66
8.2.Regularni izrazi ........................................................................................................................
....68
8.2.1.Openito o regularnim izrazima...........................................................................
................68
8.3.Pretraivanje unutar datoteka pomou grep naredbi.................................................................
...69
9.Rad s procesima............................................................................................................................
........73
9.1.to su procesi?..............................................................................................................
................73
9.2.Ispis procesa na sustavu, naredba ps...........................................................................
.................73
9.3.Prekidanje procesa, naredba kill...............................................................................................
....74
9.4.Odvijanje procesa u pozadini.................................................................................
......................76
9.4.1.Naredba bg...............................................................................................................
.............76
9.4.2.Naredba fg..........................................................................................................................
...76
9.4.3.Operator &.........................................................................................................
...................77
9.5.Odvijanje procesa nakon iskljuenja terminala, naredba nohup.................................................77

9.6.Zadaci........................................................................................................................................
....78
10.Ljuske .................................................................................................................................................
79
10.1. to je ljuska?.......................................................................................................................
.......79
10.2.Vrste ljuski i razlike meu njima.......................................................................
........................79
10.2.1.Bash ljuska..............................................................................................................
............79
10.3. Identifikacija ljuske...........................................................................................
........................79
10.4.Promjena ljuske, naredba chsh..................................................................................
.................80
10.5.Okolina i varijable, naredba export.............................................................................
...............81
10.5.1.Varijable okoline....................................................................................
............................82
10.6.Zadaci.......................................................................................................................................
...84
11.Korisne naredbe.......................................................................................................................
...........85
11.1.Startup datoteke......................................................................................................
....................85
11.2.Datum, vrijeme i kalendar.........................................................................................
.................85
11.2.1.Naredba time...............................................................................................................
........85
11.2.2.Naredba date..................................................................................................
.....................86
11.2.3.Naredba cal...................................................................................................
......................87
11.3.Koritenje kalkulatora....................................................................................
............................88
11.3.1.Naredba bc.......................................................................................................
...................88
11.3.2.Naredba dc.......................................................................................................
...................89
11.4.Kreiranje pseudonima..........................................................................................................
.......90
11.4.1.Naredba alias......................................................................................................................
.90
11.5.Stvaranje linkova.....................................................................................................
...................90
11.5.1.Naredba ln..................................................................................................................
.........90
11.6.Razmjena informacija meu korisnicima...................................................................................
91
11.6.1.Naredba write..................................................................................................................
....91
11.7.Jo korisnih naredbi.......................................................................................................
.............92
11.7.1.Naredba uname................................................................................................
...................92
11.8.Naredba exec..................................................................................................
............................93
11.9.Naredba talk.......................................................................................................................
.........93
11.10.Naredba uptime......................................................................................................................
...94
11.11.Zadaci.....................................................................................................................................
...95
12.Napredno koritenje Linux operacijskog sustava..............................................................................96
12.1.Grafiko suelje X.........................................................................................................
.............96
12.1.1.Osnove........................................................................................................
........................96
12.1.2.Uporaba X-a...................................................................................................................
.....96
12.2.Editor vi..............................................................................................................
........................97
12.3.Elektronika pota...............................................................................................
.......................97
12.3.1.itanje i pisanje poruka elektronike pote.......................................................................97
12.3.2.Naredba mail...............................................................................................................
........98
12.4.Rad s udaljenim raunalima..................................................................................
.....................98
12.4.1.Naredba ssh.................................................................................................................
........98
12.4.2.Naredba wget.....................................................................................................
.................99
12.5.Arhiviranje podataka..........................................................................................
......................100
12.5.1.Naredba tar...................................................................................................................
.....100
12.5.2.Naredba gzip........................................................................................................
.............101
12.5.3.Naredba bzip2.......................................................................................................
............101
12.6.Filtriranje podataka, naredba awk..........................................................................
..................102
12.7.Prevoenje C programa, naredba gcc.....................................................................................
..102
13.Autori pojedinih poglavlja................................................................................................................
104
14.Literatura..........................................................................................................................................
.105

Zahvaljujemo se svima koji su pomogli izradi ove zbirke, a posebno kolegi Dinku Koruniu koji je
uvelike pomogao svojim iskustvom i savjetima, mr.sc. Stjepanu Grou kao inicijatoru, koji nas je
vodio i savjetovao tokom izrade cijelog projekta, Ani Kukec, Luki Drvoderiu, Boidaru Jurici
Kenigu, te svima ostalima koji su sudjelovali na izradi ovog projekta.
Linux zemris team

1.Osnove Linuxa

1. Osnove Linuxa
1.1. Operacijski sustav
Operacijski sustav (operating system) je sustav programske podrke (software) na raunalu, koji
upravlja radom sklopovlja (hardware), te ini vezu izmeu korisnika (user) i sklopovlja. Nadalje,
operacijski sustav ini platformu (bazu), na kojoj se drugi programi, zvani aplikacije, mogu izvoditi.
U irem smislu operacijski sustav se sastoji od 3 dijela: korisnikog suelja, sistemskih alata i jezgre.

1.2. Linux
Linux je operacijski sustav koji omoguava korisnicima rad s aplikacijama, sklopovskim resursima, i
komunikaciju sa ostalim raunalnim sistemima. Vie korisnika moe istovremeno raditi na Linuxu,
to znai da je on viekorisniki (multiuser) operacijski sustav. Nadalje, svaki od tih korisnika moe
pokretati vie aplikacija odjednom jer je Linux viezadani (multitasking) operacijski sustav.
Linux je slobodna implementacija POSIX (Portable Operating System Interface, a X stoji od Unix)
specifikacije operativnog sustava, napisana od nule (tj. ne sadri kod od UNIX-a). Slobodno je
dostupan i njegov je izvorni kod pristupaan svakome. To omoguava korisnicima da ga maksimalno
prilagode svojim potrebama.
Jedno od glavnih naela Linuxa je, uz neke iznimke, da on sve resurse sa kojima raspolae predstavlja
kao datoteke. On omoguava vrlo jednostavno preusmjeravanje ulaza/izlaza i ulanavanje (ref. 7.
pogl). Tako na primjer Linux predstavlja tvrdi disk kao jednu datoteku u koju se moe pisati ili iz nje
itati, monitor kao drugu, a pisa kao treu datoteku. Sve te datoteke su u novije vrijeme, zbog
porasta samog operacijskog sistema, hijerarhijski organizirane u obliku stabla.

1.3. Struktura Linuxa


U irem smislu pod terminom Linux se obino podrazumijeva viekorisniki, viezadani operacijski
sustav koji se sastoji od razliitih programskih cjelina kao to su npr. editori, programski prevodioci,
razliiti namjenski programi. Tada govorimo o Linux distribuciji. U uem smislu Linux je samo
jezgra operativnog sistema koji upravlja resursima raunala. Osnovna organizacijska struktura Linuxa
dana je slikom 1.1

Linux - Osnovni teaj

KORISNIK
LJUSKA

JEZGRA LINUXA

Slika 1.1: Osnovna organizacijska struktura

1.3.1. Jezgra (kernel) Linuxa


Jezgra je dio svakog operativnog sustava iji je osnovni zadatak kontrola sklopovskog dijela raunala
(upravljanje radom procesora, dodjela memorije i sl.). Kad priamo o jezgri, valja napomenuti da
Linux koristi dva naina rada. To su nadzorni i korisniki nain rada. Oni postoje zato da aplikacije
koje se pokreu iz korisnikog naina ne bi otetile operacijski sustav. Ta kontrola je izvedena i
hardverski, u procesoru. U nadzornom nainu se moe direktno upravljati sa npr. memorijom, IRQ,
DMA. On ujedno slui da bi se postavila ogranienja nad aplikacijama koje se pokreu iz korisnikog
naina. Korisniki nain rada je zamiljen kao radna okolina.
Jezgra operacijskog sustava moe biti graena na dva naina: mikrojezgra i monolitna jezgra.
Mikrojezgra je graena tako da se najnuniji softver za pokretanje operacijskog sustava nalazi u njoj.
Takva jezgra ne prua mnogo funkcionalnosti, samo onu osnovnu. Zato uvodimo pojam modula.
Modul je program koji se prilikom pokretanja Linuxa smjeta u radnu memoriju, i kojeg koristi jezgra
da omogui odreenu funkcionalnost. Na primjer, kada se operacijski sustav pokrene, on ne podrava
umreavanje, no ukoliko se modul koji to podrava pokrene, umreavanje biva podrano
operacijskim sustavom. Moduli koji se izvode nemaju sva prava koja ima jezgra. Oni se izvode iz
korisnikog naina rada, ali imaju vie prava od korisnikih aplikacija. Prednost ovakvog pristupa je
taj da kada doe do greke u radu nekog modula, on u principu ne utjee na rad operacijskog sustava.
Jo jedna prednost je lake odravanje. Mana ovakve izvedbe jezgre je ta da ima slabije performanse
od monolitne jezgre.
Monolitna jezgra je izvedba jezgre u kojoj su sve funkcionalnosti ugraene u nju. Ona radi kao jedna
cjelina. Za dodavanje, uklanjanje ili promjenu neke funkcionalnosti na razini operacijskog sustava,
potrebno je cijelu jezgru izgraditi ponovo (rekompajlirati). Glavna razlika od mikrojezgre je ta da u
ovoj izvedbi jezgre svi moduli koji su ugraeni u nju imaju sva prava nadzornog naina rada. Bitna
prednost je ta to ima vrlo visoke performanse u odnosu na mikrojezgru. Jezgra Linuxa je monolitska
jezgra.

1.3.2. Ljuska (shell) i korisnika razina


Ljuska je dio sustava koji omogouje komunikaciju s jezgrom operativnog sustava, alate za
7

1.Osnove Linuxa

funkcioniranje sustava i rad s datotenim sustavom. Ona je program koji slui kao tuma (interpreter)
naredbi i slui kao veza izmeu korisnika i Linuxa. Na taj je nain u stvari programski jezik sa
varijablama, kontrolnim naredbama, potprogramima, prekidima i sl. Svaki korisnik ima odvojenu
kopiju ljuske pa prema tome ljuske mogu biti razliite za svakog korisnika. Neke ljuske su na primjer:
Bourne shell, razvijana u okviru firme AT&T. Poboljane verzije te ljuske su Korn i C ili BSD ljuska
koja je razvijena na University of California at Berkley. Danas su najpopularnije Bash i Zsh.

1.4. Kratki povijesni razvoj Linuxa


Vodei se idejom o stvaranju slobodnog softvera koji e se moi slobodno distribuirati i iji e
izvorni kod biti dostupan korisnicima sofvera, Richard Stallman je 1983. osnovao GNU Projekt. GNU
projekt je imao za cilj stvaranje slobodnog operativng sustava kompatibilnog s Unixom. Do 1990. su
u sklopu GNU projekta dovreni svi potrebni dijelovi sustava osim jezgre. Jezgra na kojoj su sami
radili, GNU Hurd kernel, je napredovala sporo i nije zadovoljavala. U meuvremenu je Linus
Torvalds radio na Linux kernelu, takoer slobodnom softveru koji je posluio GNU Projektu.
Cjelovito ime Linuxa u irem smislu je zato GNU/Linux. Linux kernel je djelo studenta raunarstva
Linusa Torvaldsa, nastao 1991. godine kao posljedica Linusovog hobija. Linus je tada imao tek 23
godine. Nadao se da e stvoriti robusnu inaicu UNIX-a za Minix korisnike.
Sustav Minix predstavlja program kojeg je razvio profesor raunarskih znanosti Andrew Tannebaum.
Sustav Minix je napisan u svrhu uenja, a da bi prikazivao nekoliko koncepata vezanih uz operacijske
sustave. Torvalds je te koncepte objedinio u samostalan sustav nalik UNIX-u. Do tog sustava su
mogli doi svi irom svijeta.
Linus Torvalds se potrudio ponuditi svojim kolegama korisnicima Minixa bolju platformu koju je bilo
mogue pokretati na osobnim raunalima. Linus se opredijelio za raunala s procesorom 386 jer je taj
procesor imao na raspolaganju.
Prije pojave prvih distribucija, korisnik Linuxa je morao znati koji se sve dijelovi operacijskog
sustava moraju pokrenuti da bi se sustav pokrenuo. To je bilo jako nepraktino. im se upotreba
Linuxa poela iriti, pojavile su se i prve distribucije (operacijski sustav nalik Unix-u koji ukljuuje
Linux jezgru, i niz popratnih programa). Distribucija Linuxa je zamiljena da olaka korisnicima
koritenje Linuxa. Trenutno u razvoju postoji vie od 200 distribucija.
Prve distribucije poput MCC Interim Linux (razvijena na University of Manchester, 1992.), TAMU
(Texas A&M University, razvijena u isto vrijeme) i SLS (Soflanding Linux system) su bile teke za
odravanje. Distribucija Slackware autora Patricka Volkerding, baziranu na SLS distribuciji, je
nastarija distribucija koja se jo nadograuje.
Neke danas najrairenije i najupotrebljivanije Linux distribucije su [6,7]:

CentOS 4.2

Debian 3.1

Fedora 4

Gentoo 2005.

Linux - Osnovni teaj

1.5. Tko je vlasnik Linuxa?


IBM posjeduje OS/2, a Microsoft MS-DOS i MS Windowse, ali tko je vlasnik Linuxa? Prvo i
osnovno, razni ljudi polau pravo na razliite komponente Linuxa. Tvrtka Red Hat je vlasnik Red
Hat distribucije, a Patrick Volkerding distribucije Slackware. Mnogi Linux usluni programi spadaju
pod licencu o javnom koritenju General Public License (GPL) kako se on i distribuira. U osnovi,
Linus i veina tvoraca Linuxa su svoje djelo zatitili pomou te licence koja se moe pronai i na
Internetu. Ta se licenca ponekad moe nai i pod imenom GNU Copyleft (pandan rijei copyright).
Njome je programerima omogueno stvaranje softvera za bilo koga i osnovna joj je pretpostavka da bi
softver trebao pripadati svima tako da bilo tko moe prepraviti program prema svojim potrebama.
Jedini je uvjet da i ostali korisnici imaju prava na taj novi, promijenjeni programski kd. GNU
Copyleft, ili GPL, olakava programerima rad, upravo zbog principa otvorenog koda, ali i korisnicima
mijenjanje i prodavanje novih programa. Izvorni programeri ne mogu ograniiti ista takva prava na
mijenjanje programa ljudima koji kupuju program. Ukoliko prodate program u istom ili izmijenjenom
obliku, morate isporuiti i izvorni kd programa. Zbog toga Linux uvijek moete dobiti zajedno s
njegovim izvornim kdom.

1.6. Koritenje sustava pomoi


1.6.1. Naredba man
Man (skraenica od eng. manual) je program koji daje korisniku informacije iz dostupnog prirunika.
Njime dobivamo detaljnije informacije o tome kako se zadaje pojedina naredba, to ona radi, kakve
dodatne parametre (opcije) ima dotina naredba i sl. Sintaksa naredbe man je sljedea:
man -k <klju ne_rije i>
man -f <ime_datoteke>
man <ime_naredbe>

U sluaju prve varijante sintakse, na ekranu e biti ispisan kratak opis svake naredbe koja bilo gdje u
opisu ima neku od kljunih rijei. U drugom sluaju program e potraiti opis vezan uz zadanu
datoteku, dok e se u treem ispisati opis navedene naredbe. Naredba man moe primiti jo mnogo
parametara, no oni nee biti sagledani (za detaljnije informacije pogledati na literaturu iz popisa
koritene literature).
Prirunik se u Linux-u sastoji od nekoliko cjelina, koje se mogu specificirati navoenjem broja cjeline
iza kljune rijei man. Cjeline su prikazane u tablici 1.1.

1.Osnove Linuxa

Tablica 1.1: Cjeline prirunika man

Broj cjeline

Kratak opis

Naredbe dostupne korisnicima

Linux i C sistemske naredbe

Funkcije za C programe

Specijalni nazivi datoteka

Tipovi datoteka i konvencije vezane uz Linux

Igre

Paketi vezani uz procesiranje teksta

Administracijske naredbe i procedure

Primjer:
$ man ls
LS(1)
User Commands
LS(1)
NAME
ls - list directory contents
SYNOPSIS
ls [OPTION]... [FILE]...
DESCRIPTION
List information about the FILEs (the current directory by
default).
Sort entries alphabetically if none of -cftuSUX nor sort.
Mandatory arguments to long options are mandatory for short
options
too.
...

Primjer:
$ man -f ls
ls (1)

- list directory contents

10

Linux - Osnovni teaj

Primjer:
$ man -k ls
blockdev (8)
charmap (5)
deallocvt (1)
dircolors (1)
false (1)
fdutilsconfig (8)
get_kernel_syms (2)
intro (2)
kallsyms (8)
ksyms (8)
logrotate (8)
ls (1)
lsattr (1)
file system
lsmod (8)
lspci (8)
man (1)
md5sum.textutils (1)
protocols (5)
shells (5)
signal (7)
textdomain (3)
tty_ioctl (4)
watch (1)
fullscreen

call block device ioctls from the command line


character symbols to define character encodings
deallocate unused virtual terminals
color setup for ls
do nothing, unsuccessfully
configure the suid bit of fdmount
retrieve exported kernel and module symbols
Introduction to system calls
Extract all kernel symbols for debugging
display exported kernel symbols.
rotates, compresses, and mails system logs
list directory contents
list file attributes on a Linux second extended

list loaded modules.


list all PCI devices
an interface to the on-line reference manuals
compute and check MD5 message digest
the protocols definition file
pathnames of valid login shells
list of available signals
set domain for future gettext() calls
ioctls for terminals and serial lines
execute a program periodically, showing output

Primjer:
$ man 2 mount
MOUNT(2)
Linux Programmer's Manual
MOUNT(2)
NAME
mount, umount - mount and unmount filesystems
SYNOPSIS
#include <sys/mount.h>
int mount(const char *source, const char *target, const char
*filesystemtype, unsigned long
mountflags, const void *data);
int umount(const char *target);
int umount2(const char *target, int flags);
DESCRIPTION
mount attaches the filesystem specified by source (which is often
a device name, but can
also
be a directory name or a dummy) to the directory specified by
target.
umount and umount2 remove the attachment of the (topmost)
filesystem mounted on target.
...

11

1.Osnove Linuxa

Primjer:
$ man 8 mount
MOUNT(8)
Linux Programmer's Manual
MOUNT(8)
NAME
mount - mount a file system
SYNOPSIS
mount [-lhV]
mount -a [-fFnrsvw] [-t vfstype] [-O optlist]
mount [-fnrsvw] [-o options [,...]] device | dir
mount [-fnrsvw] [-t vfstype] [-o options] device dir
DESCRIPTION
All files accessible in a Unix system are arranged in one big
tree, the
file hierarchy, rooted at /. These files can be spread out over
several devices. The mount command serves to attach the file system
found
on some device to the big file tree. Conversely, the umount(8)
command
will detach it again.
The standard form of the mount command, is
mount -t type device dir
...

1.6.2. Naredba info


Info je program razvijen unutar GNU projekta za itanje datoteka tipa Info. Prvo se piu datoteke u
Textinfo jeziku, koje se zatim prevode u Info tip datoteka. Program info datoteke tipa Info interpretira
u itljiv tekst (slino kao HTML). Sintaksa naredbe info je:
info [<opcije>] [klju ne_rije i]

Ovisno o navedenoj opciji i kljuna rije ima drugaije znaenje. Ukoliko se ne navede nikakva
opcija, a navede kljuna rije, program info e pretraiti direktorije navedene u INFOPATH, i ako se
odgovarajua datoteka tamo nalazi, program e prikazati dostupne informacije o traenom pojmu.
Ako ne pronae odgovarajuu datoteku, program e se pokrenuti kao da niti jedna kljuna rije nije
navedena. Korisnik moe dodati direktorij u INFOPATH naredbom:
info -d <direktorij>

Ili pak, ukoliko samo eli pogledati datoteku, za koju zna da nije u direktoriju koji info pretrauje, to
moe naredbom:
info -f <ime_datoteke>

12

Linux - Osnovni teaj

Vrlo je vano znati se snalaziti u programu info. Navigacija programom odvija se tipkama kao to je
prikazano na slici 1.1):
Trenutna datoteka

File: info.info,

Trenutna tema

Node: Help,

Sljedea tema

Next: Help-P,

Prethodna tema

Prev: Help-Small-Screen

ira tema

Up: Getting Started

Slika 1.2. Zaglavlje programa info

Navigacija je omoguena tipkama prikazanim u tablici 1.2.


Tablica 1.2: Tipke naredbe info

Tipke

Znaenje

prikaz sljedee teme u dokumentaciji

prikaz prethodne teme u dokumentaciji

<SPC>
<BACKSPACE>

prikazuje sljedeu stranicu dokumentacije (ako cijela


tema ne stane na ekran)
prikazuje prethodnu stranicu dokumentacije

prikazuje hijerarhijski viu temu

izlazi iz programa

13

2. Korisnici u Linux operacijskom sustavu


2.1. Terminal
Openito, terminal je ureaj koji korisniku omoguuje komunikaciju s raunalnim sustavom. U ovom
tekstu pojam terminal ponajprije e se koristiti u smislu programa koji slui kao posrednik izmeu
korisnika i posluitelja. Drugim rijeima, terminal e omoguiti nekom lokalnom ili udaljenom (eng.
remote) korisniku pristup glavnom Linux posluitelju (eng. server).
Emulator terminala je konkretno program koji emulira (glumi) terminal unutar neke druge
sistemske arhitekture. Tako npr. popularni klijent PuTTY pod Windows operacijskim sustavom slui
za udaljenu emulaciju terminala prilikom prijave na neki posluitelj. Primjeri emulatora terminala za
Linux su Xterm, rxvt, gnome-multi-terminal, gnome-terminal, kconsole, aterm, itd.
Postoji vie vrsta terminala. Osnovna podjela je na tekstualne, koji mogu prikazivati samo tekst, i na
grafike, koji osim teksta mogu prikazivati i grafiku. Vjerojatno najraireniji terminal je popularni
DEC-ov VT100 iz 80-ih godina prolog stoljea koji je praktiki postao standardom za emulatore
terminala.

2.2. Prijava i odjava sa sustava


Linux je viekorisniki operacijski sustav to znai da ga vie korisnika moe koristiti istovremeno.
Svaki korisnik ima svoje korisniko ime kako bi ga sustav mogao identificirati i zaporku kao
sigurnosni element koji titi njegove podatke. Uspjena prijava u sustav podrazumijeva pravilan unos
kombinacije korisnikog imena i zaporke to omoguuje daljnji rad na sustavu. Odjava sa sustava u
naelu zakljuava korisnikove podatke do sljedee prijave.
Treba naglasiti jednoznano dodjeljivanje korisnikih imena pojedinih korisnicima. Takoer, treba
istaknuti da je Linux case sensitive tj. da je osjetljiv na velika i mala slova (Marko i marko nije
isto). Najee su korisnika imena pisana malim slovima te su kombinacija imena i prezimena (ili
inicijala) nekog korisnika. Na FER-ovom serveru pinus.cc.fer.hr korisniko ime je
kombinacija inicijala i JMBAG-a tog korisnika. Na ovaj se nain uklanja mogunost pojavljivanja
dvaju istih korisnikih imena.

2.2.1. Naredba login


Naredba login slui za prijavu na Linux operacijski sustav. Iako je uobiajeno da se nakon
ukljuivanja raunala i podizanja sustava automatski otvara tekstualno ili grafiko suelje u kojem
korisnik jednostavno upisuje svoje korisniko ime i zaporku, smisao ove naredbe lei i u tome da
sustav nakon podizanja omoguava jednostavnu promjenu trenutnog korisnika.

2.2.2. Naredba logout


Ova naredba slui za odjavljivanje sa sustava. Jednostavno se upie logout i sustav nas odjavljuje
ili vraa u suelje (ljusku) korisnika sa ijeg smo terminala upisivali naredbu login.

2.3. Promjena zaporke naredbom passwd


Zaporka (eng. password) ili samo njezino mijenjanje jedna je od vanijih stvari oko kojih bi obian
korisnik trebao voditi rauna prilikom koritenja Linux sustava. Zaporka je rije sastavljena od slova i
znakova koja omoguava pojedinom korisniku da uope koristi sustav. Bilo bi dobro da se zaporka
sastoji od malih i velikih slova, brojeva i dodatnih znakova jer se tako smanjuje mogunost da doe u

Linux - Osnovni teaj

krive ruke. Posljedice koje mogu nastati ako zaporka doe u ruke zlonamjernih osoba mogu biti
katastrofalne ne samo za korisnika ve i za cijeli sustav. Dobra preporuka je da se odabere zaporka
koja nema nikakve povezanosti s korisnikom ni sa dogaajima i stvarima iz njegovog ivota. Evo
primjera: neka korisnik Ivica ima doma psa imena Fido. Nikako nije dobro da njegova zaporka za
prijavu na sustav bude Fido. Ako se ve ide na simboliku, tada bi zaporka F3ed0 bila puno bolja.
Ovaj primjer izgleda pomalo smijeno, ali postoje i banalnije stvari preko kojih se dolazi do zaporke.
Jo jedan koristan savjet je taj da zaporku ne ostavljate negdje fiziki zapisanu ve da ju pamtite
ukoliko je to mogue.
Naredba passwd slui za promjenu zaporke na sustavu. Promijeniti zaporku korisnik moe tek
nakon to se prijavi na sustav. Promjena zaporke vri se tako da se u suelju upie naredba passwd
nakon ega sustav trai da upiete trenutnu vaeu zaporku, a zatim novu zaporku. Iz sigurnosnih
razloga (zbog krivog unosa nove zaporke) sustav e zatraiti da novu zaporku upiemo jo jednom.
Nakon ovoga, naa se zaporka promijenila te emo morati koristiti novu zaporku prilikom narednih
prijava na sustav.
$ passwd
Changing password for user luka.
Changing password for luka
(current) UNIX password:
New UNIX password:
Retype new UNIX password:
passwd: all authentication tokens updated successfully.

2.4. Informacije o korisniku


2.4.1. Naredba finger
Uobiajeno je da meu skupinom ljudi koji su na bilo kakav nain povezani u nekakvu grupu postoji
odreena interakcija. Interakcija unutar odreene grupe ljudi ostvariva je uz uvjet da svaka osoba iz
grupe posjeduje elementarne informacije o svakom lanu grupe. Linux je viekorisniki sustav pa
shodno tome omoguava pohranu osnovnih podataka o korisnicima. Ovi su osnovni podaci dovoljni
za komunikaciju meu korisnicima sustava. Unose se prilikom ostvarivanja novog korisnikog rauna
na sustavu, a najee sadre informacije poput imena i prezimena, adrese, broja telefona i slinog.
Informacije o odreenom korisniku mogu se dobiti ako se u terminalu upie:
finger <korisniko ime>

Sustav nam kao rezultat izlistava podatke o traenom korisniku. Osim imena i prezimena, to su i
podaci o terminalu koji korisnik upotrebljava, vrijeme kad je traeni korisnik zadnji put bio prijavljen
na sustav te adresu s koje se prijavio. Ako upiemo samo finger dobit emo listu imena i
prezimena svih korisnika trenutno prijavljenih na sustav.

15

2.Korisnici u Linux operacijskom sustavu

$ finger
Login
Name
tb
Tomislav Biscan
tb
Tomislav Biscan
wgottwe Walter Gottwein
llovos Luka Lovosevic

TTY
Idle
pts/2
8
pts/4
18
pts/8
4
pts/14

When
18:46
18:46
18:50
21:55

Mon
Mon
Mon
Mon

Where
dh75-63.xnet.hr
gnjilux.srk.fer.hr
gnjilux.srk.fer.hr
ad16-m135.net.t-com.hr

Drugi primjer prikazuje detaljne podatke o korisniku llovos: korisniko ime, ime i prezime,
matini direktorij, ljusku koju koristi, datum, vrijeme, terminal i adresu zadnje prijave na sustav,
vrijeme koliko je neaktivan te ima li neproitanu elektroniku potu.
$ finger llovos
Login name: llovos
In real life: Luka Lovosevic
Directory: /home/users/l/llovos
Shell: /bin/sh
On since May 23 21:55:42 on pts/14 from ad16-m135.net.t-com.hr
20 seconds Idle Time
No unread mail
No Plan.

2.4.2. Naredba chfn


Ovom naredbom moemo promijeniti osnovne informacije o pojedinim korisnicima. Te su
informacije ime i prezime, ured, broj telefona u uredu i kuni telefonski broj. Ukoliko se iza imena
naredbe ne navede parametar, mijenjaju se informacije korisnika koji je pokrenuo naredbu.
$ chfn
Changing finger information for luka.
Password:
Name [Luka Lovosevic]: Drugo Ime
Office [Doma]: Kuca
Office Phone []: 0800600600
Home Phone [ble]: 014683377
Finger information changed.

2.4.3. Naredba who am i


Ukoliko iz bilo kojeg razloga elite saznati tko je trenutni korisnik sustava odnosno terminala, to
moete uiniti na vie naina. Mogunost odabira izmeu vie naina rjeavanja danog problema je
jo jedna posebnost Linuxa. Jedan od naina je koritenje naredbe who uz argumente am i, dakle
who am i. Rezultat izvoenja je prikazan u vie polja. Prvi dio je korisniko ime, drugi je trenutna
komunikacijska linija, tj. terminal koji se koristi, trei je datum i vrijeme prijave u sustav i zadnji je
adresa s koje se pristupa sustavu. Isti efekt daje i naredba who -m. Osim ovih, postoji i naredba
whoami (bez razmaka) koja vraa korisniko ime bez ostalih detalja.

16

Linux - Osnovni teaj

$ who am i
luka
pts/1
$ whoami
luka

May 23 23:30

2.5. Informacije o ostalim korisnicima


esto e u isto vrijeme vie korisnika biti prijavljeno na sustav. Ponekad je korisno znati tko su ti
korisnici, te kada su se prijavili, na koji terminal i slino.

2.5.1. Naredba users


Ova je naredba pandan naredbe whoami rezultat su razmakom odvojena korisnika imena koja su
trenutno prijavljena na sustav bez ikakvih detalja.
$ users
luka

2.5.2. Naredba who


Prije spomenuta naredba who daje vie detalja o trenutnim korisnicima. Osim korisnikog imena,
saznajemo i terminal koji korisnik upotrebljava, datum i vrijeme prijave na sustav te adresu s koje se
prijava izvrila. Puno vie dodatnih informacija daje nam who -a, primjerice vrijeme zadnjeg
podizanja sustava, vrijeme zadnje promjene sistemskog vremena, itd.
$ who
luka
luka
luka

:0
pts/0
pts/1

May 23 23:20
May 23 23:21
May 23 23:30

2.6. Aktivnost korisnika na sustavu


Da bi saznali to pojedini korisnici rade u danom trenutku, tj. koje procese imaju pokrenute, koristimo
se naredbom w koja daje openite informacije o sustavu: od kada je aktivan, koliko ima prijavljenih
korisnika i slino. Rezultat izvoenja naredbe w podijeljen je po poljima. Ono to je ovdje novo u
odnosu na who je stupac IDLE koji nam za pojedinog korisnika govori koliko je vremena prolo u
minutama i sekundama od zadnjeg pokretanja nekog programa. Sljedea polja su JCPU i PCPU koja
predstavljaju ukupni i trenutni procesorski utroak korisnika izraen u minutama i sekundama (sufiksi
m i s). Ono to nas je prvotno zanimalo nalazi se u stupcu WHAT i sadri ime procesa kojeg korisnik
ima trenutno pokrenutog. Ukoliko je proces pokrenut automatski prilikom prijave u sustav (poput
ljuske), tada ime procesa sadri prefiks '-'.

17

2.Korisnici u Linux operacijskom sustavu

$ w
23:47:36 up 28 min,
USER
TTY
luka
pts/0
luka
pts/1

3 users,
LOGIN@
23:21
23:30

load average: 0,08, 0,06, 0,02


IDLE JCPU PCPU WHAT
6:27 0.00s 0.54s kdeinit: kwrited
0.00s
0.14s
0.02s w

2.7. Promjena grupe


Struktura Linuxa je takva da svako korisniko ime pripada jednoj ili vie grupa korisnika s time da
ima jednu primarnu (glavnu) grupu dok su ostale sekundarne. Vanost grupa je u organiziranju svih
korisnika sustava. Ovisno o tome kojoj grupi neki korisnik pripada, biti e mu dozvoljeno ili
zabranjeno itanje, pisanje ili pokretanje odreenih datoteka na tom sustavu. Moe se, meutim, javiti
situacija kada korisnik eli promijeniti grupu kojoj trenutno pripada kako bi dobio dozvole koje mu
omoguavaju neku radnju. Uvjet je, naravno, da pripada i grupi na koju se eli prebaciti. Ovo se
izvodi naredbom newgrp. Argument je ime nove grupe, a ukoliko se takvo ime ne navede, naredba
pretpostavlja primarnu (podrazumijevanu) grupu. Ukoliko korisnik ne pripada grupi na koju se eli
prebaciti, biti e mu zabranjen pristup toj grupi (trai se upis zaporke za novu grupu).
$ newgrp root
Password:
Sorry.

2.8. Identifikator korisnika i grupe


Na razini sustava, za predstavljanje korisnikih imena i grupa koriste se brojevi. ID (eng.
identification) je broj koji e sluiti kao identifikacija korisnika u sustavu. Postoji UID (eng. user id) i
GID (eng. group id). Prvi predstavlja broj koji jednoznano odreuje nekog korisnika. Npr. UID
korisnika marko moe biti 501, dok je UID korisnika root 0 (ovo je administrator sustava). Drugi
broj, GID, je brojevni ekvivalent imena grupe kojoj korisnik pripada.

2.8.1. Naredba id
Ukoliko elimo vidjeti koji nam je UID ili jesmo li pravilno promijenili grupu, to emo postii
naredbom id. Ona kao rezultat vraa UID i GID brojeve vezane za trenutnog korisnika te popis grupa
kojima korisnik pripada. Argument ove naredbe moe biti i neko drugo korisniko ime ukoliko
elimo saznati na primjer kojoj grupi pripada neki drugi korisnik.
$ id
uid=501(luka) gid=501(luka) groups=501(luka)

18

Linux - Osnovni teaj

2.9. Zadaci
1) Promijenite svoju zaporku (panja nemojte ju zaboraviti!)
2) Odjavite se sa sustava i prijavite se opet pomou novo stvorene zaporke.
3) Ispiite na zaslon trenutno prijavljene korisnike sustava.
4) Odaberite jednog od trenutno prijavljenih korisnika i ispiite detaljnije informacije o
njemu.
5) Pokuajte promijeniti svoje osobne podatke.
6) Ispiite na zaslon imena programa koje trenutno koriste prijavljeni korisnici.
7) Ispiite na zaslon identifikatore za proizvoljno odabrane korisnike.

19

3. Rad s datotekama i direktorijima


3.1. Uvod
Jezgra linuxa je tradicionalno raspolagala svim ureajima i svime ostalim kao datotekama. Kako su se
tehnologije razvijale, nekim ureajima je postalo teko, pa i nemogue raspolagati kao s datotekama u
klasinom smislu. Meutim, rad s datotekama je i dalje jedna od sutinskih vjetina rada na Linuxu.
Svaka od takvih datoteka ima svog vlasnika i neke interne informacije koje ju poblie opisuju.
Datoteke su hijerarhijski grupirane u direktorije (kazala). Direktorij je posebna datoteka koja sadri
druge datoteke i direktorije. U radu na sustavu potrebno je znati sadraj direktorija, etati se kroz
direktorije, stvarati nove, brisati postojee i drugo.

3.2. Hijerarhijska struktura datotenog sustava


U Linuxu, kao i u svim operacijskim sustavima, takoer postoje datoteke i direktoriji (kazala). Ime
datoteke sastoji se od jednostavnog niza slova, brojeva i interpunkcijskih oznaka. Linux omoguava
ime datoteke u duljini od 256 znakova. S obzirom da je prijenos datoteka s jednog na drugo raunalo
vrlo bitan trebalo bi se drati ogranienja duljine imena datoteke od 14 znakova iz razloga to mogu
nastati odreeni problemi pri prijenosu datoteka na alternativne datotene sustave.
to se tie FAT32 i NTFS datotenih sustava ne bi trebalo biti problema po tom pitanju. Direktorij
koji sadri sve ostale direktorije u Linuxu je direktorij root koji se oznaava kosom crtom(/), kao to
prikazuje slika 3.1
root(/)

bin

dev

etc

home

ivica

marica

programi proba

...

...

opt

var

usr

etc

...

src

sys

sbin

...
Slika 3.1.Struktura datotenog sustava

Svaki korisnik operacijskog sustava Linux posjeduje svoj matini direktorij koji mu se dodijeli pri
dodavanju korisnika na operacijski sustav. Prema dogovoru (odnosno prema Filesystem Hierarchy
Standard - FHS, 1994) matini direktoriji svih korisnika nalaze se u direktoriju /home. Direktoriji u
Linuxu su datoteke koje sadre imena datoteka i poddirektorije te usmjerivae na te datoteke i
poddirektorije. Ako se ispie sadraj nekog direktorija na ekran, ustvari se ispie sadraj datotekekazala. Kada se mijenja ime odreene datoteke, a pri tome se datoteka nalazi u tekuem direktoriju,
ustvari se mijenja zapis u datoteci-kazalu. Ako se odreena datoteka premjeta s jednog direktorija u
drugi direktorij, to ustvari znai da se premjeta njezin opis iz jedne datoteke-kazala u drugu. Svaka
datoteka ima svoj broj (inode) koji fiziki reprezentira njenu lokaciju na disku. Jednoj datoteci
predstavljenoj jednim inode brojem, moe se pristupati s razliitim imenima. Tako se dobiva dojam
da su to dvije razliite datoteke, iako je njihov sadraj isti.

Linux - Osnovni teaj

Datoteke se u Linuxu dijele na etiri tipa: obine datoteke, datoteke-kazala, veze, posebne datoteke.
Obine datoteke mogu sadravati dokumente, osnovni kod u C jeziku, binarne izvrne datoteke, razne
skripte itd. Datoteke-kazala objanjene su prethodno. Veze u pravom smislu rijei nisu datoteke ve
elementi u kazalu koji su usmjereni na datoteke.
U svijetu u kojem ivi i u okolini koja ga okruuje ovjek svakodnevno uoava oko sebe stvari i
pojave koje su smjetene na tono odreenim mjestima i po propisanim pravilima. Jedan od openitih
primjera za takvo neto je npr. fakultet. Fakultet je, radi lakeg rada i snalaenja organiziran u vie
odjela (zavoda) tj. moe se rei da fakultet posjeduje nekakvu hijerarhiju. Npr. ako student Pero
Peri eli doi do dekana on zna da e se direktno uputiti na dekanat, a ne npr. na zavod za
matematiku.
Analogno, na operacijskom sustavu Linux postoje razliiti direktoriji (odjeli) u kojima su smjetene
tono odreene datoteke. Sustav je koncipiran na takav nain iz prethodno reenog razloga, a to je:
jednostavniji rad, lake snalaenje po sustavu itd.

3.3. Prikaz sadraja direktorija


Na Linuxu se sadraj direktorija doznaje koritenjem naredbe ls, koja podrava itav niz parametara
kojim prilagoavamo ispis naim potrebama. U DOS-u je to naredba dir, a kako bi na Linuxu dobili
ekvivalentnu naredbu, trebamo koristiti naredbu s parametrima ls -C -b. Ostali parametri su
objanjeni u daljnjem tekstu.
Osnovnim koritenjem naredbe ls bez parametara dobivamo popis svih datoteka i direktorija,
poredan abecednim redom, odozgor prema dolje te s lijeva na desno. Budui Linux razlikuje mala i
velika slova, prednost velikog nad malim slovom uzima se u obzir prilikom sortiranja.
Ako elimo saznati vie informacija, naredbi ls dodajemo parametre. Za prikaz veliine datoteke
koristimo parametar -s:
Primjer:
$ ls -s
total 14
2 DeadLetters

2 Mail
2 atlas

2 dat.txt
2 dead.letter

2 mail
2 write

Prikazani broj uz datoteku ili direktorij je koliina blokova zaokruena na prvo cijelo. Linux radi sa
blokovima podataka, a veliina bloka ovisi o datotenom sustavu. Obino je 1 kilobajt, a ponekad 512
bajta. Fizika veliina se dobiva mnoenjem broja blokova sa veliinom bloka. Zbroj blokova je
naveden pod total, ali on ne ukljuuje veliinu podreenih direktorija. Direktorij iz naeg primjera
zauzima 14 * 1 kB, tj. 14 kilobajta.
Za informacije o veliinama pojedinih datoteka ili direktorija, iza naredbe ls -s navodimo njihova
imena odvojena razmakom:
Primjer:
$ ls -s prog1.a prog2.a
2 prog1.a
2 prog2.a

Datoteke koje poinju sa tokom (.) Linux prepoznaje kao skrivene datoteke (ili direktorije). U takve
21

3.Rad s datotekama i direktorijima

se datoteke u poetnom direktoriju snimaju korisnike konfiguracije. Za prikaz takvih datoteka koristi
se parametar -a:
Primjer:
$ ls -a
.
..
.TTauthority
.Xauthority
.addressbook
.addressbook.lu

.login
.logout
.mozilla
.pine-debug1
.pine-debug2
.pine-debug3

.profile
.viminfo
DeadLetters
Mail
atlas
dat.txt

Poetni direktorij pun je skrivenih datoteka.


Ako elimo detaljan izvjetaj o datotekama koji ukljuuje i prikaz dozvola koristimo parametar -l.
Moemo koristiti kombinaciju s parametrom -a da dobijemo izvjetaj o svim pa tako i skrivenim
datotekama.
Primjer:
$ ls -la
total 178
drwx-----8 marko
drwxr-xr-x 110 root
drwx-----2 marko
---------1 marko

other
other
pripr
pripr

1024
2048
512
179

Apr
Aug
Apr
Apr

29 00:47 .
31 2004 ..
21 00:58 mail
12 23:44 write

O dozvolama e biti rijei kasnije, a sada spomenimo da postoje tri vrste dozvola za tri grupe
korisnika. Svaka od njih sadri dozvolu za itanje r (engl. read), dozvolu za pisanje w (engl.
write) i dozvolu za izvravanje x (engl. execute). Slovo d na poetku oznaava direktorij, a znak
- datoteku. U prvom stupcu je navedeno radi li se o datoteci ili direktoriju, te vrste dozvola. U
drugom stupcu je broj tvrdih poveznica datoteka (engl. hard link), o kojima e takoer neto vie biti
reeno kasnije. Potom slijede stupci s imenom vlasnika datoteke, other i pripr su korisnike
grupe na pinusu. Zavrni stupac sadri veliinu direktorija ili datoteke, te podatak o zadnjoj promjeni.
Lista parametara za naredbu ls je dugaka, a u tablici 3.1su prikazani ve objanjeni parametri uz
dodatak jo nekih koji se esto koriste.

22

Linux - Osnovni teaj

Tablica 3.1: Popis nekih oznka naredbe ls

Parametar

Znaenje

-a

Ispisuje sve datoteke, ukljuivi i skrivene

-F

Navodi tip datoteke stavljajui oznake / za direktorij , * za izvrnu datoteku, @ za


simboline veze

-s

Prikaz veliine datoteke u blokovima

-C

Prikaz u stupcima

-1

Prikaz u jednom stupcu

-l

Detaljan izvjetaj

-g

Slino kao -l, samo bez prikaza vlasnika

-r

Prikaz u obrnutom redoslijedu (engl. reverse)

-t

Sortiranje po vremenu modifikacije

-u

Sortiranje po vremenu pristupa

-S

Sortiranje po padajuoj veliini datoteka

-d

Prikaz samog direktorija, ne njegovog sadraja

3.4. Naredba pwd


Tijekom kretanja po direktorijima esto puta korisnika zanima u kojem se direktoriju trenutno nalazi
odnosno koja je staza direktorija u kojem se korisnik trenutno nalazi. Naredba koja omoguava
pregled staze direktorija u kojem se korisnik nalazi u svakom trenutku je naredba pwd. Dakle, ako se
korisnik nalazi trenutno u direktoriju /ivica, pokretanjem naredbe pwd na terminalu e se ispisati
/home/ivica. Primjer:
$ pwd
/home
$ cd ivica
$ pwd
/home/ivica

3.5. Kreiranje novog direktorija


Kreiranje novog direktorija postiemo naredbom mkdir (engl. make directory) koja je vrlo
jednostavna za koritenje. Treba se samo pozicionirati u direktorij u kojem elimo kreirati novi
direktorij i navesti ime novog direktorija ili iz bilo kojeg drugog direktorija navesti apsolutni put.
Apsolutni put se navodi poevi od korijenskog direktorija (engl. root), koje se oznaava kao ''/'',
tako da se svaki sljedei direktorij odvoji istim znakom ''/'', sve dok ne navedemo i posljednji, eljeni
direktorij.

23

3.Rad s datotekama i direktorijima

Primjer:
$ ls
DeadLetters
Mail
$ mkdir VJEZBA
$ ls
DeadLetters
Mail

SQL
dead.letter

atlas
write

mail

SQL
atlas

VJEZBA
mail

dead.letter

write

Pogledajmo unutar novostvorenog direktorija:


Primjer:
$ ls -ld VJEZBA
drwx-----2 marko
$ ls -la VJEZBA
total 4
drwx-----2 marko
drwx------ 11 marko

pripr

512 Nov

pripr
other

512 Nov
1024 Nov

1 22:32 VJEZBA

1 22:32 .
1 22:32 ..

Prvom naredbom dobili smo prikaz samog direktorija te njegovog detaljnog izvjetaja.
Pretpostavljene (default) dozvole postavljene su umask naredbom. Drugom naredbom smo zavirili
unutar novostvorenog direktorija i pronali samo specijalne datoteke ''.'' i ''..''. Jedna pokazuje na
sebe samu, a druga na nadreeni direktorij.
Prilikom stvaranja novog direktorija treba imati na umu da su potrebne odgovarajue dozvole u
radnom direktoriju.

3.6. Promjena direktorija


Prijavom na sustav, korisnik se pozicionira u svoj matini direktorij (engl. home) kojeg je je najee
potrebno promijeniti. To inimo naredbom cd.
Naredba cd (engl. change directory) je naredba kojom mijenjamo trenutni, odnosno radni direktorij.
Novi direktorij zadajemo relativno radnom direktoriju ili apsolutnim putem. Oba naina prikazat
emo primjerima.
Primjer:
$ pwd
/home/marko
$ cd VJEZBA
$ pwd
/home/marko/VJEZBA

Ovim primjerom mijenjamo radni direktorij u direktorij VJEZBA koje se nalazi u radnom direktoriju
(ta injenica nam omoguava koritenje relativnog puta). Naredbom pwd provjeravamo koji je
trenutani direktorij. Da bi se pozicionirali u direktorij VJEZBA iz bilo kojeg drugog direktorija,
trebamo uz naredbu cd navesti apsolutni put.
Primjer:
24

Linux - Osnovni teaj

$ pwd
/home/marko/VJEZBA
$ cd /home/marko/mail
$ pwd
/home/marko/mail

Navodei apsolutni put, pozicioniramo se u navedeni direktorij bez obzira u kojem se direktoriju sada
nalazili. Unosom naredbe cd mail sustav bi javio greku. Greka bi se javila jer se u radnom
direktoriju ne nalazi direktorij mail. U zadavanju puta se moemo koristiti specijalnim direktorijem
.. koji pokazuje na nadreeni direktorij.
Primjer:
$ pwd
/home/marko/mail
$ cd ../VJEZBA
$ pwd
/home/marko/VJEZBA

U putu moemo zadavati serije ''..'' direktorija odvojenih znakom '' /'', to nam omoguava da s
manje tipkanja doemo do istog rezultata.
cd bez parametara pozicionira nas u poetni direktorij (engl. Home, koji je odreen varijablom
okoline HOME), a cd / nas pozicionira u izvorni sustavni direktorij ili korijen (engl. root). Korijen
moemo zamisliti kao deblo drveta iz kojega se granaju sve grane (direktoriji) i listovi (datoteke).
esta greka prijelaznika iz DOS-a je da upisuju cd.. (bez razmaka). Treba upisati cd .. (s
razmakom) jer je cd program, a ".." ispravni argument.

3.7. Kopiranje datoteka


Ukoliko elimo imati vie kopija iste datoteke, koristimo naredbu cp.
Sintaksa naredbe sadri izvorinu datoteku koju slijedi odredina datoteka. Ciljna i odredina datoteka
mogu biti odreene apsolutnom ili relativnom stazom do datoteke ili direktorija.
Naredbom touch (vidi 5. poglavlje) stvoriti emo za potrebe ovog primjera datoteku tekst.txt.
Naredbu cp slijedi datoteka koju elimo kopirati te datoteka u koju elimo kopirati sadraj.
Primjer:
$ touch tekst.txt
$ cp tekst.txt tekst.copy
$ ls -l tekst.txt tekst.copy
-rw------1 marko
pripr
-rw------1 marko
pripr

0 Nov
0 Nov

1 23:06 tekst.copy
1 23:06 tekst.txt

Iz detaljnog izvjetaja primjeujemo da su se dozvole takoer kopirale.


Ako u sintaksi naredbe uz datoteku (ili seriju datoteka) slijedi ime direktorija, tada e se navedena(e)
datoteka(e) kopirati u navedeni direktorij i to s imenom (ili serijom imena) preuzetim od originalne
datoteke.
25

3.Rad s datotekama i direktorijima

Primjer:
$ mkdir NOVO
$ cp tekst.copy tekst.txt NOVO
$ ls -l NOVO
total 4
-rw------1 marko
pripr
-rw------1 marko
pripr

0 Nov
0 Nov

1 23:17 tekst.copy
1 23:17 tekst.txt

Postupak kopiranja sadraja direktorija sastoji se od stvaranja novog direktorija i kopiranja sadraja iz
izvorinog direktorija u novostvoreni direktorij.
elimo li kopirati direktorij sa svim njegovim sadrajem u novi direktorij, naredbi cp dodajemo
parametar -r.
Primjer:
$ ls NOVO
tekst.copy tekst.txt
$ cp -r NOVO NOVO2
$ ls NOVO2
tekst.copy tekst.txt

Vidljivo je da su se datoteke kopirale u novostvoreni direktorij.

3.8. Premjetanje i preimenovanje datoteka


Radnje vezane uz preimenovanje i premjetanje datoteka na Linux sustavu radimo jednom naredbom.
To je naredba mv (engl. move), koja slui za premjetanje datoteke u neki drugi direktorij ili
promjenu imena datoteke (direktorija). Oblik pisanja naredbe je gotovo identian naredbi cp, a time i
njezina pravila koritenja. Po elji odabran broj datoteka moemo premjestiti iz jednog direktorija u
drugo, uz napomenu da kao korisnik moramo imati dozvolu pisanja za taj direktorij.
Koritenjem naredbe cp za kopiranje direktorija (ili datoteke) potreban je parametar r, to nije
sluaj i za naredbu mv.
elimo direktoriju NOVO promijeniti ime u STARO. To emo pokazati na primjeru.
Primjer:
$ ls NOVO
tekst.copy tekst.txt
$ mv NOVO STARO
$ ls STARO
tekst.copy tekst.txt

Slino emo postupiti ako elimo premjestiti direktorij na novu poziciju, npr. u nadreeni direktorij.
Primjer:

26

Linux - Osnovni teaj

$ mv STARO ../
$ ls ../
DeadLetters
Mail

SQL
STARO

atlas
VJEZBA

mail
dead.letter

write

3.9. Brisanje datoteke


Naredba rm (engl. remove) je naredba koju koristimo za brisanje datoteka. Potrebno je biti jako
oprezan s naredbom rm zato to se, za razliku od DOS-a, jednom obrisana datoteka ne moe vie
povratiti. Ovom naredbom ne moemo brisati direktorije, osim ako joj ne dodamo parametar -r
(engl. recursive) kada briemo direktorij i sve pripadne datoteke (tj. datoteke koje se nalaze u tom
direktoriju). Parametar -i (engl. interactive) slui kao mjera sigurnosti na nain da trai potvrdu
(yes, no) za brisanje svake datoteke posebno.
Primjer:
$ ls -l
total 6
drwx-----2 marko
pripr
-rw------1 marko
pripr
-rw------1 marko
pripr
$ rm -i tekst.copy tekst.txt
rm: remove tekst.copy (yes/no)? Y
rm: remove tekst.txt (yes/no)? N
$ ls -l
total 4
drwx-----2 marko
pripr
-rw------1 marko
pripr

512 Nov
0 Nov
0 Nov

1 23:22 NOVO2
1 23:06 tekst.copy
1 23:06 tekst.txt

512 Nov
0 Nov

1 23:22 NOVO2
1 23:06 tekst.txt

Naredba rm -i e za sve datoteke navedene u sintaksi naredbe traiti potvrdu brisanja. Vidimo da
je nakon brisanja u trenutnom direktoriju ostala datoteka tekst.txt jer ona nije dobila potvrdu.
Primjer:
$ cd ..
$ ls -lR VJEZBA
VJEZBA:
total 4
drwx-----2 marko
-rw------1 marko
VJEZBA/NOVO2:
total 4
-rw------1 marko
-rw------1 marko
$ rm -r VJEZBA
$ ls -lR VJEZBA
VJEZBA: No such file or

pripr
pripr

512 Nov
0 Nov

pripr
pripr

0 Nov
0 Nov

1 23:22 NOVO2
1 23:06 tekst.txt

1 23:22 tekst.copy
1 23:22 tekst.txt

directory

U ovom ''opasnom'' primjeru pokazali smo pravu snagu naredbe rm koritenjem parametra -r.
Naredba ls -lR nam, takoer rekurzivno, izlistava direktorij i svaki njegov podreeni direktorij
(VJEZBA/NOVO2). Nakon rekurzivnog brisanja je sve to se nalazilo unutar direktorija VJEZBA
27

3.Rad s datotekama i direktorijima

(sve datoteke i direktoriji) nepovratno uniteno.

3.10. Brisanje direktorija


Za brisanje direktorija koristimo naredbu rmdir (engl. remove directory). Uvjet da bi mogli obrisati
neki direktorij svakako je dozvola za pisanje i itanje. Drugi uvjet koji je potreban prije brisanja
direktorija je da on mora biti prazan, tj. u njemu ne smije biti nikakvih datoteka. Time se donekle
spreava neeljeni gubitak sadraja.
Pokazat emo to na primjeru.
Primjer:
$ ls -l STARO
total 4
-rw------1 marko
pripr
0 Nov 1 23:29 tekst.copy
-rw------1 marko
pripr
0 Nov 1 23:29 tekst.txt
$ rmdir STARO
rmdir: directory "STARO": Directory not empty

Pokuali smo obrisati direktorij koji nije prazan te nam je sustav javio greku. Ako prethodno
obriemo sadraj, moemo uspjeno obrisati i direktorij.
Primjer:
$ rm STARO/*
$ rmdir STARO
$ ls -l STARO
STARO: No such file or directory

Koritenjem zamjenskih znakova (8. poglavlje) obrisali smo sadraj direktorija STARO, a nakon toga
i sm direktorij.

28

Linux - Osnovni teaj

3.11. Zadaci
1) U korijenskom direktoriju stvorite novi direktorij Vjezba
2) Pomou naredbe touch upiite neki tekst u datoteku tekst.txt
3) U direktoriju Vjezba stvorite novi direktorij Backup i kopirajte tamo datoteku
tekst.txt
4) Novokopiranu datoteku preimenujte u tekst.copy
5) Izlistajte rekurzivno sve direktorije sa punim izvjetajem iz direktorija Vjezba
6) Pokuajte obrisati direktorij Backup koristei naredbu rmdir. to se dogodilo?
7) Obriite koristei naredbu rm direktorij Backup
8) Uvjerite se da direktorija vie nema
9) U direktoriju Vjezba obriite datoteku tekst.txt
10) Iz korijenskog direktorija koristei naredbu rmdir obriite direktorij Vjezba

29

4. Struktura datotenog sustava u Linuxu


4.1. Uvod
Klasian sastav direktorija u operativnom sustavu Linux sastoji se od direktorija: /bin, /dev,
/etc, /lib, /lost+found, /mnt, /sys, /tmp, /usr. Napisani direktoriji nalaze se u
root(/) direktoriju i oni su neophodni za rad operacijskog sustava Linux. Naravno da to nisu svi
direktoriji na operativnom sustavu Linux, oni ovise o broju i vrsti paketa koji su instalirani na sustav.

4.2. Direktorij /bin


U direktoriju /bin se nalaze svi programi koji su potrebni za pokretanje sustava kao i veina naredbi
koje Linux koristi. Pod pojmom naredbe misli se na binarne datoteke u ovom direktoriju koje su u
stvari izvrne datoteke. Tako se, izvoenjem naredbe ls u direktoriju /bin, izmeu ostalih izlistaju i
sljedee naredbe: cat, gunzip, ping, cp, mv itd. Radi se o izvedbenim naredbama, koje se nalaze
i u sljedeim direktorijima: /usr/ucb, te /usr/bin.

4.3. Direktorij /dev


U kazaSlu /dev nalaze se specijalne datoteke koje mogu, ali i ne moraju odgovarati nekom
upravljakom programu u jezgri sustava. Kako se u Linuxu sve temelji na datotekama, svaka jedinica
(disketna jedinica, tvrdi disk, USB (serijiski US random pristup) , COM portovi itd.) prikljuena na
raunalo, odreena je specijalnim datotekama koje se nalaze u ovom direktoriju. Glavna podjela
izmeu jedinica je na takozvane blokovne ureaje i znakovne ureaje. Generalno blokovni
ureaji predstavljaju jedinice koje pohranjuju ili uvaju podatke (npr. tvrdi disk, disketna jedinica
itd.) dok se znakovni ureaji mogu shvatiti kao jedinice koje prenose podatke (npr. Serijski port,
paralelni port, mi itd.). Ilustracije radi, slijedi primjer dijela sadraja /dev direktorija:
$ ls -al
crw------crw------lrwxrwxrwx
lrwxrwxrwx
crw------lrwxrwxrwx
lrwxrwxrwx

1
1
1
1
1
1
1

jelena
jelena
root
root
jelena
root
root

root
root
root
root
root
root
root

14,
14,

5,

4
20
3
3
1
3
3

Oct
Oct
Oct
Oct
Oct
Oct
Oct

24
24
24
24
24
24
24

2005
2005
2005
2005
2005
2005
2005

audio
audio1
cdrom -> hdc
cdwriter -> hdc
console
dvd -> hdc
floppy -> fd0

Datoteke /dev/cdrom i /dev/fd0 predstavljaju redom CDROM i disketnu jedinicu. Vano je


napomenuti da su navedene datoteke iste kao i sve ostale to znai da se njih moe upisivati i iz njih
itati. Ako se uzme za primjer datoteka /dev/dsp koja predstavlja interni zvunik u raunalu
upisivanjem predvienog teksta u tu datoteku interni zvunik u raunalu e reproducirati nekakav
zvuk.
Ako se izlista sadraj direktorija /dev vide se datoteke hda, hda1, hda2 itd. Te datoteke
predstavljaju glavni disk (hda) i razliite particije glavnog diska (hda1,hda2..):
$ ls -al
brw-r----brw-r----brw-r----brw-r-----

1
1
1
1

root
root
root
root

disk
disk
disk
disk

3,
3,
3,
3,

0
1
2
3

Oct
Oct
Oct
Oct

24
24
24
24

2005
2005
2005
2005

hda
hda1
hda2
hda3

Linux - Osnovni teaj

Od ostalih datoteka u daljnjem tekstu spomenute su one koje se najee spominju u praksi, a
prikazane s u tablici 4.1
Tablica 4.1: Ostale datoteke direktorija /dev

Datoteka

Znaenje

/dev/ttyS0 (COM1)

Prvi serijski port

/dev/psaux (PS/2)PS/2

Veza za mi ili tipkovnicu

/dev/lp0 (LPT1)

Prvi paralelni port

/dev/dsp

Prva audio jedinica

/dev/usb (USB)

Veza za USB jedinice

/dev/sda (C:\, SCSI)

Memorijske jedinice(stickovi) itd.

/dev/scd (D:\, CD-ROM)

Prvi CDROM

4.4. Direktorij /etc


U direktoriju /etc i u njegovim poddirektorijima nalaze se sve konfiguracijske datoteke.
Konfiguracijska datoteka definira se kao datoteka s kojom se kontrolira rad odreenog programa.
Neke osnovne konfiguracijske datoteke su: /etc/passwd, /etc/group, /etc/networks,
/etc/lilo.conf,/etc/modules,/etc/profile
Interakcija izmeu programa i konfiguracijske datoteke se odvija na nain da program ita postavke iz
datoteke i na temelju toga usmjerava svoje izvravanje. Linije u datoteci koje poinju znakom # se
zanemaruju od strane programa te program koristi samo one linije u datoteci koje ne poinju s #. Kao
to je reeno u direktoriju /etc nalaze se sve konfiguracijske datoteke, a od bitnijih valja spomenuti
datoteke passwd i group u kojima su redom spremljene lozinke korisnika sustava te podaci o tome
kojoj grupi koji korisnik pripada. Slijedi primjer dijela sadraja direktorija /etc:
$ ls -al
-rw-r--r-drwxr-xr-x
-rw-r--r--rw-r--r-drwxr-xr-x
drwxr-xr-x
-rw-r--r--rw-r--r--rw-r--r-drwxr-xr-x
drwxr-xr-x
-rw-r--r--

1
2
1
2
3
2
1
1
2
4
2
1

root
root
root
root
root
root
root
root
root
root
root
root

root
root
root
root
root
root
root
root
root
root
root
root

236
4096
594
152
4096
4096
1539
840
24
4096
4096
253

May
Sep
Sep
Oct
Sep
Jul
Sep
Apr
Oct
Oct
Sep
May

22
1
1
20
1
24
1
15
20
21
1
25

21:14
13:00
13:34
13:33
13:05
06:02
13:34
2005
16:34
11:58
13:01
19:46

eclipse.conf
fonts
group
hosts
mail
mplayer
passwd
profile
resolv.conf
vmware
yum
yum.conf

4.5. Direktorij /lib


U direktoriju /lib nalaze se sve dijeljene (shared) i statike (static) biblioteke koje programi koriste.
Biblioteke su u stvari datoteke te ih se moe promatrati kao nekakve potprograme koje odreeni
31

4.Struktura datotenog sustava u Linuxu

program poziva kad mu zatrebaju, npr. potprograme za programski jezik C i druge programske jezike.
Neke od njih se pozivaju kad ih odreeni program treba dok su neke konstantno aktivne jer ih sustav
konstantno koristi. Nastavak imena datoteka koje predstavljaju biblioteke na operativnom sustavu
Linux je *.so to je ekvivalent *.dll na Windows operativnom sustavu. Slijedi primjer dijela
sadraja direktorija /lib:
$ ls -al
-rwxr-xr-x
1 root root
22624 Oct
2.3.3.so
lrwxrwxrwx
1 root root
14
Sep
../usr/bin/cpp
lrwxrwxrwx
1 root root
19
Apr
-> libnss_dns-2.3.3.so
-rwxr-xr-x
1 root root
47244 Oct
2.3.3.so
lrwxrwxrwx
1 root root
18
Apr
libnss_files.so.1 -> libnss1_files.so.1
lrwxrwxrwx
1 root root
21
Apr
libnss_files.so.2 -> libnss_files-2.3.3.so
-rwxr-xr-x
1 root root
23528 Oct
2.3.3.so
-rwxr-xr-x
1 root root
281840 Aug
2.3.3.so
lrwxrwxrwx
1 root root
20
Apr
libnss_ldap.so.2 -> libnss_ldap-2.3.3.so

28

2004

libnss_dns-

13:47

cpp ->

28 18:08

libnss_dns.so.2

28

libnss_files-

2004

28 18:08
28 18:08
28

2004

31 2004

libnss_hesiodlibnss_ldap-

28 18:10

4.6. Direktorij /lost+found


Direktorij /lost+found vezan je uz postupke oporavka cijelog datotenog sustava. U njega se
pohranjuju spaeni fragmenti datoteka koje imaju izgubljena imena tj. imaju samo inode broj. Inode
broj je broj pridjeljen svakoj datoteci i jednoznano ju oznaava. Inode brojevi datoteka mogu se
vidjeti izvoenjem naredbe ls -i. U pravilu direktorij /lost+found ne bi trebalo sadravati
nikakve datoteke osim ako prethodno nije dolo do naglog pada sustava (npr. zbog nestanka struje).

4.7. Direktorij /mnt


Direktorij /mnt se najee koristi za montiranje lokalnih ili udaljenih datotenih sustava. Naime
prije koritenja odreenog datotenog sustava na Linuxu (npr. CDROM-a) datoteni sustav treba biti
prethodno montiran te se taj postupak, koji e u narednim poglavljima biti objanjen, odvija u ovom
direktoriju.

4.8. Direktorij /var


Direktorij /var sadri datoteke bitne za rad sustava, dijela sustava ili nekog programa. Na primjer, u
direktoriju /var/spool/mail se najee nalazi e-pota korisnika na sustavu smjetena u
odgovarajuem poddirektoriju s nazivom korisnika. Uglavnom se podacima iz ovog direktorija
pristupa automatski, tokom rada samih programa. Najee programi ovdje imaju poddirektorije u
koje smjetaju svoje podatke. Na primjer za email, gdje programi za razmjenu pote koriste
32

Linux - Osnovni teaj

spomenuti poddirektorij. Tako se u /var/spool nalaze poddirektoriji s podacima koji ekaju u


redu da budu negdje premjeteni, poslani, ili isprintani (ovisno o postavkama sustava). Ispis sadraja
direktorija /var:
$ ls -al
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxrwx--T
drwxr-xr-x
drwxr-xr-x
drwxrwxr-x
drwxr-xr-x
lrwxrwxrwx
drwxr-x--drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxrwxrwt

2
7
3
2
3
3
2
19
2
4
9
1
4
2
2
2
2
16
13
3

root
root
netdump
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root
root

root
root
netdump
root
root
root
gdm
root
root
lock
root
root
named
root
root
root
root
root
root
root

4096
4096
4096
4096
4096
4096
4096
4096
4096
4096
4096
10
4096
4096
4096
4096
4096
4096
4096
4096

Sep
Sep
Aug
Aug
Sep
Sep
Oct
Sep
May
Oct
Oct
Sep
Aug
May
May
May
Mar
Oct
Sep
Oct

1
1
22
23
1
1
24
1
23
24
24
1
22
23
23
23
28
24
1
21

13:00
13:04
21:13
10:44
13:00
13:01
20:48
13:31
06:28
20:47
20:47
12:57
22:33
06:28
06:28
06:28
2005
20:47
13:01
11:48

account
cache
crash
cvs
db
empty
gdm
lib
local
lock
log
mail -> spool/mail
named
nis
opt
preserve
racoon
run
spool
tmp

4.9. Direktorij /sys


Direktorij /sys koristi jezgra (kernel) kao virtualni datoteni sustav tj. kao suelje prema
informacijama iz jezgre sustava. Ispis sadraja direktorija /sys:
$ ls -al
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x
drwxr-xr-x

12
24
7
3
3
67
2

root
root
root
root
root
root
root

root
root
root
root
root
root
root

0
0
0
0
0
0
0

Oct
Oct
Oct
Oct
Oct
Oct
Oct

24 20:47 bus
24 20:47 class
24 2005 devices
24 2005 firmware
24 2005 kernel
24 20:47 module
24 2005 power

4.10. Direktorij /tmp


Direktorij /tmp slui za privremenu pohranu podataka. Obino se sve to se nalazi u ovom
direktoriju pobrie prilikom restartiranja sustava, ali ne nuno (ovisno o postavkama sustava).

4.11. Direktorij /usr


Direktorij /usr obino sadri najvie podataka na sustavu. Ono u stvari predstavlja novi virtualni
sustav na postojeem sustavu. Tu se smjeteni razni korisniki programi (telnet, ftp..) , igre,
33

4.Struktura datotenog sustava u Linuxu

dokumenti, programi za administriranje sustava, ukljuujue datoteke koje su potrebne pri stvaranju
izvrnih (binarnih) datoteka itd. Uz gubitak podataka iz direktorija /usr sustav bi i dalje morao moi
obavljati one osnovne funkcije. Direktorij /usr u sebi sadri nekoliko znaajnijih poddirektorija kao
to su /bin, /sbin, /share, /man. Slijedi opis navedenih poddirektorija:

4.12. Direktorij /usr/bin


U ovom direktoriju nalaze se izvrne (binarne) datoteke razliitih korisnikih programa kao to su vi
i gcc.
$ ls -al
-rwxr-xr-x
-rwxr-xr-x

1 root root
2 root root

2333416 Aug 10 16:35 vim


107036 Jul 27 13:50 gcc

4.13. Direktorij /usr/sbin


U ovom direktoriju nalaze se programi koji slue za administriranje sustava s tim da se njima slui
iskljuivo administrator sustava.

4.14. Direktorij /usr/share


Direktorij /usr/share sadri razne datoteke (dokumenti, ikone, slova itd..) koje mogu koristiti svi
korisnici na sustavu. Taj direktorij moe se shvatiti i kao direktorij za distribuciju datoteka meu
korisnicima sustava. Neke od datoteka su: fonts, doc, icons, file, games, services.

4.15. Direktorij /usr/man


Unutar direktorija /usr/man nalaze se informacije u kojima je opisan nain rada odreenih dijelova
sustava, programa, zabavnih aplikacija itd. Tu se takoer mogu pronai i tekstovi koji opisuju
odreene vrste datoteka na sustavu, nain rada sustava u cijelini itd. Sam direktorij je organiziran tako
da se unutar njega nalazi osam cjelina te svaka od tih cjelina u svom opisu obuhvaa jedan dio gore
navedenog.

4.16. Specijalni direktoriji . i ..


Direktorij . pokazuje na trenutnu poziciju odreenog direktorija u hijerarhiji. Direktorij .. pokazuje
na poziciju prethodnog direktorija. (npr. Ako se nalazimo u direktoriju /ivica tada se i direktoriji
.. i . nalaze u direktoriju /ivica samo to . pokazuje na direktorij /ivica, a direktorij ..
pokazuje na direktorij /home. Sada je jasno zato se s naredbom cd .. (change directory) vraamo
u prethodni direktorij.

4.17. Poetni direktorij


Poetni direktorij razliit je za svakog korisnika i obino nosi ime po username-u korisnika. Nakon
to se odreeni korisnik prijavi na sustav, sustav automatski korisniku otvara njegov poetni
direktorij. Poetni direktoriji svih korisnika nalaze se prema Filesystem Hierarchy Standardu - FHS,
34

Linux - Osnovni teaj

1994 u direktoriju /home. Logino je da korisnik koji se prijavi na sustav moe mijenjati samo
sadraj svog matinog (u ovom sluaju poetnog) direktorija dok ostale direktorije moe itati
ukoliko je to dozvoljeno.

4.18. Nadgledanje zauzea diskovnog prostora


Svakom korisniku na operativnom sustavu Linux dodjeljuje se odreeni dio diskovnog prostora.
Vrlo je vano to ekonominije raspodijeliti diskovni prostor iz vie razloga (npr. obino
administrator sustava ne zna koliko e tono korisnika imati pristup sustavu; to je vie korisnika,
proporcionalno se smanjuje koliina diskovnog prostora po svakom korisniku; treba osigurati
dovoljan dio diskovnog prostora za nadogradnju korisnikih aplikacija na sustav...itd.). Kako za
korisnike, tako je i za administratora korisno znati trenutno zauzee diskovnog prostora na raunalu.
Administrator je taj koji treba voditi brigu o zauzeu cjelokupnog diskovnog prostora, dok obini
korisnik kao takav treba znati koliko mu je dodijeljeno diskovnog prostora na koritenje i koliko je
trenutano tog prostora zauzeto. Naredbe koje omoguuju pregled slobodnog i iskoritenog diskovnog
prostora su: du, df, quota.

4.18.1. Naredba du
Naredba du ispisuje veliinu u KB(kilobyte) i imena svih direktorija u trenutnom direktoriju te koliko
diskovnog prostora zauzima pojedini direktorij. Ako se eli doznati zauzee diska svih direktorija u
trenutnom direktoriju, a da se ne ispiu njihova imena, tada se pie du -s. Ukoliko se eli dobiti
podatak o veliini svih datoteka koje se nalaze u trenutnom direktoriju i njegovim poddirektorijima
tada se pie du -a. Slijedi primjer naredbe du:
$ du
32
8
74980
24
12552
32
48
215644
5216

./.vmware
./.Trash/untitled folder
./.Trash
./.mozilla/firefox/d2uvyh0d.default/chrome
./.mozilla/firefox/d2uvyh0d.default/Cache
./.adobe/Acrobat/7.0/Cache
./.mplayer
./devil-linux-1.2.6-i686-SMP
./.openoffice.org2.0

4.18.2. Naredba df
Naredba df govori koliko ima ukupno diskovnog prostora na raunalu i koliko je od tog iskoriteno a
koliko neiskoriteno te daje podatak o iskoritenosti brojano i u postotcima. Slijedi primjer naredbe
df:
$ df
Filesystem
/dev/hda3
/dev/shm
/dev/sda1

1K-blocks
11680552
253724
255708

Used Available Use% Mounted on


5121552
5956092 47% /
0
253724
0% /dev/shm
45676
210032 18% /media/usbdisk

35

4.Struktura datotenog sustava u Linuxu

4.18.3. Naredba quota


Naredba quota ispisuje zauzee diska i veliinu diskovnog prostora predvienog za odreenog
korisnika ili grupu.
Sintaksa naredbe je:
quota [-g group] [-u username].

Ako se napie npr. quota -g ekipa ispisat e se podaci o zauzeu diska i veliini diskovnog
prostora za grupu Ekipa, a ako se Npr. Napie quota -u ivica ispisat e se podaci o zauzeu
diska i veliini diskovnog prostora za korisnika Ivicu.

4.19. Zadaci
1) Pristupite svom matinom direktoriju te ispiite sve datoteke koje ono sadri.
2) Otkrijte koliko diskovnog prostora je predvieno za vau grupu i vas kao korisnika.
3) Otkrijte koliko diskovnog prostora trenutno zauzimaju datoteke u vaem matinom
direktoriju.
4) Otkrijte koliko trenutno ima particija glavnog diska na raunalu.
5) Otkrijte trenutnu stazu u kojoj se nalazite.

36

5. Kreiranje datoteka
5.1. Naredba touch
Svaka datoteka u Linuxu koristi tri oznake vremena i datuma: datum nastanka datoteke, datum zadnje
promjene i datum zadnjeg pristupa datoteci. Ako pretraujemo datoteke naredbom find na nain da
pretraujemo samo one datoteke koje su nastale u odreenom vremenskom razdoblju ili su u nekom
vremenskom razdoblju mijenjane, onda je potrebno datume pravilno aurirati. elimo li aurirati
vrijeme posljednje promjene datoteke, a da pri tome ne mijenjamo sadraj datoteke, moemo to
uiniti pomou naredbe touch. Osnovna naredba touch, bez opcija izvorno je podeena da aurira
vremenske oznake tako da im pridjeljuje trenutno vrijeme, a ako datoteka ne postoji, naredba touch
ju stvara. Naredba touch nam je korisna npr. ako sustav pokrene naredbu za sigurnosnu pohranu
datoteka koje su nastale u nekom vremenskom razdoblju, a korisnik eli pohraniti i neke od datoteka
koje su nastale izvan tog vremenskog razdoblja, onda je mogue pomou naredbe touch uvrstiti
odabrane datoteke u sigurnosnu pohranu (backup).
Naredbi touch mogue je dodati neke opcije ako elimo izmjeniti njezino osnovno ponaanje.
Osnovne opcije naredbe prikazane su u tablici 5.1
Tablica 5.1: Osnovne opcije naredbe touch

Znak

Znaenje

-a

Aurira vrijeme pristupa datoteci

-m

Aurira vrijeme mijenjanja datoteke

-c

Onemoguava stvaranje datoteke ako ona ne postoji

-d <vrijeme>
-r <datoteka1>

Postavlja odabrano vrijeme, a ne trenutno. Vrijeme moe biti u nekoliko formata, moe
sadravati imena mjeseci, vremenskih zona..
Upisuje stanje vremenskih oznaka datoteke1 u stanje vremenskih oznaka odabrane
datoteke

Osnovni oblik naredbe touch:


touch -am <popisdatoteka>.

5.2. Naredba file


Datoteke u Linuxu za razliku od datoteka u DOS-u ne koriste ekstenziju iz kojeg se moe proitati o
kojem tipu datoteke se radi. Naredba file je naredba koja na lagan nain nudi uvid u tip datoteke.
Naalost, naredba file ponekad daje neprecizne rezultate. Pri odreivanju tipa datoteke naredba file
pregledava ime datoteke, analizira prvih nekoliko redaka datoteke i analizira dozvolu datoteke i iz tih
podataka zakljuuje o kojem se tipu datoteke radi. Problem se javlja ako npr. tekstualna datoteka
zapoinje kao C program, vrlo lako je mogue da e file zakljuiti da se radi o izvrnoj datoteci, a
ne o tekstualnoj datoteci.
Za identifikaciju tipova datoteka file koristi magic file koji je obino smjeten na lokaciji
/usr/share/magic ili /usr/share/misc/file/magic, ovisno o distribuciji.

5.Kreiranje datoteka

Osnovni oblik naredbe file:


file [opcije] <datoteke>

Primjer:
elimo odrediti kojeg su tipa datoteke u direktoriju vjezba. Da bi smo to postigli potrebno je
pozicionirati se u taj direktorij.
$ cd vjezba
$ ls
proba
src/

Nakon to navedemo naredbu file potrebno je navesti ime datoteke kojoj elimo saznati tip.
$ file proba
proba: ascii text
$ file src
src: directory

Naredba file prepoznaje datoteku proba kao tekstualni dokument, a src kao direktorij.

5.3. Naredba cat


elimo li pregledati sadraj datoteke, jedna od naredbi koja nam stoji na rspolaganju je naredba cat.
Naredba cat kao ulaz uzima popis datoteka ili jednu datoteku i ispisuje sadraj. Kratica cat dolazi
od rijei concatenate-spojiti, pa naredba cat spaja vie datoteka s popisa i ispisuje ih zajedno na
zaslonu brzinom kojom se slova mogu ispisivati na zaslonu. Ukoliko se radi o veoj datoteci mogue
je s tipkama ^S i ^Q privremeno zaustaviti brzi ispis. Ako naredbi cat dodamo opciju -v, naredba
e moi ispisati sve kontrolne znakove unutar neke datoteke. Na taj nain e se moi ispisati ak i
izvrne datoteke. Naredba cat je nezgodna za pregled sadraja velikih datoteka pa se u tu svrhu
koriste narebe less ili more.
Primjer:
elimo ispisati sadraj datoteka tekst i proba koje se nalaze u direktoriju vjeba jedan iza drugoga.
To postiemo slijedeom naredbom:
$ cat tekst proba

Naredba ispisuje sadraj datoteka tekst i proba jedan iza drugog.


Ukoliko elimo ispisati sadraj sistemske datoteke /etc/passwd moemo to uiniti slijedeom
naredbom:
$ cat

/etc/passwd

U ovom primjeru se najbolje vidi nedostatak naredbe cat. Naredba e ispisati datoteku, ali e to
38

Linux - Osnovni teaj

uiniti velikom brzinom pa je nezgodna za ispisivanje velikih datoteka.

5.4. Naredba head


Naredba head se koristi da bismo mogli vidjeti prvih n redaka datoteke.
Osnovni oblik naredbe head:
head <imedatoteke>.

Naredba u ovom obliku prikazuje prvih 10 redaka datoteke.


Oblik datoteke za proizvoljan broj redaka:
head -n

<brojredaka>

<imedatoteke>

pri emu broj redaka moe biti i pozitivan i negativan.


Neka se u direktoriju vjezba nalazi i datoteka tekst. elimo pogledati prvih nekoliko redaka datoteke.
To postiemo slijedeom naredbom:
$ head -n 15 tekst

Naredba ispisuje prvih petnaest redaka datoteke tekst.


Ako se u direktoriju nalaze dvije datoteke i elimo pogledati prvih nekoliko redaka obje datoteke
koristimo slijedeu naredbu.
$ head -n 3 proba tekst

Naredba ispisuje prva tri retka datoteke proba, a ispod nje ispisuje prva tri retka datoteke tekst.

5.5. Naredba tail


Za razliku od naredbe head,naredba tail omoguuje pogled u zadnjih n redaka datoteke. Kao i
head, tail koristi istu sintaksu i na isti nain se upisuje proizvoljan broj linija koje elimo ispisati.
Kombiniranjem naredbi tail i head mogue je vidjeti odreene dijelove datoteka u Linuxu.
Primjer:
elimo ispisati zadnjih nekoliko redaka datoteke tekst.
$ tail -n 15 tekst

Ispisuje zadnjih 15 redaka datoteke tekst.

5.6. Naredba more


Naredba more je vrlo korisna za pregledavanje velikih datoteka jer ispisuje datoteku stranicu po
39

5.Kreiranje datoteka

stranicu. Naredba prepoznaje veliinu ekrana na kojem ispisuje sadraj i prilagoava ispis. Broj
redaka koji se moe ispisati na ekranu ovisi o stanju varijable TERM. Naredba more je nastala u
Berkeleyevoj inaici UNIX-a te se pokazala toliko korisnom da je postala standard u Linuxu kao i vi
editor.
Osnovni oblik naredbe more:
more <imedatoteke>.

Naredba u osnovnom obliku ispisuje sadraj datoteke na zaslonu, a na slijedeu stranicu datoteke se
prelazi pritiskom tipke <Space>, a na slijedei redak pritiskom tipke <Enter>. Za pregledavanje
sadraja veeg broja datoteka (more <datoteka1 datoteka2 datoteka3>) gdje je
potrebno jednu od datoteka ureivati treba koristiti naredbu e ili v. Pritiskom na tipku <e> pokree se
program za ureivanje datoteka koji je za pojedinu datoteku odreen varijablom $EDITOR, pritiskom
na tipku <v> pokree se program za ureivanje odreen varijablom $VISUAL. Ako sadraj tih
varijabli nije definiran onda se pokree editor ed za <e> odnosno vi editor za <v>.
Primjer:
elimo ispisati sadraj neke velike datoteke tako da moemo pregledati gotovo cijelu datoteku
stranicu po stranicu. Pregledavat emo sistemske datoteke etc/passwd i /etc/termcap.
$ more /etc/passwd

Navedenom naredbom smo ispisali prvu stranicu datoteke. Pritiskom na tipku <enter> prelazimo na
slijedeu stranicu.
Ako datoteka sadri puno praznih redaka, opcije naredbe more nam pruaju mogunost da ispiemo
datoteku bez suvinih praznih redaka. Pogledajmo prvo ispis datoteke /etc/termcap.
$ more /etc/termcap

Ispis datoteke na ekranu se sastoji od velikog broja praznih redaka. Da bismo ih izbacili iz ispisa
koristimo sljedeu naredbu:
$ more -s /etc/termcap

Vano je napomenuti da navedena naredba ne mijenja sadraj datoteke ve samo modificira ispis na
zaslonu.

5.7. Naredba less


Naredba less radi gotovo istu stvar kao i naredba more no ima prednost da se moe vraati
unatrag i pregledavati sadraj datoteke liniju po liniju. Za pomicanje redak po redak unaprijed ili
unazad mogu se koristiti tipke <pgup> i <pgdn>, za razliku od naredbe more kod koje je sadraj
mogue pregledavati tipkama <enter> i <space> te tipkom <b> ako se elimo vratiti jednu stranicu
unatrag.
Naredba less se koristi na isti nain kao i naredba more, za pregled sadraja datoteke potrebno je
40

Linux - Osnovni teaj

samo navesti:
less <imedatoteke>.

Naredbe less i more omoguuju pokretanje ljuske pritiskom tipke !. Nakon to se pokrene
naredba !, ulazi se u podljusku koju se moe napustiti naredbom za odjavu sa sustava, ^D ili exit.
Program se vraa na mjesto gdje smo napustili datoteku. Ako se pritiskom tipke ^D javi pogreka
onda je potrebno pokrenuti naredbu logout da bi izali iz podljuske u datoteku.

5.8. Zadaci
1) Naredbama head i tail pregledati prvih 20 i zadnjih 20 redaka datoteka /etc/passwd i
/etc/termcap
2) Naredbom cat pregledati zajedno sadraj datoteka /etc/passwd i etc/termcap i zaustaviti
ispis na zaslonu.
3) Naredbom more pregledati sadraj datoteke /etc/passwd. Sadraj treba pregledavati
stranicu po stranicu i redak po redak, preskoiti 50 redaka pri ispisu, vratiti se 2 stranice
unatrag i skoiti 3 stranice unaprijed.
4) Naredbom less pregledavati sadraj datoteke /etc/termcap, pregledati 3. stranicu
ispisa i vratiti se desetak redaka unatrag, redak po redak. Izbaciti suvian broj praznih
redaka u datoteci.
5) Naredbom file provjeriti tipove datoteka u trenutnom direktoriju.
6) Bilo kojoj datoteci u trenutnom direktoriju promijeniti vremenske oznake na proizvoljni
datum.

7) Spojiti se na raunalo pinus(ako je mogue). U datoteci /etc/passwd pronai


redak sa imenom vama najdraeg asistenta ili profesora :).

41

6. Vlasnitvo i dozvole
6.1. Uvod
Linux je viekorisniki sustav i kao takav mora biti u stanju raspoznati korisnike, takoer mora
osigurati da su svi programi koje pokreete i datoteke koje napravite vae vlasnitvo. Linux ne
doputa da itate ili mijenjate datoteku u vlasnitvu nekog drugog korisnika, osim ako vam taj
korisnik ili administrator nisu dali doputenje.
Dozvole za rad s datotekama odreuju tko moe itati, pisati ili izvravati datoteku, one takoer
odreuju tip datoteke.

6.2. Vlasnik, grupa i ostali


Koristei naredbu ls l na ekranu dobivamo detaljan ispis datoteka u trenutnom direktoriju:
$ ls -l
drwx-----drwx------rw------drwx------rw------drwxr-xr-x

2
5
1
2
1
3

mcavka
mcavka
mcavka
mcavka
mcavka
mcavka

users
users
users
users
users
users

512
1024
1268
512
42787
512

Jan
Jan
Dec
Dec
Oct
Apr

1
17
7
15
20
19

13:44
08:22
15:12
21:18
06:59
11:43

Mail
News
biblio
bin
books
public_html

Prvi stupac prikazuje tip i dozvole za rad s datotekom, drugi prikazuje broj linkova na datoteku (ili
dodatne blokove u direktoriju), trei stupac prikazuje tko je vlasnik datoteke. etvrti stupac prikazuje
grupu kojoj datoteka pripada, peti prikazuje broj bajtova u datoteci, esti prikazuje datum i vrijeme
stvaranja, ako je datoteka stvorena prije vie od jedne godine, onda se prikazuje godina stvaranja.
Sedmi stupac prikazuje ime datoteke.
Polje dozvola (prvi stupac) je podijeljeno u etiri podpolja:
-

rwx

rwx

rwx

Prvo podpolje (veliine samo jednog znaka) prikazuje tip datoteke, neke od moguih vrijednosti
prikazane su u tablici 6.1.
Tablica 6.1: Vrijednosti polja tip datoteke

Znak

Znaenje

Obina datoteka

Blok orijentirana posebna datoteka

Znakovno orijentirana posebna datoteka

Direktorij

Simboliki link

FIFO sturktura

Sljedea tri podpolja pokazuju dozvole za itanje, pisanje i izvravanje datoteke. Slova rwx u prvom
od tih podpolja znae da datoteka ima dozvole itanja, pisanja i izvravanja samo za vlasnika.
Sljedee podpolje pokazuje iste informacije za grupu u kojoj se nalazi vlasnik datoteke. Posljednje
podpolje pokazuje dozvole za sve ostale korisnike sustava.

Linux - Osnovni teaj

Prilikom stvaranja datoteka, automatski joj se dodjeljuju dozvole definirane u varijabli umask (engl.
file creation mask). Izvravanjem naredbe umask dobivamo oktalan ispis trenutnog statusa varijable
(moemo dobiti viak ili manjak vodeih nitica). Ako elimo promijeniti varijablu, koristimo: umask
xyz (gdje su xyz oktalne znamenke 0-7). No moramo zapamtiti da su vrijednosti xyz zapravo
komplementi stvarnih vrijednosti dozvola koje elimo zadati.
Ako na sustavu upiemo umask dobit emo neto ovog oblika:
$ umask
0022

Primjer:
elimo da se prilikom stvaranja datoteka automatski dodaju dozvole rwx samo za vlasnika datoteke,
a za grupu i ostale samo r.
Prvo binarno zapisujemo kako nam dozvole trebaju izgledati: (111 100 100)2 = (744)8
Zatim radimo komplement (000 011 011)2 = (033)8
I na kaju pozivamo naredbu:
$ umask 033

6.3. Promjena dozvola


Mijenjanje dozvola izvodi vlasnik datoteke naredbom chmod i to na dva naina: oktalno i
simboliki.
Sintaksa:
chmod <prava_pristupa> <datoteka_na_koju_se_prava_odnose>

a) oktalno
Kod ovog naina, prava pristupa se prikazuju s tri oktalne znamenke (brojevi od 0-7). Prva oktalna
znamenka se odnosi na vlasnika, druga znamenka se odnosi na grupu kojoj datoteka pripada, a trea
na sve ostale korisnike raunala. Vrijednosti oktalnih znamenki, te prava koja odreuju prikazana su u
tablici 6.2.

43

6.Vlasnitvo i dozvole

Tablica 6.2: Vrijednost oktalnih znamenki i prava koja odreuju

Oktalna znamenka

Binarno

Prava

000

---

001

--x

010

-w-

011

-wx

100

r--

101

r-x

110

rw-

111

rwx

Primjer:
Stvorimo direktoriji proba i u njemu datoteku unix.txt.
elimo datoteci unix.txt promijeniti dozvole tako da vlasnik ima sva prava, grupa pravo itanja i
pisanja, a ostali korisnici samo pravo itanja.
$ chmod 764 unix.txt
$ ls -l
total 4
-rwxrw-r-- 1 mcavka mcavka 0 Oct 27 00:15 unix.txt

Primjer:
elimo zabraniti ispis sadraja direktorija proba.
Oduzimamo dozvolu itanja.
$ chmod 300 proba
$ ls -l
total 16
drwxr-xr-x 2 mcavka mcavka 4096 Oct 27 00:11 Desktop
d-wx------ 2 mcavka mcavka 4096 Oct 27 00:15 proba
$ ls proba
ls: proba: Permission denied

Primjer:
elimo zabraniti pristup direktoriju proba, svim datotekama i poddirektorijima koji se nalaze unutar
direktorija proba.
Oduzimamo dozvolu izvravanja.

44

Linux - Osnovni teaj

$ chmod 600 proba


$ ls -l
total 16
drwxr-xr-x 2 mcavka mcavka 4096 Oct 27 00:11 Desktop
drw------- 2 mcavka mcavka 4096 Oct 27 00:15 proba
$ cd proba
bash: cd: proba: Permission denied
$ cat proba/unix.txt
cat: proba/unix.txt: Permission denied

b) simboliki
Mora se definirati: kome dajete dozvolu, koje operacije (dodavanje, oduzimanje ili postavljane) i koje
dozvole. U tablici 6.3 prikazani su parametri naredbe.
Tablica 6.3: Parametri naredbe chmod

Vrijednost
Tko

Operator

Dozvola

Znaenje

Svi korisnici (vlasnik, vlasnikova grupa, svi ostali korisnici)

Vlasnikova grupa

Svi ostali korisnici

Samo vlasnik

Dodaje mod

Oduzima mod

Postavlja apsolutnu vrijednost moda

Postavlja dozvolu itanja

Postavlja dozvolu pisanja

Postavlja dozvolu izvravanja

Primjer:
elimo datoteci unix.txt promijeniti dozvole tako da vlasniku oduzmemo pravo pisanja, a grupi
oduzmemo pravo itanja.
$ chmod u-w,g-r unix.txt
$ ls -l
total 4
-r-x-w-r-- 1 mcavka mcavka 0 Oct 27 00:15 unix.txt

6.4. Promjena vlasnika


Promjenu vlasnika nad nekom datotekom radimo naredbom chown, ali pritom moramo paziti jer
nakon promjene vlasnika datoteke, datoteka vie nije u naem posjedu. Ovu naredbu moe jedino
administrator koristiti.

45

6.Vlasnitvo i dozvole

Sintaksa:
chown <korisnik> <ime_datoteke>

Primjer:
elimo korisniku mcavka predati datoteku unix.txt.
$ chown mcavka unix.txt

6.5. Promjena grupe


Slino kao i promjenu vlasnika, vrimo i promjenu grupe, naredbom chgrp. Uvjet je da moramo biti
lan te grupe. Ovu naredbu takoer moe jedino administrator koristiti.
Sintaksa:
chgrp <grupa> <ime_datoteke>

Primjer:
elimo grupi grupa1337 predati datoteku unix.txt.
$ chgrp grupa1337 unix.txt

6.6. Zadaci
1) Neka svaki korisnik kreira po jednu datoteku obrisi_me (pomo: koristiti naredbu
touch) i neka joj dodijeli dozvole rwx za sve druge korisnike. Zadatak je pronai
naredbom find datototeku obrisi_me nekog drugog korisnika te istu obrisati iz
njegovog foldera.
2) Stvoriti datoteku, oktalno postaviti dozvole pisanja i izvravanja za vlasnika. Probati
vidjeti sadraj datoteke. Simboliki dodati dozvolu itanja. Ponovo probati proitati
datoteku. to moete zakljuiti?
3) Podesiti da se prilikom stvaranja novih datoteka automatski kreiraju dozvole itanja,
pisanja i izvravanja samo za vlasnika.

46

7. Pretraivanja, filtri i cjevovodi


7.1. Preusmjeravanje sadraja, operatori <, >, >>, |
Svakom procesu pokrenutom na Linux-u definiraju se datoteke standardni ulaz (stdin), standardni
izlaz (stdout) i standardni izlaz za greke (stderr). U standardni ulaz se pohranjuju ulazni podaci (npr.
s tipkovnice), a u standardni izlaz se pohranjuju podaci koji se ispisuju na zaslon kao rezultat neke
naredbe (npr. ls). Linux korisniku nudi mogunost preusmjeravanja proizvoljne datoteke na
standardni ulaz, odnosno standardni izlaz. Takoer mogue je preusmjeriti podatke koji se alju na
standardni izlaz u neku proizvoljnu datoteku te nad njima vriti obradu.U tu svrhu koriste se operatori
preusmjeravanja < , > i >>.
Operatorom > podaci, koji bi se trebali poslati na standardni izlaz, preusmjeravaju se u neku drugu
datoteku po izboru korisnika.
Primjer:
elimo sadraj direktorija u kojemu se nalazimo pospremiti u datoteku test. To moemo ostvariti
koritenjem operatora > na sljedei nain:
$ ls -l > test

Ukoliko datoteka test ne postoji na disku, stvoriti e se nova prazna datoteka pod tim imenom. U
sluaju da datoteka test ve postoji, njen sadraj e se prebrisati. Primjeuje se da na zaslonu nema
oekivanog ispisa naredbe ls. Podaci koje je naredba ls poslala na standardni izlaz preusmjereni su
i pospremljeni u datoteku test.
Koritenjem operatora < datoteka se povezuje sa standardnim ulazom naredbe.
Primjer:
elimo li provjeriti to se nalazi u datoteci test, koju smo formirali u prethodnom primjeru, moemo
iskoristiti sljedee jednostavno preusmjeravanje.
$ cat < test

Na zaslonu je sada vidljiv ispis sadraja datoteke test. Datoteka test se prosljeuje na ulaz naredbe
cat koja zatim ispisuje njen sadraj na zaslon.
Operator >> ima slinu funkciju kao i operator > uz razliku to nove podatke koji se alju na
standardni izlaz preusmjerava i sprema na kraj datoteke pritom ne briui njen sadraj.
Prilikom preusmjeravajna deava se nekoliko uzastopnih operacija. Prvo se otvara nova datoteka. Za
korisnika upoznatim sa radom u programskom jeziku C ta je operacija ekvivalentna programskom
odsjeku: f = fopen ("test", "w"); (za operator >> taj dio programskog odsjeka u C-u
glasi: f = fopen ("test", "a");. Zatim se izvrava naredba te se njen izlaz upisuje u
datoteku. U sluaju operatora < se iz datoteke itaju podaci i prosljeuju naredbi. Na kraju se datoteka
zatvara: fclose (f);. Ukoliko naredba nije dobro zadana, preusmjeravanje se izvri u standardni
izlaz za pogreke (stderr).
Primjer:
Ovim primjerom eli se pokazati to se dogodi ukoliko korisnik grekom unese nepostojeu naredbu
te njen izlaz pokua preusmjeriti u datoteku.

7.Pretraivanja, filtri i cjevovodi

$ lslj -l > test

Stvoriti e se nova datoteka test no u nju se nee nita preusmjeriti jer je dolo do greke. Na
zaslonu e se ispisati obavijest da je dolo do greke. U tom sluaju ulogu standardnog izlaza
preuzima standardni izlaz za greke (stderr) kojemu nije mogue fiziki pristupiti.
Primjer:
Postoji mogunost meusobnog ulanavanja operatora preusmjeravanja. elimo preusmjeriti datoteku
test u datoteku test2 .
$ cat -v < test > test2

Datoteka test se preusmjerava na ulaz naredbe cat iji je standardni izlaz preusmjeren u datoteku
test2. Ovime se stvara nova datoteka test2 u koju je zapravo kopiran sadraj datoteke test1.
Linux nudi mogunost ulanavanja procesa stvaranjem cjevovoda (engl. pipeline). Cjevovodi slue
za povezivanje jednog ili vie programa u cjelinu. Standardni izlaz jednog programa prosljeuje se na
standardni ulaz drugog programa. Na taj nain mogue je iz programa odreene funkcionalnosti
dobiti sloeniju funkcionalnost. Povezivanje se ostvaruje na jednostavan, nain pomou simbola |.
Primjer:
elimo upotrebom dvije jednostavne naredbe postii sloeniju cjelinu. Koristiti emo naredbu who
pomou koje moemo saznati podatke o korisnicima spojenim na sistem i naredbu head kojom
moemo ispisati datoteku na zaslon. Zanimaju nas podaci vezani uz samo prvih 5 korisnika.
$ who | head -5

Naredba who na svoj standardni izlaz alje podatke o korisnicima koji su spojeni na sistem. Njen
standardni izlaz spojen je na standardni ulaz naredbe head koja ispisuje samo prvih 5 redaka
datoteke (opcija -5) primljene od naredbe who.
elimo li ispisati prvih pet redaka datoteke /etc/passwd moemo formirati cjevovod od naredbi
cat i head na sljedei nain:
$ cat /etc/passwd | head -5

Na zaslonu dobivamo prvih pet redaka datoteke /etc/passwd. Vrlo je korisno poznavati na koji su
nain podaci organizirani u datoteci i koje je njihovo znaenje. Na taj nain mogue je saznati eljene
informacije. U konkretnom sluaju datoteka /etc/passwd sadri podatke o korisnicima sustava.
Da bi smo lake izdvojili podatke koji nas zanimaju esto upotrebljavamo naredbe opisane u sljedeih
nekoliko poglavlja.

7.2. Izdvajanje odreenih redaka datoteke, naredba grep


Naredba grep je filter koji slui za traenje uzorka (engl. pattern) u nekoj datoteci. Nakon to
pronae traeni uzorak, ispisuje liniju u kojoj se taj uzorak nalazi na zaslon. Filtri su naredbe koje se
esto koriste kao integralni dijelovi cjevovoda na taj nain da vre obradu nad podacima koje
48

Linux - Osnovni teaj

dobivaju na svoj standardni ulaz te potom obraene podatke alju na svoj standardni izlaz.
Naredba grep je korisna prilikom traenja izgubljenih datoteka ili datoteka koje sadre tekst koji
korisnik trai. elimo li pronai neku datoteku u direktoriju, moemo konstruirati cjevovod na taj
nain da izlaz naredbe ls proslijedimo naredbi grep.
Sintaksa:
grep [<parametri>] <uzorak> <datoteka>

Parametri naredbe grep prikazane su u tablici 7.1:


Tablica 7.1: Parametri naredbe grep

Parametar

Znaenje

-c

spisuje koliko ima linija u datoteci koje sadravaju


zadani uzorak

-i

zanemaruje razliku izmeu velikih i malih slova

-l

ispisuje imena datoteka koje sadre zadani uzorak

-n

ispisuje i redni broj linije koja sadri uzorak

-v

ispisuje linije koje ne sadravaju zadani uzorak

Primjeri:
Unos naredbe:
$ ls -l > test

Standardni izlaz naredbe ls preusmjerava se u datoteku test. U njoj se sada nalazi sadraj
direktorija u kojemu se nalazimo.
elimo ispisati sve linije datoteke test koje sadravaju neki nama zanimljivi uzorak.
$ grep linux test

Ispisuju se sve linije datoteke test koje sadravaju traeni uzorak (linux). Na taj nain moemo doi
do popisa datoteka koje u svome imenu sadravaju traeni uzorak.
elimo li da na uzorak ne bude osjetljiv na velika i mala slova moemo koristiti opciju -i.
$ grep -i linux test

Unoenjem parametra -i prilikom pretraivanja naredba grep nee praviti razliku izmeu velikih i
malih slova (npr. ispisati e i one linije koje sadre uzorak LINUX ili neku drugu kombinaciju velikih
i malih slova u tom uzorku to nije bio sluaj u prethodnom primjeru).
Kompleksnija pretraivanja mogue je ostvariti naredbama egrep i fgrep.

49

7.Pretraivanja, filtri i cjevovodi

7.3. Brojanje rijei i linija datoteke, naredba wc


Naredba word count slui za brojanje rijei i linija unutar datoteke. Pomou nje moemo dobiti
informaciju koliko naa datoteka sadri linija, rijei i znakova.
Sintaksa:
wc [<parametar>] <datoteka>

Primjer:
U ovom jednostavnom primjeru elimo saznati koliko datoteka test sadri rijei, linija i znakova.
$ wc /etc/passwd
4 34 123

Ispis je formatiran na nain da prvi broj predstavlja broj linija, drugi broj rijei, a trei broj znakova.
Znai da datoteka test sadri 4 linije, 34 rijei i 123 znaka.
Ekvivalentna naredba koritenjem preusmjeravajna je:
$ wc < /etc/passwd

Parametar naredbe wc prikazane su u tablici 7.2:


Tablica 7.2: Parametar naredbe wc

Parametar

Znaenje

-w

broji samo rijei

-l

broji samo linije

-c

broji samo znakove

Primjeri:
Moemo koristiti neku od kombinacija parametara da postignemo ispis eljenih podataka na zaslonu.
$ wc -wl termcap

Ispisuje broj rijei i linija na zaslon. Mogue su i druge kombinacije parametara.


Da bi smo saznali koliko je korisnika spojeno na sistem moemo koristiti naredbu:
$ who | wc -l

Prilikom ispisa naredba who za svakog korisnika rezervira jednu liniju. Prebrojimo li broj linija
dobivamo informaciju o tome koliko je korisnika spojeno na sistem.
$ ls | wc

50

Linux - Osnovni teaj

Koritenjem cjevovoda u ovom se sluaju preusmjerava standardni izlaz naredbe ls u standardni ulaz
naredbe wc. Prebrojavamo koliko ima rijei, linija i znakova u ispisu naredbe ls.

7.4. Sortiranje sadraja datoteke, naredba sort


Naredba sort jedan je od najkorisnijih filtera i esto se koristi kao interni dio cjevovoda na mjestu
gdje treba sortirati podatke.
Podatke koje dobiva na ulazu sortira po abecedi i alje ih na standardni izlaz.
Sintaksa:
sort [<parametar>] <datoteka>

Upotrebom parametara moe vriti vie razliitih naina sortiranja.


Parametri naredbe sort prikazane su u tablici 7.3:
Tablica 7.3: Parametri naredbe sort

Parametar

Znaenje

-b

zanemaruje poetne praznine

-d

sortira po abecednom redu(razlikuje velika i mala


slova)

-f

sortira po abecednom redu (ne razlikuje velika i mala


slova)

-n

sortira po numerikom redoslijedu

-r

sortira u obrnutom redoslijedu

Primjeri:
elimo sortirati imena datoteka u direktoriju po abecednom redu bez obzira na velika i mala slova u
imenu. Konstruirati emo cjevovod od naredbi ls i sort.
$ ls -l | sort -f

Naredba ls svoj izlaz alje na ulaz naredbi sort koja podatke zatim sortira na eljeni nain koji
smo izabrali upotrebom parametra -f. Naredba sort ako se nalazi na kraju cjevovoda ispisuje
obraene podatke na zaslon.
Datoteke u direktoriju treba sortirati po njihovoj veliini. Koristiti emo opciju naredbe ls koja pri
ispisu na prvo mjesto kao podatak ispisuje veliinu datoteke. Zatim emo dobivene podatke sortirati
po numerikom redoslijedu pomou naredbe sort koristei njenu opciju -n.
$ ls -s | sort -n

Upotrebom naredaba du i sort moemo sortirati direktorije i njihove poddirektorije po veliini.

51

7.Pretraivanja, filtri i cjevovodi

$ du -S | sort -n -r

Ispisani direktoriji su sortirani po veliini u Kb od najveeg prema najmanjem zbog koritenja opcije
-r naredbe sort. Veliina poddirektorija nije uraunata u veliinu njihovih matinih direktorija
zbog koritenja opcije -S naredbe du.

7.5. Izbacivanje duplih linija, naredba uniq


Ponekad se u datoteci nalazi puno identinih linija (praznih ili sa upisanim podacima). Da bi se
datoteke oistile od tog vika linija koristi se naredba uniq. Naredba zadanu datoteku obrauje (ne
mijenjajui njen sadraj) i na standardni izlaz alje obraeni sadraj datoteke (bez suvinih linija).
Sintaksa:
uniq [<parametri>] <datoteka> <datoteka2>

Parametri naredbe uniq prikazane su u tablici 7.4:


Tablica 7.4: Parametri naredbe uniq

Parametar

Znaenje

-u

ispisuje linije koje se ne ponavljaju

-d

ispisuje linije koje su se ponavljale

-c

ispisuje broj koliko se puta linija ponovila

Naredba se ponaa u skladu sa parametrima koje je postavio korisnik. Proienu datoteku sprema u
datoteka2, a ako datoteka2 nije navedena alje je na standardni izlaz (ispisuje na zaslon).
Primjer:
elimo ispisati linije u datoteci test koje se ne ponavljaju. Naredba uniq uklanja samo uzastopne
linije koje se ponavljaju. Ukoliko postoje identine linije u datoteci koje se ne nalaze jedna iza druge,
naredba uniq nee imati utjecaja.
$ uniq -u test

Naredba ispisuje linije koje se ne ponavljaju u datoteci test.


elimo li proienu datoteku spremiti u neku novu datoteku moemo to uiniti navoenjem imena
nove datoteke iza originalne.
$ uniq test test.new

Standardni izlaz naredbe uniq sprema se u datoteku test.new koja sada sadri samo jedinstvene
linije iz datoteke test.

52

Linux - Osnovni teaj

7.6. Izrezivanje dijelova redaka datoteka, naredba cut


Naredba cut omoguuje izrezivanje dijelova linije u datoteci. Mogue je odabrati dio datoteke koji
se eli izdvojiti (zada se opseg).
Sintaksa:
cut [<parametri i opseg>] <datoteka>

Parametri naredbe cut prikazane su u tablici 7.5:


Tablica 7.5: Parametri naredbe cut

Parametar

Znaenje

-c

izrezuje znakove iz opsega (stupce)

-d

odreuje ograniiva (zadnji znak u polju) koji se


izrezuje. Koristi se u kombinaciji sa parametrom f.

-f

izrezuje polja zadana u listi

Primjeri:
elimo obraditi datoteku /etc/passwd na nain da iz nje izreemo stupce 1. do 5. mjesta, 7.
stupac i od 9. stupca do kraja. Dobivene podatke treba zatim sortirati i ispisati. Opseg se zadaje
neposredno iza parametra. Mogue je navesti vie opsega na nain da ih se odvoji zarezom. Naredba
sort sortira podatke abecednim redoslijedom te ih potom ispisuje na zaslon.
$ cut -c1-5,7,9- etc/passwd | sort

elimo saznati samo imena korisnika koji su spojeni na sistem. Koristiti emo injenicu da naredba
who, prilikom ispisa podataka, na prvo mjesto stavlja ime korisnika i odvaja ga razmakom od
sljedeeg podatka. Zato emo za ograniiva polja (zavrni stupac do kojega se polje izrezuje)
izabrati upravo " ". Ograniiva polja koristi se iskljuivo u kombinaciji sa parametrom -f koja slui
za odabir polja koje elimo izabrati.
$ who | cut -d" " -f1

7.7. Traenje datoteka


7.7.1. Naredba find
Naredba find pretrauje direktorij i pronalazi datoteke koje zadovoljavaju odreene uvjete. Naredba
poinje pretragu pozicioniranjem na poetak mjesta traenja. Zatim usporeuje parametre svih
datoteka i zadane parametre te u sluaju da su oni isti izvrava operaciju zadanu u izvedbenom dijelu
naradbe. Naredba pretrauje sve poddirektorije od poetnog zato je korisno ograniiti podruje
traenja. Kada nemamo informaciju o priblinom poloaju datoteke, kao poetni direktorij zada se /
(root direktorij).
53

7.Pretraivanja, filtri i cjevovodi

Sintaksa:
find <direktorij> <uvjet>

Uvjeti naredbe find prikazani su u tablici:


Tablica 7.6: Uvjeti naredbe find

Uvjet

Znaenje

-name naziv datoteke

nalazi datoteke s imenom koje se zadaje u polju naziv


datoteke

-type znak

trai datoteke koje su odreenog tipa (f obina


datoteka, b blok orijentirana datoteka, d direktorij i
sl.)

-user korisnik
-size n

trai datoteke koje pripadaju eljenom korisniku


pretrauje datoteku prema veliini koja je zadana sa n
(u blokovima). Ukoliko je zadana s +n trai datoteke s
vie od n blokova, a ako je veliina zadana sa -n onda
trai datoteke s manje od n blokova. Ukoliko se stavi
oznaka nc onda uvjet za veliinu prelazi broj znakova.

Naredba find sadri jo brojne opcije koje se mogu saznati na stranicama prirunika ($ man
find);
Mogue je zadati vie uvjeta i povezati ih na sljedee naine:
-uvjet1 -o -uvjet2 mora biti zadovoljen barem jedan uvjet
-uvjet1 -a -uvjet2 moraju biti oba zadovoljena
\(izraz\) povezuje izraze koji predstavljaju uvjete. Prvo se izvravaju izrazi u zagradi.

Kada se pronae traena datoteka pomou naredbe find, mogue je izvriti naredbu nad tom
datotekom. Ukoliko nije drugaije zadano, izvodi se opcija -print.
Da bi se izvrile eljene naredbe koriste se sljedee opcije prikazane u tablici 7.7:
Tablica 7.7: Opcije naredbe find

Opcija
-print

Znaenje
ispisuje puno ime naene datoteke

-exec naredba {} \

nakon to je naena datoteka izvri se naredba.


Oznaka {} fiziki predstavlja naenu datoteku u
sintaksi naredbe koja se treba izvesti

-ok naredba {} \

slino kao opcija -exec samo to je za izvoenje


naredbe potrebna korisnikova potvrda

Napomena:

54

Linux - Osnovni teaj

Oznake {} i ; esto se moraju zatititi navodnicima ili s oznakom \ zato to u suprotnom ljuska moe
argumente naredbi find protumaiti kao vlastite argumente.
Primjeri:
Naredbom find treba pronai u direktoriju /etc datoteku passwd. Koristiti emo pretraivanje po
imenu opcijom -name.
$ find /etc -name passwd

Ukoliko naredba find pronae traenu datoteku, ispisati e njeno puno ime (/etc/passwd).
Koristan kriterij prilikom pretraivanja je takoer i tip datoteke. Na taj nain moemo pronai
datoteke tipa koji nas zanima. Treba nai sve obine datoteke u direktoriju /tmp.
$ find /tmp -type f

elimo koritenjem naredbe find pronai i obrisati sve datoteke u sistemu ija je veliina 0 blokova
(prazne datoteke). Koristiti emo naredbu rm za brisanje datoteka.
$ find / -size 0 -ok rm {} \;

Naredba poinje potragu u root direktoriju te je nastavlja u svim poddirektorijima. Kada se pronae
datoteka koja ispunjava uvjete (prazne datoteke), nad njom se izvrava naredba rm (uz korisnikov
pristanak). U samom zapisu zagrade {} predstavljaju argument naredbi rm (svaku pronaenu
datoteku).

7.7.2. Naredba whereis


Koritenjem naredbe whereis moe se dobiti informacija gdje se nalazi traena datoteka (program).
Naredba whereis omoguuje korisniku da pronae gdje se nalazi izvorni kod naredbe (engl.
source), binarni zapis (engl. binary), stranice prirunika.
Sintaksa naredbe:
whereis [<parametri>] <datoteka>

55

7.Pretraivanja, filtri i cjevovodi

Parametri naredbe whereis prikazane su u tablici 7.8:


Tablica 7.8: Parametri naredbe whereis

Parametar

Znaenje

-b

trai binarne zapise

-m

trai prirunik

-s

trai izvorni kod

-B direktorij

ograniuje potragu za binarnim zapisom na zadani


direktorij

-M direktorij

isto kao -B samo se odnosi na stranice prirunika

-S direktorij

isto kao -B samo se odnosi na izvorni kod traenog


programa

-f

terminator upisa liste direktorija, iza njega slijedi ime


datoteke (koristi se sa -B, -S, -M)

Iz imena datoteka naredba prvo odstranjuje direktorij u kojemu se nalaze (engl. path). To znai da
naredba pronalazi programe unato tome to se moe zadati pogrean direktorij u kojemu se nalaze.
Naredba whereis radi neovisno o $PATH varijabli. U $PATH se nalazi popis direktorija koji se
pretrauju prilikom pokuaja izvoenja neke naredbe. Ukoliko se uspjeno pronae izvorni kod
naredbe, ona se izvodi. Postoji mogunost da $PATH varijabla nije dobro zadana i ne sadri direktorij
u kojemu se nalazi naredba koju elimo izvriti. U tom sluaju moemo primijeniti naredbu
whereis i pronai izvorni kod naredbe neovisno o $PATH varijabli.
Primjer:
Kada pokreemo neku naredbu, ona se nuno ne mora nalaziti u naem direktoriju. Da bi smo saznali
gdje se nalazi naredba moemo koristiti naredbu whereis.
$ whereis ls

Upisom naredbe dobivamo informaciju o tome gdje se uistinu nalazi ls.

7.7.3. Naredba locate


Naredba locate trai i ispisuje datoteke koje u svome imenu sadre zadani uzorak. Datoteke trai u
internoj bazi podataka koju periodiki osvjeava program updatedb. Naredbu locate
preporueno je koristiti umjesto naredbe find jer ona pri pretraivanju koristi svoju internu bazu
podataka pa je samo pretraivanje bre. Do problema moe doi ako baza podataka nije aurirana i ne
sadrava popis novijih datoteka. Tada naredba locate nee dati rezultata pa korisnik moe
upotrijebiti naredbu find.
Sintaksa:
locate [<parametri>] <uzorak>

Parametri naredbe prikazane su u tablici 7.9:


56

Linux - Osnovni teaj

Tablica 7.9: Parametri naredbe locate

Parametar
-d direktorij

Znaenje
trai datoteke u zadanom direktoriju

Primjeri:
Treba pronai datoteku /etc/passwd pomou naredbe locate. Kao direktorij potrage izabrati
/etc.
$ locate -d /etc passwd

U ovom sluaju naredba locate pronalazi traenu datoteku. Pokuajmo pronai novu datoteku. U
ovom sluaju naredba ne moe dati rezultat jer baza podataka jo nije aurirana.
$ locate test

7.8. Zadaci
1) Ispisati imena prvih 5 datoteka u trenutanom direktoriju tako da budu sortirana po
numerikom redoslijedu. (napomena: realizirati naredbu upotrebom cjevovoda izgraenog
od ls, sort i head naredbi)
2) Stvoriti datoteku koja sadri linije koje se ponavljaju i jedinstvene linije. Prebrojati koliko
ima rijei u linijama koje se ponavljaju. Ispisati linije koje se ne ponavljaju abecednim
redoslijedom.(napomena: koristiti naredbe uniq, sort, wc)
3) Pronai sve datoteke u direktoriju koje su vee od 50 blokova i ispisati koliko imaju linija.
(napomena: koristiti naredbe find i wc)
4) Pronai sve datoteke koje su manje od 1000 blokova i ne pripadaju niti jednom korisniku
te im ime ispisati na zaslon.
5) Pronai u kojemu se direktoriju nalazi izvorni kod naredbe uniq.
6) Stvoriti datoteku i u nju preusmjeriti izlaz naredbe ls. Sve linije koje sadre odreeni
uzorak (zadati si ga po volji) sortirati abecedno obrnutim redoslijedom te ispisati na zaslon.
(napomena: koristi naredbe grep i sort)

57

8. Zamjenski znakovi i regularni izrazi


8.1. Zamjenski znakovi
Zamjenski znakovi su specijalni znakovi koji zamjenjuju jedan znak ili vie znakova. Njihovu
upotrebu odnosno zamjenu znakova omoguuje ljuska (engl. shell). Postoji nekoliko grupa znakova
definiranih u standardnoj ljusci: znakovi koji zamjenjuju jedan znak, znakovi koji zamjenjuju vie
znakova te definirani skup znakova koji zamjenjuje neki znak. Navedene vrste zamjenskih znakova
su: *, ? te [.......]. Znaenje navedenih znakova dano je u tablici 8.1
Tablica 8.1. Popis zamjenskih znakova

Znak

Znaenje

mijenja vie znakova

mijenja jedan znak

[...]

unutar uglatih zagrada odredi se interval znakova iz kojeg bilo


koji od ponuenih znakova zamjenjuje jedan znak

Primjer:
[m-o]
[B-E]
[A-z]
[3-7]

zamjenjuje
zamjenjuje
zamjenjuje
zamjenjuje

mala slova u intervalu od slova m do slova o


velika slova u intervalu od slova B do slova E
sva velika i mala slova od slova a do slova z
brojeve od broja 3 do broja 7

Postavlja se sljedei problem: kako nai datoteke koje u nazivu sadre neke specijalne znakove koje
ljuska koristi? Naime, ljuska neke definirane znakove tumai kao naredbe za izvoenje radnji s
datotekama. Ukoliko se neki od tih znakova navede unutar izraza ljuska e ga protumaiti kao
instrukciju. Rezultat takve pretrage nee biti korektan te je potrebno iskljuiti (engl. escape)
funkciju koju specijalan znak po svojoj definiciji obavlja. Kad se iskljui funkcija znaka, ljuska ga
vie ne interpretira kao specijalan nego kao obian znak kojeg se trai ili u nazivu datoteka ili u
linijama jedne odnosno vie datoteka. Kako se postie iskljuivanje funkcije znaka? Naravno,
znakovima: znakom \ te jednostrukim i dvostrukim navodnicima.
Tablica 8.2. Iskljuivanje funkcije posebnih znakova

Znak
\

Djelovanje
iskljui funkciju jednog posebnog znaka koji slijedi

...

iskljui funkciju svih posebnih znakova koji su sastavni dio niza znakova
unutar navodnika

...

iskljui funkciju svih posebnih znakova, koji su sastavni dio niza znakova
unutar navodnika, osim $ ' \. Ova etiri posebna znaka zadre funkciju
koju obavljaju

Linux - Osnovni teaj

Primjer:
pronalazak i ispis svih datoteka u direktoriju koje u nazivu imaju ekstenziju .doc
$ ls *.doc
norvegian wood.doc velvet_goldmine.doc 7.doc
$

Primjer: pronalazak i ispis svih datoteka u direktoriju koje u svom nazivu sadre jednu ili vie
znamenki
$ ls *0* *1* *2* *3* *4* *5* *6* *7* *8* *9*
098.doc 14cups.sxw backup0.file ruf_an.666 36abc.3
098.doc 14cups.sxw 098.doc 36abc.3
$

Prikazani ispis rezultata pretrage nije optimalan. Naime, neke su datoteke viestruko ispisane zbog
formulacije regularnog izraza. Stoga se treba posluiti regularnim izrazom koji e specificirati ispis
svake datoteke sa znamenkom u nazivu samo jedanput:
$ ls *[0123456789]*
098.doc 14cups.sxw backup0.file ruf_an.666 36abc.3
$

Ili jo krae:
$ ls *[0-9]*
098.doc 14cups.sxw backup0.file ruf_an.666 36abc.3
$

Primjer: popis datoteka iji nazivi sadre brojeve samo unutar naziva
$ ls *[a-z][0-9][a-z]*
backup0.file
$

Primjer: popis datoteka iji nazivi sadre brojeve na oba kraja naziva
$ ls [0-9]*[a-z]*[0-9]
36abc.3
$

8.2. Regularni izrazi


8.2.1. Openito o regularnim izrazima
Regularni izrazi su nizovi znakova koji omoguavaju da se na jednostavan nain tono odredi vei
skup znakova. Iako slie zamjenskim znakovima, regularni izrazi su potpuno drugaiji. Tehnika
59

8.Zamjenski znakovi i regularni izrazi

kreiranja vlastitih regularnih izraza je vjetina koju je potrebno precizno koristiti. Naime, regularni
izrazi slue i za niz drugih radnji (ovisno s kojim naredbama ih se kombinira u naredbenom retku)
osim za pretraivanje. Tako se moe regularnim izrazom kombiniranim s naredbom ili alatom odrediti
brisanje ili pomicanje u drugi direktorij niza datoteka koje u nazivu sadre uzorak znakova. Ukoliko
se regularni izraza kreira neprecizno odnosno netono mogu se dobiti neeljeni rezultati. Izmjena i
obrada teksta esto se efikasno provode upotrebom regularnih izraza. Broj regularnih izraza koji se
mogu kreirati koritenjem samo malog podskupa znakova je beskonaan. Dalje u tekstu je naveden
popis nekih od znakova kojima se moe koristiti. Ti znakovi se navode unutar uglatih zagrada.
Tablica 8.3. Popis znakova za kreiranje regularnih izraza

Znak

Znaenje operatora

znak c

nula ili vie pojavljivanja znaka iza kojega se nalazi


(npr a* znai nula ili vie pojavljivanja znaka a)

jedno ili vie pojavljivanje znaka iza kojeg se nalazi

jedno ili niti jedno pojavljivanje znaka iza kojeg se nalazi

zamjenjuje jedan znak (bilo koji)

[xxx] ili [x-y]


\x

odgovara jednom znaku u nizu ili intervalu znakova koji se navode


slui za iskljuenje originalnog znaenja, odnosno omoguuje doslovno
navoenje znaka koji inae slui kao operator regularnog izraza

^uzorak_znakova

odgovara uzorku znakova koji se nalazi na poetku linije u datoteci

$uzorak_znakova

odgovara uzorku znakova koji se nalazi na kraju linije u datoteci

8.3. Pretraivanje unutar datoteka pomou grep naredbi


Ovo potpoglavlje obrauje grep naredbe (naziv potjee iz global/reg.expression/printer) i nain
koritenja naredbi: grep, egrep i fgrep. Da bi se uspjeno savladalo uenje te koritenje grep
naredbi nuno je znati to su i kako funkcioniraju tehnike stvaranja regularnih izraza te zamjenski
znakovi opisani u prethodnom poglavlju. Grep naredbom pretrauje se svaka linija datoteke.
Dodatan bonus je da se istovremeno moe obavljati pretraga linija vie datoteka. Dakle, moe se
pretraivati jedna odnosno vie datoteka. Detalji o odreivanju pretrage vie datoteka su navedeni
kasnije u tekstu. Znaenja pojedinih grep naredbi su:
Tablica 8.4. Popis naredbi

Naredba

Sintaksa

grep

trai navedeni uzorak (mogu se koristiti zamjenski znakovi)

egrep

koristi regularne izraze u uzorcima za pretragu

fgrep

koristi fiksne nizove znakova (stringove)

Naredba fgrep ne koristi regularne izraze niti zamjenske znakove nego konkretne nizove znakova,
to znai da upotreba zamjenskih znakova u naredbenom retku uz fgrep nalazi doslovno identine
uzorke u samoj datoteci. U naredbenom retku se dodaju odrednice (specifikacije) koje odreuju nain
60

Linux - Osnovni teaj

na koji e se pronaene linije datoteke (odnosno vie datoteka) ispisati. Te odrednice tj. opcije se
dodaju po potrebi, grep naredbe svoju potpunu funkciju obavljaju i bez njih. Navedene su neke
najee koritene opcije:
Tablica 8.5. Popis opcija

Opcija

Funkcija

-v

ispis linija koje se ne podudaraju s uzorkom

-c

ispis broja pronaenih linija

-i

ispis svih linija koje se podudaraju s uzorkom bez obzira na velika i mala
slova

-n

ispis linija uz oznaavanje istih pripadnim brojem

Primjer:
$ grep -n friend guide.txt
1333: large extent by the window manager. This friendly program is
1999: Copy linux from a friend who may already have the software,
5666: (unfortunately, the system was being unfriendly.)
$

Kao to se vidi, uzorak je pronaen u linijama 1333, 1999 i 5666. Jo jedna karakteristika ovih
programa je ta da se ne mora svaki put iznova pisati uzorak kad god ga se eli pronai u datoteci.
Jednostavan primjer: nai vie rijei u raznim datotekama. Sve to se treba napraviti jest upisati te
rijei u novu datoteku kojom e se grep posluiti.
$ cat mywords
wonderful
typewriter
war
$

Sada se obavezno posluiti opcijom specificiranja datoteke f


$ grep -nf mywords guide.txt
574: typewriter used to represent screen inetaction,as in
617: software since the original space war, or , more recently, emacs.
It
1998: now you must be convinced of how wonderful linux is, and alll of
the
2549: inanimate object is a wonderful way to relieve the occasional
stress
3790: warning: linux cannot currently use 33090 sectors of this
7780: to wear the magic hat it is not needed, despite the wonderful
10091: wonderful programs and configurations are available with a bit of
work
$

Primijetiti da je koritena opcija numeriranja linja. Obavezno pripaziti na redoslijed kojim se navode
61

8.Zamjenski znakovi i regularni izrazi

eljene opcije u grep naredbi. Naime, -n mora biti naveden prije f! Kada bi opcije bile napisane
suprotnim redoslijedom grep bi javio greku jer ne bi mogao pronai datoteku naziva n. Nekoliko
jednostavnih primjera slijedi dalje u tekstu. Primjer: ispis svih linija u datoteci koje sadre floor61
ili floor67
$ grep floor6[17]

Primjer:
Ispis svih linija u datoteci koje sadre floor6 nakon ega ne slijede brojevi 1 ili 7
$ grep -v floor6[^17]

Primjer:
Pronalazak niza znakova koji glasi Windows'98 ili Windows95
$ grep Windows'9[58]

Zato su dodani dvostruki navodnici? Naime, moraju se navesti da se znak ' ne bi interpretirao kao
poetak niza znakova. Navodnici iskljuuju funkciju specijalnih znakova kao to je ' iz naredbenog
retka kako je opisano u poglavlju Zamjenski znakovi. Primjer: nai linije u datoteci buiding.txt koje
poinju s znamenkom
$ grep ^[0-9] building.txt

1 basement
2 garage
3 lift
4.entrance
$

$ fgrep ^[0-9] building.txt


$

Naredbeni redak nee dati rezultat pretrage kao grep u prola dva primjera zbog injenice da
fgrep ne moe koristiti zamjenske znakove. Mora se navesti fiksan niz znakova.
Primjer:
$ fgrep .entrance building.txt

4.entrance
$

62

Linux - Osnovni teaj

Da se koristila naredba grep ili egrep, znak . bi se tumaio kao zamjenski znak ili regularni izraz.
Navedimo sada neke primjere upotrebe naredbe egrep koja se slui regularnim izrazima. Neka je u
datoteci knjiga sljedei tekst:
affo
alfare
saltoooooo
oodgooood
cd

elimo li ispisati sve redove koji sadre slovo a koje slijedi jedan znak, a nakon toga slovo f
upisujemo:
$ egrep a.f knjiga
affo
alfare
$

elimo li ispisati broj redova koji sadre vie od jednog pojavljivanja slova o upisujemo:
$ egrep -c oo+ knjiga
2
$

Usloenijimregularnimizrazimamogusekoristitiizagrade,aliutomsluajutrebaizraznavestiu
dvostrukimnavodnicimakakoljuskanebikrivointerpretiralanaredbu.
$ egrep "(o+d)+g" knjiga
oododgooood

Uprimjerusetraeredovikojizadovoljavajusljedeesvojstvo:jedaniliviepojavljivanjaznakao
kojegslijediznakdjenizkojisepojavljujejedanilivieputaprijeznakag.

63

9. Rad s procesima
9.1. to su procesi?
Kad pregledavate man stranicu, pretraujete datoteke sa naredbom ls, pokrenete vi editor, ili
pokreete bilo koju komandu u Unixu, pokreete jedan ili vie procesa. U Unixu, bilo koji program
koji se izvrava naziva se proces. Istovremeno moete imati vie pokrenutih procesa. Npr. ls l |
sort | more poziva tri procesa: ls, sort i more. Procesi mogu imati razliita stanja, aktivan
(running) je najee stanje. Proces moete zaustaviti tako da pritisnete ^Z.

9.2. Ispis procesa na sustavu, naredba ps


Da bi ispisali status procesa, koristite naredbu ps (dolazi od 'processor status'). Ako naredbi ne
dodate nikakve argumente, pokazuje aktivne i zaustavljene programe samo na vaem terminalu.
Najee koriteni parametri za naredbu ps prikazani su u tablici 4.1.
Tablica 9.1: Parametri naredbe ps

Parametar

Znaenje

-a

Pokazuje sve procese terminala koji su prikljueni na sustav

-g

Sortira procese po sjednicama ili grupama

-u

Radi korisniko orijentirani ispis

-w

Koristi iroki format ispisa. U sluaju ponavljanja (-ww) ispisat e se koliko god je
mogue od svake komande.

-x

Pokazuje sve procese na sustavu

Parametri a, g, i x utjeu na to koliko e se informacija prikazati na ekranu. Da bi koristili g ili


x parametre, morate koristiti i a parametar.
Koritenjem naredbe ps ispisuje se i status procesa. Znaenje statusa prikazano je u tablici 9.2.
Tablica 9.2: Znaenje statusa procesa

Vrijednost

Znaenje

aktivni (running) proces

spavajui (sleeping) proces (20 sekundi ili manje)

besposlen (idle) proces (spava vie od 20 sekundi)

zaustavljen (stopped) proces

zombi proces (proces koji je zavrio, ali nije oslobodio resurse)

Linux - Osnovni teaj

Primjer:
elimo ispisati sve procese, te procese za trenutnog korisnika.
$ ps x
PID TTY
3493 ?
3518 ?
3552 ?
3556 ?
3581 ?
3608 ?
3612 ?
3614 ?
default3
3616 ?
3620 ?
3622 ?
3722 ?
3723 pts/1
3742 pts/1

STAT
Ss
Ss
S
S
S
Ss
Ss
Ssl

TIME
0:00
0:00
0:01
0:00
0:00
0:01
0:01
0:02

COMMAND
/usr/bin/gnome-session
/usr/bin/ssh-agent -s
/usr/libexec/gconfd-2 5
/usr/bin/gnome-keyring-daemon
xscreensaver -nosplash
/usr/bin/metacity sm-client-id=default1
gnome-panel --sm-client-id default2
nautilus --no-default-window --sm-client-id

Ss
Ss
Ss
S
Ss
R+

0:00
0:00
0:00
0:00
0:00
0:00

gnome-volume-manager --sm-client-id default6


eggcups --sm-client-id default5
pam-panel-icon --sm-client-id default0
gnome-pty-helper
bash
ps x

ispisuju se svi procesi (neki procesi su izbaeni iz ispisa zbog nepreglednosti)


$ ps u
USER
mtosic
mtosic
mtosic
[1]+

PID %CPU %MEM


3723 0.0 0.2
3746 1.0 0.4
3747 0.0 0.1

VSZ RSS TTY


4452 1404 pts/1
9892 2340 pts/1
4192 768 pts/1

Stopped

STAT
Ss
T
R+

START
01:29
01:32
01:32

TIME
0:00
0:00
0:00

COMMAND
bash
vim
ps u

vim

ispisuje procese za trenutnog korisnika

9.3. Prekidanje procesa, naredba kill


Vrlo korisno je znati kako ubiti proces. U Unixu to radi naredba kill. Kako bi bolje razumjeli
naredbu kill, prvo emo objasniti to je to signal. Signali su razne poruke koje se alju procesu da
bi ga obavijestili o raznim 'vanim' dogaajima. Kada se signal poalje procesu, on se prekida u
onome to trenutno obavlja te se zahtijeva obrada signala. Svaki signal ima cijeli broj koji ga
predstavlja (1, 2, itd.). Postoji mnogo signala koje kill naredba moe poslati procesu. Dodavajui
parametar l naredbi kill moete vidjeti koji su vam sve procesi dostupni.
Najee koriteni signali u naredbi kill prikzani su u tablici 9.3.
Tablica 9.3: Signali naredbe kill

Broj

Ime

Znaenje

SIGHUP

Zavriti s radom (Hang up)

SIGINT

Prekidanje (Interrupt)

65

9.Rad s procesima

Broj

Ime

Znaenje

SIGKILL

Kill (ne moe biti ignoriran)

15

SIGTERM

Softverska terminacija

Postoji vie od 30 signala u Unixu. SIGHUP signal je ono to je poslano svakom pokrenutom procesu
neposredno nakon to se odjavite sa sustava. SIGINT je signal koji se alje kada pritisnete ^C; mnogi
programi reagiraju na specifine naine kada je ovaj signal primljen. SIGKILL je Terminator - alje
se informacija jezgri sustava sa zahtjevom trenutnog gaenja eljenog procesa; programi ga ne mogu
ignorirati. Proces se odmah prekida, bez prilike da poisti iza sebe. SIGTERM je zahvalniji: zahtijeva
trenutno prekidanje programa, ali mu doputa da ukloni privremene datoteke koje je mogao stvoriti.
Podrazumijevano, kill alje SIGTERM odabranom procesu. Moete odabrati i druge signale,
koristei broj ili ime signala (ako koristite ime signala, koristite bez prefiksa SIG).
Neki procesi su ilaviji i mogu odoljeti slabijim signalima poput SIGTERM-a i SIGHUP-a. (U
Unixu, ovo se zove prihvat (catching) signala.) Tada treba koristiti SIGKILL. Preporua se da se
SIGKILL koristi tek nakon to ste probali prekinuti proces sa SIGTERM-om.
Primjer:
Pokrenut emo vi editor u pozadini te ga prekinuti SIGKILL signalom.
$ vi &
[1] 3750

pokreemo vi u pozadini
$ ps u
USER
mtosic
mtosic
mtosic

PID %CPU %MEM


VSZ RSS TTY
3723 0.0 0.2 4500 1448 pts/1
3750 0.0 0.4 10276 2336 pts/1
3751 0.0 0.1 2440 772 pts/1

[1]+ Stopped
$ kill -9 3750

STAT
Ss
T
R+

START
01:29
01:33
01:34

TIME
0:00
0:00
0:00

COMMAND
bash
vim
ps u

vim

aljemo KILL signal vi editoru pomocu njegovog PID-a


$ ps u
USER
PID %CPU %MEM
mtosic
3723 0.0 0.2
mtosic
3752 0.0 0.1
[1]+ Ubijeno

VSZ RSS TTY


4500 1448 pts/1
3376 768 pts/1
vim

STAT START
Ss
01:29
R+
01:35

TIME COMMAND
0:00 bash
0:00 ps u

9.4. Odvijanje procesa u pozadini


9.4.1. Naredba bg
Ako se proces nastavlja bez ikakvog ispisa na ekranu i bez ikakvih zahtjeva za unosom, moete
66

Linux - Osnovni teaj

koristiti naredbu bg da ga stavite u pozadinu, gdje e se odvijati dok se ne zavri. Ako proces radi u
aktivnom nainu (npr. sa wget programom skidamo neku datoteku s interneta) ljuska eka da taj
proces zavri. Potrebno je napomenuti da naredbu bg moete koristiti tek nakon suspendiranja
procesa naredbom ^Z. Ako program ispisuje neto na ekran ili treba unos sa tipkovnice, sistem e
automatski zaustaviti njegovo izvravanje i obavijestiti vas. Tada moete koristiti naredbu fg da se
program dovede u aktivan nain rada i nastavi sa njegovim izvravanjem.

9.4.2. Naredba fg
Kada je proces zaustavljen, moete ga ponovno staviti u aktivan nain rada naredbom fg (fg dolazi
od foreground).
Puno naredbi koje rade s procesima prihvaaju identifikator/oznaku posla (jobID) kao
argument. Najee koriteni argumenti naredbe fg prikazani su u tablici 9.4.
Tablica 9.4: Argumenti naredbe fg

Identifikator

Znaenje

%n

Redni broj procesa n

%s

Proces koji poinje slovom s

%?s

Proces koji sadri slovo s

%%

Trenutni proces

Trenutni proces (isto kao i prethodno)

%+

Trenutni proces (isto kao i prethodno)

%-

Prethodni proces

Koristei identifikator (jobID) procesa naredbom fg, gdje je ID procesa argument, moete pokrenuti
onaj program s kojim elite raditi. Ako ne upiete ID procesa, u aktivan nain rada e doi proces koji
je bio zadnji zaustavljen.
Primjer:
Pokrenut emo vi editor u pozadini te emo ga dovesti u aktivan nain rada
$ vi &
[1] 3769

pokreemo vi u pozadini
$ fg

otvaramo vi editor (jer je on zadnji koji je bio pokrenut u pozadini) isto bi postigli i slijedeom
naredbom
$ fg 1

jer je '1' redni broj procesa (pogledaj par redova gore i uoi redak ' [1] 3769')
67

9.Rad s procesima

9.4.3. Operator &


Program moete pokrenuti u pozadini, doputajui Unixu da upravlja njime. Ako program zahtijeva
unos ili ispis, zaustavlja se, poput procesa koji ste stavili u pozadinu naredbom bg nakon to je
pokrenut.
Da bi se program automatski pokrenuo u pozadini, jednostavno napiite & na kraju komandne linije.
Primjer:
elimo pokrenuti vi u pozadini.
$ vi &
[1] 3769

9.5. Odvijanje procesa nakon iskljuenja terminala, naredba


nohup
Dolazi od No hangup signals. Pokree naredbu bez hangup-a. Daje instrukciju sustavu da ne
prekine proces nakon to se odjavite s terminala. Nohup ne stavlja automatski program u pozadinu, to
se mora napraviti eksplicitno, tako da se doda & na kraju retka. Ono to bi se inae ispisivalo na
terminalu, ispisuje se u datoteku nohup.out
Primjer:
elimo naredbom wget (koja nam slui za 'skidanje' datoteka s interneta) skinuti neku veliku
datoteku. Kako bi to moglo potrajati, koristimo naredbu nohup kako bi wget nastavio skidanje i
nakon odjavljivanja sa terminala.
$ nohup wget -quiet http://www.primjer.com/neka_velika_datoteka &

Parametar quiet koristimo kako bi sprijeili wget u ispisivanju poruka na terminal.

9.6. Zadaci
1) Ispii sve procese na sustavu
2) Isprobajte razne parametre za naredbu ps
3) Pokrenuti proces po elji, saznati njegov PID te ga zaustaviti SIGKILL signalom
4) Pokrenuti dva ili vie procesa u pozadini, te pomou rednog broja procesa staviti eljeni
proces u aktivan nain rada. Staviti taj proces opet u pozadinu te u aktivan nain rada
staviti drugi proces.

68

10. Ljuske
10.1. to je ljuska?
Ljuska je korisniki program koji se ponaa kao posrednik izmeu korisnika i jezgre operacijskog
sustava. Njena je uloga prevoenje naredbi koje korisnik unosi u terminal. Razlikuje se od ostalih
programa po tome to je specijalizirana za pozivanje drugih programa. Ljuska ima osnovne tri
upotrebe: interaktivno koritenje, podeavanje okoline i programiranje. Interaktivno koritenje pritom
oznaava rad u komandnoj liniji takav da ljuska eka unos jedne ili vie naredbi i tipku ENTER da ih
izvri naredbu po naredbu. Podeavanje okoline oznaava podeavanje varijabli okoline koje postoje
u Unix-u, a definiraju korisniki direktorij itd. Neke varijable su ve unaprijed definirane u sustavu,
ali neke od njih i mi moemo podesiti u inicijalnim konfiguracijskim datotekama koje se pokreu po
korisnikovoj uspjenoj autentifikaciji i autorizaciji. Programiranje u ljusci vri se spajanjem vie
naredbe u jednu, izvrnu datoteku, tzv. shell script.

10.2. Vrste ljuski i razlike meu njima


Budui da ljuska nije dio jezgre sustava ve korisniki program, svatko moe napisati svoju ljusku.
Pritom svaki korisnik ima svoju kopiju ljuske pa prema tome ljuska moe biti razliita za svakog
korisnika. Meutim, bilo bi poeljno da bude rasprostranjena na svim Unix-ima kako bi se postigla
kompatibilnost na razliitim raunalima. Od mnogo inaica ljuski tri najpoznatije su: bash (Bourne
again shell nastala od sh - bourne shell) ), zsh i tcsh (turbo c-shell).
Bash ljuska je novija inaica Bourne ljuske (sh). Osim za interpretiranje naredbi korisnika, koristi se i
za pisanje programskih skripti (shell scripts). Skripte se piu u bilo kojem programu za rad sa
datotekama (vi). Mogunost pisanja skripti je posljedica naina rada ljuske, odnosno posljedica
interpretiranja naredbi koje zadaje korisnik. Svejedno je da li je unos zadan kao vie pojedinanih
naredbi, ili lista (datoteka) naredbi. Bash ljuska ima mogunost pamenja unosa naredbi. Strelicama
na tipkovnici (gore, dolje) korisnik moe pregledavati prije unesene naredbe. Lista unesenih naredbi
ispisuje se naredbom history.

10.3. Identifikacija ljuske


Postoji mnogo naina identifikacije ljuske, ali najjednostavniji nain je otvoriti datoteku
/etc/passwd i potraiti podatak uz username korisnika naredbom grep <username>
/etc/passwd.
$ grep <username> /etc/passwd
username::0:0:group::/bin/bash

Iz niza razloga (normalno funkcioniranje veine raznoraznih Unixoidnih programa) datoteka


/etc/passwd mora uvijek biti itljiva svim korisnicima. Jedna jednostavna tehnika identifikacije
ljuske je provjeriti to pie u komandnoj liniji. Ako komandna linija sadri %, najvjerojatnije je rije o
tcsh ljuski. Ako komandna linija sadri $, tada se najvjerojatnije koristi Bourne again (bash) ljuska.
Identifikacija se moe provesti pregledom trenutno koritenih programa u operacijskom sustavu
naredbom ps. U koloni CMD se nalazi ime koritene ljuske. (u primjeru je to bash)

10.Ljuske

$ ps
PID TTY
3353 pts/0
3413 pts/0

TIME CMD
00:00:00 bash
00:00:00 ps

Jo jedan nain identifikacije ljuske jest naredba env. Naredba ispisuje varijable okoline, od kojih je
jedna SHELL (ljuska koja se koristi pri registraciji korisnika). To se najjednostavnije postie
koritenjem grep naredbe na sljedei nain:
$ env|grep SHELL
SHELL=/bin/bash

Ljuska se moe identificirati jo i pomou chsh naredbe, koja je opisana u nastavku.

10.4. Promjena ljuske, naredba chsh


Ljuska se moe mijenjati samo ako je to na sustavu dozvoljeno. U sluaju da korisnik eli promijeniti
ljusku, moe to lako napraviti pomou naredbe chsh ( change shell ). Naredba se moe koristiti bez
obzira u kojem se direktoriju korisnik nalazi. Sve dozvoljene ljuske moraju se nalaziti u datoteci
/etc/shells. Upisivanjem naredbe cat /etc/shells na ekranu se ispisuje lista dostupnih
ljuski:
$ cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/bin/ash
/bin/bsh
/bin/ksh
/usr/bin/ksh
/usr/bin/pdksh
/bin/tcsh
/bin/csh

Kada su korisniku poznate ljuske na raspolaganju, moe pristupiti promjeni ljuske. To se radi ve
spomenutom naredbom chsh. Utipkavanjem chsh, sustav e zatraiti korisnikovu lozinku,
utipkavanjem lozinke, na ekran se ispisuje glavna ljuska (login shell), te se trai upisivanje nove
glavne ljuske:
$ chsh
Password:
Changing the login shell for username
Enter the new value, or press return for the default
Login Shell [/bin/bash]:_

Korisnik moe sada upisati jednu od ljuski na raspolaganju. U sluaju da korisnik eli biti siguran da
je dolo do promjene, valja upisati: echo $SHELL (prema konvenciji, sve varijable ljuski se moraju
pisati velikim slovima). Nakon toga sustav e ispisati ime ljuske koja je trenutno u uporabi. Zbog toga
to je ljuska ve otprije pokrenuta, promjena e nastupiti tek ponovnim ulogiravanjem na terminal, ili
70

Linux - Osnovni teaj

otvaranjem novog terminala.

10.5. Okolina i varijable, naredba export


Ljuska sadri dva skupa varijabli, lokalne varijable, i varijable okoline (engl. environment
variables). Njihov odnos je slian lokalnim i globalnim varijablama u programskim jezicima tipa C.
Lokalne varijable su poznate samo trenutnoj ljusci. Varijable okoline ljuske su poznate ljusci i
prenose se svim procesima koje je zapoela trenutna ljuska.
Ispisivanje varijabli na zaslon vri se naredbom echo. Naredba ispisuje ono to joj se preda u listu
argumenata, ako je to varijabla, potrebno je staviti znak '$' ispred. Varijabla se uklanja naredbom
unset. Varijable u ljusci se postavljaju operatorom pridruivanja '=', i definirane su samo u procesu u
kojemu su nastale. U sljedeem primjeru je upisana vrijednost 1 u novu varijablu A, a zatim je
ispisana vrijednost te varijable te je zatim pokrenut novi proces ljuske bash. Unutar te nove ljuske
nema varijable A, jer varijabla nije objavljena, odnosno nije globalna.
$ A=1
$ echo $A
1
$ bash
$ echo $A
$ exit
exit
$ echo $A
1

U sluaju da se eli koristiti vrijednost neke varijable u kombinaciji sa znakovima, npr. prikazati
vrijednost varijable A, i odmah iza te vrijednosti slovo B, koriste se vitiaste zagrade '{,}', primjerice:
$ A=1
$ echo $AB
$ echo ${A}B
1B

export je interna naredba ljuske koja prebacuje lokalne varijable u varijable okoline .
Sintaksa funkcije export:
export <varijabla> ili export <varijabla>=<vrijednost>

Argumenti funkcije su varijable koje elite staviti u okolinu ljuske (engl. shell environment). Moe se
koristiti export ak i ako varijabla nema vrijednost. Kada joj se dodijeli vrijednost, automatski e
se prebaciti u okolinu. Objavljene varijable nalaze se u okolini ljuske. Kada ljuska pokrene novi
procesdijete (potproces) predaje okolinu novom procesu. Okolina se sastoji samo od varijabli kojesu
objavljene. Koritenjem objavljenih varijabli, moe se proslijediti informacija bilo kojem potprocesu.
Naravno, ne mora svaki potproces koristiti okolinu. Isto tako potproces ne moe promijeniti okolinu
roditeljskog procesa, tj. moe mijenjati samo svoju okolinu. Ako se u promptu upie export bez
argumenata, izlistat e se objavljene varijable (za listu svih varijabli koje su predane podljusci koristi
71

10.Ljuske

se env naredbu). Za ilustraciju, navedimo primjer. Vi editor koristi SHELL i TERM globalne
varijable (varijable okoline) za definiranje terminala na kojem radi, i ljuske kojoj alje zahtjeve. Ako
korisnik eli promijeniti varijablu EDITOR, i staviti ju u okolinu ljuske, treba upisati:
$ echo $EDITOR
vi
$ unset EDITOR
$ echo $EDITOR
$ export EDITOR=vim
$ echo $EDITOR
vim

Koristei naredbu grep, moe se provjeriti da li je varijabla objavljena.


$ export | grep EDITOR
declare -x EDITOR="vim"

Sada se moe vidjeti da je EDITOR varijabla u okolini ljuske, i postavljena je na vrijednost vim.

10.5.1. Varijable okoline


Utipkavanjem naredbe env dobije se lista varijabli. Te varijable se nazivaju varijable okoline, ili
environment varijable. Kada se korisnik prijavi na sustav, environment varijable definiraju veinu
stvari koja je potrebna sustavu za koritenje. Npr. matini direktorij, ljusku koja se koristi pri prijavi,
ime korisnika itd. Popis bitnijih varijabli okoline naveden je u tablici 10.1.
Tablica 10.1. Popis znaajnih varijabli okoline

Varijabla

Znaenje

SHELL

ova varijabla oznaava ljusku koja se koristi pri prijavi na sustav

TERM

varijabla koja odreuje vrstu terminala na kojem korisnik radi

PATH

ljuska trai naredbu po direktorijima navedenim u varijabli

HOME

odreuje matini direktorij, i odreene varijable se veu na ovu varijablu

USER

programi mogu brzo pogledati korisnikov user ID i usporediti ga sa imenom


korisnikog rauna. Takav nain usporedbe tedi vrijeme

USER - programi mogu brzo pogledati korisnikov user ID i usporediti ga sa imenom korisnikog
rauna. Takav nain usporedbe tedi vrijeme.
HOME - odreuje matini direktorij, i odreene varijable se veu na ovu varijablu.
Primjerice, naredba cd bez argumenata vraa mjesto rada u matini direktorij. Ako se promijeni
varijabla home, to e imati za posljedicu da e i naredba cd utipkana bez argumenata vratiti mjesto
rada u drugi direktorij.

72

Linux - Osnovni teaj

$ echo $HOME
/home/studenti/direktorij
$ cd
$ pwd
/home/studenti/direktorij
$ unset HOME
$ export HOME=/home/studenti/direktorij/novidirektorij
$ echo $HOME
/home/studenti/direktorij/novidirektorij
$ cd
$ pwd
/home/studenti/direktorij/novidirektorij

PATH - govori u kojem direktoriju da trai, i kojim redoslijedom. Korisno je dodati i vie direktorija u
kojima se trae naredbe. Zbog sigurnosnih razloga (virusi koji se nalaze u trenutnom direktoriju, a
imaju ime naredbe) valja izbjegavati dodavanje . (trenutnog direktorija) u Path. Ako je ve nuno ga
dodati, dodaje se na kraj. Direktoriji se odvajaju dvotokama, npr.
$ echo $PATH
/home/kreator/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/games:
/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin:/root/bin

U primjeru se takoer mogu vidjeti razlike izmeu PATH varijabli administratora i obinog korisnika.
Administratori imaju ukljuene sbin direktorije (system binaries), te root direktorij. Dakako, postoji
i standardna postavka PATH varijable, u sluaju da ona nije neposredno definirana od korisnika. Ta
postavka ovisi od stroja do stroja, moe izgledati ovako:
PATH=/usr/local/bin:/usr/bin:/bin:/usr/bin/X11:/usr/games

Za dodavanje dodatnog direktorija u varijablu PATH, bez ponovnog upisivanja itave varijable, moze
se koristiti sljedea sintaksa:
PATH=$PATH :/novi/direktorij

$PATH je stara varijabla PATH, kojoj se samo nadodaje direktorij /novi/direktorij na kraj.

10.6. Zadaci
1) Saznajte koju ljusku koristite.
2) Saznajte koje su ljuske na raspolaganju.
3) U sluaju da trenutno koritena ljuska nije bash promijenite ljusku u bash.
4) Saznajte koje su varijable u okolini.
5) Definirajte novu varijablu A, i postavite ju na vrijednost 20. Zatim napravite novu
73

10.Ljuske

instancu ljuske, i probajte saznati vrijednost varijable A. Kako treba definirati varijablu
da bi bila vidljiva svim instancama ljuske?
6) Dodajte novi direktorij u PATH varijablu, zadravi trenutni sadraj varijable.
7) Saznajte koje ste naredbe sve koristili tijekom rjeavanja zadataka.

74

11. Korisne naredbe


11.1. Datum, vrijeme i kalendar
11.1.1. Naredba time
Struktura naredbe:
time [parametri] naredba [argumenti]

Naredba time ispisuje koliko je vremena potrebno da se izvri neka druga naredba ili datoteka, to ovu
naredbu ini jako praktinom kod testiranja trajanja programa napisanih u bilo kojem programskom
jeziku. Naredba se ispisuje u sljedeem obliku:
Real time:

Vrijeme proteklo od pokretanja do prekida programa

User CPU time:

Rezultat je suma tms_utime i tms_cutime polja

System CPU time:

Rezultat je suma tms_stime i tms_cstime polja

U polje parametara koji su prikazani u se mogu upisati vrijednosti koje su prikazane u tablici 11.1
pomou kojih se definira nain ispisivanja rezultata naredbe time:
Tablica 11.1: Parametri narebe time

Parametri

Znaenje

%E

realno vrijeme trajanja naredbe (u [sati :]minute:sekunde)

%e

vrijeme trajanja naredbe(u sekundama).

%S

vrijeme izraeno u CPU-sekundama koje mjeri trajanje procesa u kernelmodu

%U

vrijeme izraeno u CPU-sekundama koje mjeri trajanje procesa u usermodu

%P

Postotak koritenog CPU-a, koji se rauna kao (%U + %S) / %

Ukoliko se uz naredbu time koristi sufiks -p, korisniku se daje mogunost ispisa
rezultata u formatu real %e user %U sys %S.
Primjer:
$ time /bin/ls -al > /dev/null
/bin/ls -al > /dev/null 0.00s user 0.01s system 6% cpu 0.156 total

Zakljuak:
Prikaz datoteka u direktoriju na ext2/3 datotenom sustavu zahtijeva to vee vrijeme to ima vie
datoteka, ali porast nije linearan ve polinoman zbog toga to su datoteke u dvostruko povezanoj listi.

11.1.2. Naredba date


Struktura naredbe:

11.Korisne naredbe

date [parametri] [+format]

Za razliku od naredba time, date ispisuje i vrijeme i datum. Privilegirani korisnici (administratori)
mogu mijenjati, postavljati datum i vrijeme.
Primjer:
date
Thu Apr 29 13:41:35 EDT 2005

Neke opcije naredbe date prikazane su u tablici 11.2


Tablica 11.2. Opcije naredbe date

Opcije
+format

Znaenje
ispisuje vrijeme i datum i proizvoljnom formatu

-r file

ispisuje vrijeme kada je zadana datoteka promijenjena

-s date

postavlja datum na eljenu vrijednost

--help

ispisuje pomo, sa svim opcijama koritenja naredbe

Primjer:
$ Date +%A %j %n%k %p
Thursday 128
13 PM

Naredba date moe, koristei sufikse u obliku + parametri, specificirati nain ispisivanja datuma
na izlazu, odnosno format naredbe date. Neki od parametara prikazani su u tablici 11.3
Tablica 11.3. Neki parametri naredbe date

Parametri

Znaenje

%A

puni naziv dana u tjednu

%B

puni naziv mjeseca

%c

lokalno vrijeme i mjesto

%D

datum u formatu (mm/dd/yy)

%m

mjesec (01..12)

%T

vrijeme u formatu (hh:mm:ss)

%x

lokalni datum (mm/dd/yy)

%Y

godina (1970...)

11.1.3. Naredba cal


Struktura naredbe:

76

Linux - Osnovni teaj

cal [parametri] [[mjesec] godina]

Naredba ispisuje kalendar.


U polje parametara se mogu upisati sljedee vrijednosti s sljedeim znaenjima prikayanim u tablici
11.4:
Tablica 11.4. Parametri naredbe cal

Parametri

Znaenje

-1

prikaz tekueg mjeseca

-3

prikaza prijanjeg/tekueg/sljedeeg mjeseca

-s

prikaz nedjelje (Sunday) kao prvog dana u tjednu ( default )

-m

prikaz ponedjeljka (Monday) kao prvog dana u tjednu

-j

prikaz Julijanskog datuma (dani su pobrojani od 1.1.)

-y

prikaz kalendara za tekuu godinu

Primjeri:
$ cal 11 1987
$ cal m 11 1980
$ cal y

11.2. Koritenje kalkulatora


11.2.1. Naredba bc
Pokretanjem naredbe ulazite u suelje u kojem upisujete raun. Iz programa izlazite naredbom ^D.
Ako vam program otkae poslunost, spaavajte se tipkama ctr+d. Opcije naredbe bc prikazane su u
tablici 11.5.
Tablica 11.5. Opcije naredbe bc

Parametri

Znaenje

-i,

interaktivni mod

-l,

definiranje standardne math biblioteke

-s

procesira tono POSIX bc jezik

-v

ispisuje verziju bc-a

-h

ispisuje koritenje naredbe bc

Da bi koristili non-integer operacije nuno je pokrenuti program za ekstenzijom l,"bc l" da bi


ukljuili mathlib tj. definirali eljene naredbe.

77

11.Korisne naredbe

Primjer:
$ bc l
13-8
2+(sqrt(3)*e(2))
ln(e(1))

11.2.2. Naredba dc
Kalkulator koji radi sa postfix notacijom, te je puno kompliciraniji od prethodnog. Postfix notacija u
ovom sluaju RPN notacija koristi se takoer na HP-ovim digitronima (HP48/HP49). Svaki argument
mora biti u novom redu, i rezultat operacije se ne ispisuje, ve je to potrebno zadati naredbom "p"
(print). Posebno je koristan kod pretvaranja i raunanja u razliitim bazama. Program varijable(unos i
rezultat) sprema na stog. Iz programa se izlazi naredbom quit. Opcije naredbe dc prikazane su u
tablici 11.6.
Tablica 11.6. Opcije naredbe dc

Opcije
-f script-file
-e script

Znaenje
Mogunost raunanja skripte koja je ukljuena u datoteku
mogunost definiranja skripte koju e procesirati kalkulator

-v

ispisuje verziju dc-a

-h

I spisuje koritenje naredbe dc

Nain pisanja: prvi argument (enter), drugi argument (enter), operator (enter)
Primjeri:
$ dc
75
0.85
*
p
54
4
^
p
8
i
210
p
136

Sadraj datoteke a moemo prikazati na sljedei nain.


$ cat a
75
0.25
/

78

Linux - Osnovni teaj

p
$ dc -f a
300

11.3. Kreiranje pseudonima


11.3.1. Naredba alias
Naredbom alias stvaramo pseudonim, labelu za neku drugu esto koritenu naredbu. Tako skraujemo
pisanje neke duge naredbe, ili elimo da se neka naredbe pokree sa drugaijim parametrima.
Struktura naredbe:
alias [ime [naredba]]

Ako utipkamo samo naredbu alias, izlistat e se svi trenutno definirani pseudonimi. Jedan od
korisnijih aliasa je .. koji mijenja naredbu cd .., dakle vraa vas u direktorij povie.
Primjer:
Napraviti alias (pseudonim) za izlist svih (i skrivenih) datoteka.
$ alias lll=ls -al

11.4. Stvaranje linkova


11.4.1. Naredba ln
Naredbom ln stvaramo pokaziva na eljenu datoteku, dakle za razliku od alias gdje smo
preimenovali naredbe, sada povezujemo file-ove, te im tako moemo pristupati pod drugaijim
imenima. Pokazivai mogu biti meki (soft link) i tvrdi (hard link). Meki, simboliki pokaziva je
samo pokaziva do mjesta gdje se nalazi datoteka, on pokazuje na ime, a ne na sadraj datoteke.
Koristi se da bi programe informirali gdje da potrauju datoteku, iako ona ne mora nuno postojati.
Brisanjem originala mekani pokaziva vie nije valjan. Tvrdi pokaziva vee datoteku.
Implementirani su tako da je jedinstven sadraj, ali se datoteke nalaze pod razliitim imenima i na
drugim lokacijama. Dakle vie datoteka dijeli, pokazuje na isti sadraj. Ako izbriemo jedan
pokaziva nita se ne mijenja dok god postoji neki drugi koji pokazuje na sadraj. Original ne postoji
ve su svi jednako vrijedni. Izmeu ostalog meki pokaziva moe pokazivati i na direktorije, pa i na
one u drugom datotenom sustavu, dok je sa tvrdim pokazivaima to nemogue napraviti.
Struktura naredbe:
ln [parametri] original [odredino ime]
ln [parametri] original [odredini direktorij]

79

11.Korisne naredbe

Primjer:
$ ln s fakultetelektrotehnikeiracunarstva_upis.pdf fer_u
$

11.5. Razmjena informacija meu korisnicima


11.5.1. Naredba write
Naredbom write moemo komunicirati direktno sa drugim korisnicima. Relativno je jednostavna
naredba, pokreemo, naravno, upisom nje same i ime korisnika s kojim elimo komunicirati. Tada na
njemu doe poruka da ste zainteresirani za komunikaciju sa njim, a na njemu ili na njoj je da odlui
hoe li prihvatiti. Drugi korisnik mora ponoviti isti postupak, tj. pokrenuti naredbu write zajedno sa
vae ime. Kad uspostavite vezu sa drugim raunalom svaka linija koju utipkate alje se drugoj osobi
im pritisnete enter.
Struktura naredbe:
write korisnik [tty]

-tty argument je terminal na kojeg elimo poslati text.


Primjer:
Prvo moramo omoguiti da drugi korisnici imaju dozvole pisanja na odredinom terminalu na kojem
se vi nalazite, inae neete primati ni jednu poruku od drugog korisnika.
$ mesg y
is y

Najbolji nain da saznate dali je korisnik s kojim elite komunicirati logiran na sistem je naredba
who.
$ who | grep marica
marica
ttyAx

Apr 2 10:30

Ako vam se pojavi greka to je zbog toga to drugi korisnik nije omoguio primanje poruka naredbom
"mesg y". S takvim korisnicima ne moete komunicirati. Naravno da isto vrijedi i za vas, u sluaju
da imate iskljueno primanje poruke, nitko ne moe s vama komunicirati.
Sada pozivate korisnika da vam se pridrui
$ write marica

Na njegovom e ekranu stii poruka


Message from marica@netcom.com on ttyAx at 10:34

80

Linux - Osnovni teaj

Sada priekajte da dugi korisnik upie write ivica, tada e vam doi poruka:
Message from marica@netcom.com on ttyAx at 10:38

Prekid razgovora radi se naredbom


$ ^d

11.6. Jo korisnih naredbi


11.6.1. Naredba uname
Ovom naredbom ispisujemo najosnovnije informacije o raunalu i operativnom sistemu. Pokretanjem
naredbe bez dodatnih opcija ispisuje ime operativnog sustava (Linux)
Struktura naredbe:
uname [parametri]

Upisivanje sljedeih vrijednosti prikazanih u tablici 11.7 u polje parametara, ispisuju se sljedee
znaajke:
Tablica 11.7: Parametri naredbe uname

Parametri

Znaenje

-a

sve informacije o raunalu

-s

ime jezgre (kernel)

-n

ispiu se ime korisnika u mrenoj domeni

-m

ime raunala (hardversko)

-p

tip procesora

-i

hardverska platforma

-o

operacijski sustav

Primjer:
$ uname -a
Linux esa1 2.6.11.7-grsec #1 SMP Fri Apr 22 18:56:02 CEST 2005 i686
GNU/Linux

11.7. Naredba exec


Pokretanjem ove naredbe izvravamo drugu naredbu (command) u trenutnoj ljusci, a ne kreira se novi
proces. Naredbom exec "nestaje" trenutna ljuska.
Struktura naredbe:
81

11.Korisne naredbe

exec [parametri]

[naredba]

Primjer:
$ exec ls

11.8. Naredba talk


Struktura naredbe:
talk osoba@posluitelj

Ovom naredbom razgovaramo s drugim korisnikom. Osoba je korisniko ime neke osobe logirane
na tvoj sustav. Ako je osoba logirana na nekom drugom sustavu pristupamo joj ovako:
osoba@posluitelj. Za razgovore sa osobom koja je logirana vie puta, potrebno je naredbom
who doznati na kojem je terminalu. Kad je veza uspostavljena korisnici mogu istovremeno pisati, a
njihove poruke se vide u razliitim prozorima.
Primjer:
$ talk ivica@host2

11.9. Naredba uptime


Ovom naredbom ispisujemo redom sljedee:

trenutno vrijeme

koliko dugo sistem radi

koliko je korisnika trenutno logirano (moe ukljuivati istog korisnika vie puta)

prosjek optereenja sistema (system load average)

Primjer:
$ uptime
10.45:12 up 39 min, 1 users, load average: 0.00, 0.00, 0.00

82

Linux - Osnovni teaj

11.10. Zadaci
1) Izmjerite trajanje naredbi ls HOME i ls /dev, te izvedite zakljuke o dobivenim
rezultatima
2) Ispisati datum i vrijeme.
3) Saznajte kojeg ste dana (pon-ned) roeni.
4) Izraunati $ echo '(2+3)/4'|bc-l koristei ne interaktivan nain:
5) Napraviti da se pri pokretanju bc kalkulatora uvijek ukljui mathlib (bc -l).
6) Treba isprobati simbolike i tvrde linkove. Prvo treba u proizvoljnu datoteku u direktoriju
$HOME povezati mekim pokazivaem sa datotekom /etc/passwd, pregledati sadraj, a
zatim za istu datoteku napraviti tvrdi pokaziva.
7) Pokuajte komunicirati s nekim korisnikom (write).
8) Pokuajte razgovarati sami sa sobom (talk).
9) Pokrenite naredbe i pogledajte to sve ispisuje (uname, uptime).

83

12. Napredno koritenje Linux operacijskog sustava


12.1. Grafiko suelje X
12.1.1. Osnove
Grafiko suelje X je grafiki sustav temeljen na klijent/posluitelj paradigmi. Razvijen je na MIT-u
80-tih godina prolog stoljea za Unix operacijske sustave.
Svaki X sustav dijeli se na dva temeljna dijela X posluitelj i X klijent. Posluitelj i klijent
komuniciraju putem mree upotrebom X protokola. Posluitelj direktno kontrolira ulazne i izlazne
ureaje, poput grafikog zaslona, tipkovnice ili mia. On je zapravo bilo kakvo jae ili slabije
raunalo s direktnim pristupom sklopovlju. Klijenti, s druge strane, koriste ulazno/izlazne ureaje
putem posluitelja. Klijenti su ti koji vre stvarni raunalni posao, primjerice tekst procesor ili
prikaz DivX filmova. Klijenti su aplikacije koje koriste X11 posluitelj kako bi otvorili jedan ili vie
prozora te da bi prihvatili ulaz s tipkovnice ili mia. Valja spomenuti da X11 posluitelj izvrava sva
iscrtavanja na zaslonu, ne nuno samo prozore. On je i prvi omoguio postojanje tzv. thin
klijenata, kod kojih su klijenti samo prikaz, a posluitelj radi razne proraune koji se samo prikazuju
na klijentskim X11 posluiteljima.

12.1.2. Uporaba X-a


X posluitelj se u pravilu pokree na raunalu na kojega su spojeni monitor, tipkovnica i mi.
Najea situacija je da se i klijent takoer pokree na tom istom raunalu. Kako su klijent i
posluitelj na istom raunalu njihova meusobna komunikacija moe ii preko mree, no zbog brzine
i specifine situacije, upotrebljavaju se druge (efikasnije) metode komunikacije. Meutim, reeno je
kako se X posluitelju moe pristupiti putem mree pa je mogue pokrenuti klijenta na nekom
udaljenom raunalu. U veini sluajeva raunalo na kojemu je posluitelj i raunalo na kojemu je
klijent spojeni su putem nekakve brze veze, primjerice putem Etherneta ili ADSL-a. U principu
mogue je koristiti i sporije komunikacijske veze, primjerice analogni modem. No, to se ne
preporuuje jer je X protokol dizajniran za vrlo brze lokalne mree i na sporim mreama moe biti
neupotrebljiv za bilo kakav normalan rad.
Glavna prednost razdvajanja grafikog sustava na posluiteljski i klijentski koji meusobno
komuniciraju putem dobro definiranog protokola je u tome to se programi (klijenti) mogu pokretati i
izvravati na puno jaim raunalima.
Trenutno postoje tri najee implementacije X grafikog sustava: Xorg i XFree86 te komercijalni
AcceleratedX, s tim da je nekad postojao i Metro. Jasno, postoje i drugi X11 posluitelji na non-linux
platformama.

12.2. Editor vi
Vi je klasini ureiva teksta, a dolazi na komercijalnim Unix platformama. Postoje i njegove kasnije
slobodne reimplementacije, ukljuujui nvi, vim, vile i elvis. Na Linuxu, naredba vi je
uglavnom link na jedan od ovih programa.
Editor vi radi u 3 moda: naredbenom (1 2 slova naredbe, prefiksirane brojkom ili ne + kretanje),
nainu unosa (iskljuivo unos teksta) i nainu za duge naredbe (poinju sa : i prikazuju se na ekranu).
Takav naina rada ini vi atraktivnim editorom za korisnike koji razlikuju tekstualni unos od
editiranja. Za korisnike koji editiraju dok tipkaju, emacs kao editor koji ne trai promjene naina rada
pri unosu teksta bi bio bolji izbor.

Linux - Osnovni teaj

Vi se zasniva na starijim linijskim editorima zvanim ex i ed. Korisnik moe upotrijebiti snane
editorske sposobnosti unutar vi-a tipkajui dvotoku (:), unosei naredbu i pritiskajui enter. Nadalje,
moete smjestiti npr. ex naredbe u direktorij zvan ~/.exrc, koji vi ita na poetku samog editiranja.
Jedna od najeih verzija vi-a na Linux sustavima je Bram Moolenaarov Vi Improved, tj. vim. Na
nekim Linux distribucijama, vim je default verzija vi-a i pokree se kad pokrenete vi. Vim je
promijenio neke osnovne mogunosti vi-a, npr. omoguujui viestruke undo poteze.
Valjalo bi spomenuti i nekoliko osnovnih editora koje se moe nai na standardnoj Linux distribuciji
kao to su pico/nano, elvis, emacs i joe. Za poetnike bi bio idealan pico zbog
jednostavnosti koritenja, dok emacs s druge strane obiluje mogunostima (npr. provjera pravopisa,
itanje mail-a, itd.). U usporedbi s vim-om, emacs je brz pri obradi malih koliina teksta, ali sporiji
pri obradi velikih datoteka, a i vim-ove naredbe su kompaktnije i u nekim sluajevima monije.

12.3. Elektronika pota


12.3.1. itanje i pisanje poruka elektronike pote
U ovom poglavlju obraujemo klijentske mail programe (MUA). Mail podrka nam omoguuje
stvaranje, slanje, primanje i prosljeivanje elektronske pote. Program Mail ima 2 nain rada:
kreirajui nain, u kojem kreirate poruku, i naredbeni nain, u kojem upravljate svojim mailom.
Iako je mail moan alat, moe biti prilino tricky za neiskusnog korisnika. Najee je danas vien
u skriptama. Veina Linux distribucija ukljuuje nekoliko alata koji su bogatiji u mogunostima i
mnogo jednostavniji za koritenje: maileri ugraeni u preglednike kao to je Mozilla, grafiki mail
programi distribuirani s GNOME-om (Evolution) i KDE-om (Kmail), i konzolni mail programi, od
kojih je mutt, uz Gnus, danas vjerojatno najbolji. GNU Emacs editor takoer moe primati i slati
potu. Spomenut emo i Thunderbird, kao prilino kvalitetni MUA.

12.3.2. Naredba mail


Za ulazak u interaktivni mod za itanje mail-a, upiite:
$ mail

Za poetak pisanja poruke korisniku, upiite:


$ mail korisnik

Upiite tekst poruke, jednu po jednu liniju, pritiskajui Enter na kraju svake. Za zavretak poruke,
upiite toku (.) na poetak posljednjeg reda i pritisnite Enter.
$ mail -a 'From: Djed Mraz <djed.mraz@sjeverni.pol>'
-s 'Ovogodisnji pokloni' rudolf@sjeverni.pol < lista-poklona

Ovo e poslati mail sa Djed Mraz ove e-mail adrese, sa Subjectom Ovogodisnji pokloni, a sadraj
e neinteraktivno pokupiti iz datoteke lista-poklona.

85

12.Napredno koritenje Linux operacijskog sustava

12.4. Rad s udaljenim raunalima


12.4.1. Naredba ssh
SSH je kratica za secure-shell, protokol koji omoguava sigurno spajanje, prijenos podataka i
tuneliranje X11 veze. Valja naglasiti da je SSH naziv i za protokol i za naredbu pa te dvije stvari treba
razlikovati. SSH (protokol) je razvijen u Finskoj prije nekoliko godina. SSH naredbe su prvenstveno
zamjena naredbama kao to su rsh, rlogin ili rcp, a omoguavaju snanu enkripciju i provjeru
integriteta kako u inicijalnom spajanju/rukovanju, tako i tijekom cijele komunikacije. SSH ne kriptira
lozinku, ve se ona u pravilu prenosi direktno do posluitelja i odgovarajueg mehanizma za
baratanje lozinkama.
SSH se sastoji od dva dijela. SSH klijent se koristi na radnim stanicama S KOJIH se spajate, a SSH
posluitelj, ili daemon, se koristi na raunalima NA KOJA se spajate. U mnogim sluajevima, i
posluitelj i klijent su instalirani na objema raunalima, doputajui da se veze ostvaruju u oba
smjera.
Kada instalirate softver i ispravno ga konfigurirate, bit ete u mogunosti pokrenuti ssh na klijent
raunalu. Upiite slijedeu naredbu, zamijenivi korisnik korisnikim imenom na udaljenom
raunalu, te domain imenom ili IP adresom udaljenog raunala:
$ ssh -l korisnik domain

Primijetite da ako koristite isto ime na lokalnom i udaljenom raunalu moete izostaviti dio l
korisnik.
Prvi put kad se spojite, bit ete obavijeteni da je potpis udaljenog raunala stavljen na listu
poznatih domaina. Ovaj potpis je dodatni oblik sigurnosti ako ikad u budunosti neko drugo
raunalo zauzme mjesto prvotnog na koje se spajate i bude koristilo njegovo ime ili IP adresu, SSH
program e vas o tome obavijestiti.
Nakon to unesete odgovarajuu ifru, dobit ete obavijest ljuske udaljenog raunala.

12.4.2. Naredba wget


Ta naredba slui za download sadraja irom interneta, koristei HTTP ili FTP protokole. Wget radi i
sa sporim i nestabilnim vezama tako da nastavlja dohvaati sadraj sve do potpunog download-a.
Nastavak prihvata sadraja od zadnje pozicije radi na serverima koji to podravaju. I HTTP i FTP
obnavljanja download-a mogu biti vremenski obiljeena, pa wget moe vidjeti da li se udaljeni
sadraj u meuvremenu mijenjao i automatski obnoviti novu verziju, ako postoji.
Wget podrava proxy servere: ovo moe ubrzati nastavak download-a sadraja i omoguiti pristup iza
vatrozida.
Pretpostavimo li da imate zeljeni URL, jednostavno upiite:
$ wget http://fly.cc.fer.hr/
-13:30:45-- http://fly.cc.fer.hr:80/
=> `index.html'
Connecting to fly.cc.fer.hr:80..
. connected!

86

Linux - Osnovni teaj

HTTP request sent, fetching headers... done.


Length: 1,749 [text/html]
0K -> .
13:30:46 (68.32K/s) - `index.html' saved [1749/1749]

U sluaju nedovoljno stabilne ili brze veze, wget e pokuati dohvatiti sadraj do kraja u nekoliko
navrata. 20 je default-ni broj pokuaja zavretka download-a. Jednostavno je promijeniti broj
pokuaja na npr. 45:
$ wget --tries=45 http://fly.cc.fer.hr/jpg/flyweb.jpg

Sada moemo ostaviti wget da radi svoj posao u pozadini, uz zapisivanje svog napretka u log
datoteku. Umjesto duljeg tries piemo t:
$ wget -t 45 -o log http://fly.cc.fer.hr/jpg/flyweb.jpg &

Operator & na kraju omoguava da wget radi u pozadini. Za neogranien broj pokuaja, koristimo
-t inf.
Koritenje FTP je takoer jednostavno. wget e se pobrinuti za korisniko ime i ifru (ovo vrijedi
za tzv. anonimni ftp).
$ wget ftp://gnjilux.cc.fer.hr/welcome.msg
--23:35:55-- ftp://gnjilux.cc.fer.hr:21/welcome.msg
=> `welcome.msg'
Connecting to gnjilux.cc.fer.hr:21... connected!
Logging in as anonymous ... Logged in!
==> TYPE I ... done. ==> CWD not needed.
==> PORT ... done.
==> RETR welcome.msg ... done.
Length: 1,340 (unauthoritative)
0K -> .
23:35:56 (37.39K/s) - `welcome.msg' saved [1340]

12.5. Arhiviranje podataka


12.5.1. Naredba tar
Kopira datoteke u ili obnavlja iste iz arhivskog medija. Drugim rijeima, skuplja niz datoteka i
sprema u jednu datoteku, tzv. tok bez saimanja. Ako nije navedena opcija f po defaultu arhivira
na standardni izlaz, odnosno dearhivira sa standardnog ulaza. Ako je neka datoteka direktorij, tar
djeluje na cijelo podstablo.
$ tar -cvf archive_name file1 file2 ...

87

12.Napredno koritenje Linux operacijskog sustava

Parametri naredbe tar prikazani su u tablici 12.1:


Tablica 12.1: Parametri naredbe tar

Znak

Znaenje

potrebno za kreiranje nove datoteke

mogunost prikaza imena svake datoteke koja se arhivira

potrebno za uporabu idueg argumenta kao imena arhive

file1, file2, ...

imena datoteka koje se arhiviraju

Recimo da elite arhivirati datoteke: freq.sas, plot.sas i sort.sas, i elite kreirati arhivsku
datoteku zvanu sasfiles.tar. U ovom sluaju, tar naredba e biti:
$ tar -cvf sasfiles.tar freq.sas plot.sas sort.sas

12.5.2. Naredba gzip


Naredba gzip komprimira specificirane datoteke (ili proitane sa standardnog ulaza) sa Lempel-Ziv
kodiranjem (LZ77). Preimenuje kompresirane datoteke u filename.gz; Ako nema naveden argument,
kompresira podatak sa standardnog ulaza, a sprema na standardni izlaz ako je navedena opcija c.
Za otpakiravanje kompresirane datoteke koristimo naredbu gunzip ili gzip d. Korisna je i
naredba split za razlamanje datoteke ili arhive na vie dijelova.
$ ls -al a.out
-rwxr-xr-x 1 kreator users 12884 May 11 23:30 a.out

Nakon naredbe gzip:


$ gzip a.out
$ ls -al a.out.gz
-rwxr-xr-x 1 kreator users 5244 May 11 23:30 a.out.gz

12.5.3. Naredba bzip2


Naredba za kompresiju i dekompresiju slina gzip naredbi, ali koristi drukiji algoritam i metodu za
kodiranje da bi dobila bolju kompresiju. Bzip2 (bzip2) naredba zamjenjuje sve datoteke sa svojom
kompresiranom varijantom i .bz2 ekstenzijom u dodatku. Bunzip dekompresira svaki file kompresiran
bzip2-om (ignorirajui druge datoteke). Bzcat (bzcat) dekompresira sve specificirane datoteke na
standardni izlaz, a bzip2recover se koristi za pokuaj obnove podataka iz oteenih datoteka.
$ ls -al a.out
-rwxr-xr-x 1 kreator users 12884 May 11 23:30 a.out

Nakon naredbe bzip2:


88

Linux - Osnovni teaj

$ bzip2 a.out
$ ls -al a.out.bz2
-rwxr-xr-x 1 kreator users 5244 May 11 23:30 a.out.bz2

12.6. Filtriranje podataka, naredba awk


Naredba awk dozvoljava korisniku manipuliranje datotekama koje su strukturirane kao stupci
podataka i stringova.
Moe se koristiti za procesiranje podataka i automatizaciju aplikacije sastavljene od Unix naredbi.
Sadri i jo mnoge funkcionalnosti koje su u irokoj upotrebi.
Postoje dva naina za pokretanje awk naredbe. Jednostavna awk naredba se moe pokrenuti iz
komandne linije. Kompleksnije operacije bi trebale biti napisane kao awk programi (skripte) prema
datoteci. Primjer:
$ awk 'uzorak {akcija}' ulazna_datoteka > izlazna_datoteka

Znaenje: uzmi svaku liniju ulazne datoteke; ako linija sadri uzorak primjeni akciju na liniju i
rezultatnu liniju upii u izlaznu datoteku.
Ako je uzorak izostavljen, akcija se primjenjuje na svaku liniju:
$ awk '{akcija}' ulazna_datoteka > izlazna_datoteka

Po default-u, awk u datotekama djeluje na stupce brojeva ili stringova koji su odvojeni praznim
mjestima (razmacima ili tabovima), ali F opcija se moe koristiti ako su stupci odvojeni nekim
drugim znakom

12.7. Prevoenje C programa, naredba gcc


GNU Compiler Collection, prevodi mnoge jezike (C, C++, Objective-C, Ada, FORTRAN, Java) u
strojni kod.
GCC je skup programa koji prevode vie programskih source datoteka: npr. C source datoteku (.c),
assembler source datoteku (.s) ili preprocesorsku C source datoteku (.i). GCC sadri i g++ (C++
prevodilac) kojeg korisnici mogu upotrebljavati za proizvoljno prevoenje eljenog C/C++ programa.
Ako sufiks u datoteci nije prepoznatljiv, pretpostavlja se da je datoteka objektna datoteka ili
biblioteka. Gcc (gcc) uobiajeno poziva C preprocesor, prevodi procesni kod u asemblerski kod,
asemblira ga, te ga, koristei link editor, povezuje sa razliitim sistemskim i inim bibliotekama.. Ovaj
se proces moe zaustaviti koritenjem -c, -S ili -E opcija. Koraci takoer mogu odstupati ovisno o
jeziku koji se kompajlira. Po default-u, izlaz je smjeten u a.out. U nekim sluajevima, gcc
generira objektnu datoteku uz -o sufiks i odgovarajue osnovno ime.
gcc <ime_ulazne_datoteke> -o <ime_izlazne_datoteke>

Preprocesorske i povezivake opcije navedene u gcc naredbi prosljeuju se tim alatima u samom
izvoenju. Napomena: gcc je GNU oblik cc-a, na veini Linux sustava, naredba cc e pozvati gcc.
89

12.Napredno koritenje Linux operacijskog sustava

Kompajliranje .c i .cpp datoteka je jednostavno i istovjetno (osim kljunih rijei gcc za C datoteke
i g++ za C++ datoteke). Primjer kompajliranja C++ datoteke:
$ g++ -Wall hello.cc -o hello

Izvrna datoteka se jednako pokree za C i C++ datoteke:


$ ./hello
Hello, world!

90

13. Autori pojedinih poglavlja


1. Osnove Linuxa Igor Smud
2. Korisnici u Linux operacijskom sustavu Luka Lovoevi
3. Rad s datotekama i direktorijima Marko Salki
4. Struktura datotenog sustava u Linuxu Jelena Vuak
5. Kreiranje datoteka Maja Varga
6. Vlasnitvo i dozvole Marko avka
7. Pretraivanja, filtri i cjevovodi Goran Dela
8. Zamjenski znakovi i regularni izrazi Maja Penovi
9. Rad s procesima Marko Toi
10. Ljuske Vedran Marinkov Krecl
11. Korisne naredbe Mario Kozina
12. Napredno koritenje Linux operacijskog sustava Slaven ili

14. Literatura
1) S. Figgins, E. Siever, A. Webber: Linux in a Nutshell, 4th Edition, O'Reilly, 2003.
2) D. Taylor, J. C. Armstrong: Teach Yourself UNIX in 24 Hours, Sams Publishing,
Indianapolis, 1997.
3) J. Tacket, S. Burnet: Using Linux, Que Corporation, Indianapolis, 1998.
4) M. agar: UNIX i kako ga koristiti, Antoni, Zagreb, 1995.
5) Bradford learning, LPI 101 Preparatory Course

You might also like