Professional Documents
Culture Documents
Linux Osnovni Tecaj
Linux Osnovni Tecaj
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.
KORISNIK
LJUSKA
JEZGRA LINUXA
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.
CentOS 4.2
Debian 3.1
Fedora 4
Gentoo 2005.
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
Broj cjeline
Kratak opis
Funkcije za C programe
Igre
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)
10
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
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
...
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
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
Tipke
Znaenje
<SPC>
<BACKSPACE>
izlazi iz programa
13
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.
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
$ 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.
16
$ who am i
luka
pts/1
$ whoami
luka
May 23 23:30
:0
pts/0
pts/1
May 23 23:20
May 23 23:21
May 23 23:30
17
$ w
23:47:36 up 28 min,
USER
TTY
luka
pts/0
luka
pts/1
3 users,
LOGIN@
23:21
23:30
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
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
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.
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.
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
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
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
Parametar
Znaenje
-a
-F
-s
-C
Prikaz u stupcima
-1
-l
Detaljan izvjetaj
-g
-r
-t
-u
-S
-d
23
Primjer:
$ ls
DeadLetters
Mail
$ mkdir VJEZBA
$ ls
DeadLetters
Mail
SQL
dead.letter
atlas
write
SQL
atlas
VJEZBA
mail
dead.letter
write
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.
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
$ 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.
0 Nov
0 Nov
1 23:06 tekst.copy
1 23:06 tekst.txt
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
Slino emo postupiti ako elimo premjestiti direktorij na novu poziciju, npr. u nadreeni direktorij.
Primjer:
26
$ mv STARO ../
$ ls ../
DeadLetters
Mail
SQL
STARO
atlas
VJEZBA
mail
dead.letter
write
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
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
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
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
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
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)
/dev/psaux (PS/2)PS/2
/dev/lp0 (LPT1)
/dev/dsp
/dev/usb (USB)
Prvi CDROM
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
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
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
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
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:
1 root root
2 root root
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.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
35
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
-m
-c
-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
5.Kreiranje datoteka
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.
/etc/passwd
U ovom primjeru se najbolje vidi nedostatak naredbe cat. Naredba e ispisati datoteku, ali e to
38
<brojredaka>
<imedatoteke>
Naredba ispisuje prva tri retka datoteke proba, a ispod nje ispisuje prva tri retka datoteke tekst.
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.
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.
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.
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
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.
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
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
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
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
Vlasnikova grupa
Samo vlasnik
Dodaje mod
Oduzima mod
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
45
6.Vlasnitvo i dozvole
Sintaksa:
chown <korisnik> <ime_datoteke>
Primjer:
elimo korisniku mcavka predati datoteku unix.txt.
$ chown mcavka unix.txt
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
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.
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.
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>
Parametar
Znaenje
-c
-i
-l
-n
-v
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
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
Znaenje
-w
-l
-c
Primjeri:
Moemo koristiti neku od kombinacija parametara da postignemo ispis eljenih podataka na zaslonu.
$ wc -wl termcap
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
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.
Parametar
Znaenje
-b
-d
-f
-n
-r
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
51
$ 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.
Parametar
Znaenje
-u
-d
-c
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
Standardni izlaz naredbe uniq sprema se u datoteku test.new koja sada sadri samo jedinstvene
linije iz datoteke test.
52
Parametar
Znaenje
-c
-d
-f
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
Sintaksa:
find <direktorij> <uvjet>
Uvjet
Znaenje
-type znak
-user korisnik
-size n
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 {} \
-ok naredba {} \
Napomena:
54
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).
55
Parametar
Znaenje
-b
-m
trai prirunik
-s
-B direktorij
-M direktorij
-S direktorij
-f
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
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
Znak
Znaenje
[...]
Primjer:
[m-o]
[B-E]
[A-z]
[3-7]
zamjenjuje
zamjenjuje
zamjenjuje
zamjenjuje
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
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
$
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
^uzorak_znakova
$uzorak_znakova
Naredba
Sintaksa
grep
egrep
fgrep
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
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
-c
-i
ispis svih linija koje se podudaraju s uzorkom bez obzira na velika i mala
slova
-n
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
$
Primijetiti da je koritena opcija numeriranja linja. Obavezno pripaziti na redoslijed kojim se navode
61
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
$
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
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.
Parametar
Znaenje
-a
-g
-u
-w
Koristi iroki format ispisa. U sluaju ponavljanja (-ww) ispisat e se koliko god je
mogue od svake komande.
-x
Vrijednost
Znaenje
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
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
Broj
Ime
Znaenje
SIGHUP
SIGINT
Prekidanje (Interrupt)
65
9.Rad s procesima
Broj
Ime
Znaenje
SIGKILL
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
[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
STAT START
Ss
01:29
R+
01:35
TIME COMMAND
0:00 bash
0:00 ps u
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
%s
%?s
%%
Trenutni proces
%+
%-
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.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.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
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
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
Sada se moe vidjeti da je EDITOR varijabla u okolini ljuske, i postavljena je na vrijednost vim.
Varijabla
Znaenje
SHELL
TERM
PATH
HOME
USER
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
$ 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
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:
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
%e
%S
%U
%P
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.Korisne naredbe
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
Opcije
+format
Znaenje
ispisuje vrijeme i datum i proizvoljnom formatu
-r file
-s date
--help
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
%B
%c
%D
%m
mjesec (01..12)
%T
%x
%Y
godina (1970...)
76
Parametri
Znaenje
-1
-3
-s
-m
-j
-y
Primjeri:
$ cal 11 1987
$ cal m 11 1980
$ cal y
Parametri
Znaenje
-i,
interaktivni mod
-l,
-s
-v
-h
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
-h
Nain pisanja: prvi argument (enter), drugi argument (enter), operator (enter)
Primjeri:
$ dc
75
0.85
*
p
54
4
^
p
8
i
210
p
136
78
p
$ dc -f a
300
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
79
11.Korisne naredbe
Primjer:
$ ln s fakultetelektrotehnikeiracunarstva_upis.pdf fer_u
$
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
80
Sada priekajte da dugi korisnik upie write ivica, tada e vam doi poruka:
Message from marica@netcom.com on ttyAx at 10:38
Upisivanje sljedeih vrijednosti prikazanih u tablici 11.7 u polje parametara, ispisuju se sljedee
znaajke:
Tablica 11.7: Parametri naredbe uname
Parametri
Znaenje
-a
-s
-n
-m
-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.Korisne naredbe
exec [parametri]
[naredba]
Primjer:
$ exec ls
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
trenutno vrijeme
koliko je korisnika trenutno logirano (moe ukljuivati istog korisnika vie puta)
Primjer:
$ uptime
10.45:12 up 39 min, 1 users, load average: 0.00, 0.00, 0.00
82
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.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.
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.
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
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.
86
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]
87
Znak
Znaenje
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
$ bzip2 a.out
$ ls -al a.out.bz2
-rwxr-xr-x 1 kreator users 5244 May 11 23:30 a.out.bz2
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
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
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
90
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