You are on page 1of 27

Uvod (Osnovni pojmovi operativnog sistema Unix) se komanda unese, shell je interpretira i poziva odgovarajući program.

Shell podržava više korisnika (multiuser), više zadataka (multitask), i


Operativni sistem Unix predstavlja skup programa. Dva od njih više interfejsa. Koristi standardnu sintaksu za sve komande.
zauzimaju posebno važno mjesto: kernel (jezgro) i shell (ljuska, školjka). Komande i uslužni programi
Kernel predstavlja operativni sistem u najužem smislu; on nadgleda sve Moguće je kombinovati različite uslužne programe i komande.
procese na sistemu, izvršava ih na određeni način i u određeno vrijeme, Postoji preko 200 standardnih komandi koje, uz korišćenje
kao i mnoge druge stvari (alokacija resursa sistema, koordinacija svih preusmjeravanja, omogućavaju veliku fleksibilnost.
detalja komponenti sistema i sl.). Kako i koji programi treba da se izvrše, Fajlovi i Direktorijumi
šta da se uradi sa njihovim izlazima i mnogo sličnih detalja, kernel dobija Sistem direktorijuma podržava višenivosku hijerarhiju. Fajlovi i
obavještenje preko komandnog interpretera, tj. programa pod nazivom direktorijumi mogu imati zaštićen pristup. Do fajlova i direktorijuma
shell. Shell služi za komunikaciju sa korisnikom i prevodi komande koje dolazi se preko imena putanja (pathnames). Fajlovi podržavaju veze sa
unosi korisnik i pretvara ih u jezik koji je razumljiv kernelu. više imena. Prenosivi fajl sistemi su takođe podržani.
Na slici je prikazan osnovni dijagram sistema UNIX. Time-sharing operativni sistem Unix veoma je popularan zbog
svoje prenosivosti; on, naime, može da radi na velikom broju različitih
Kompajleri računara. Mada je prvo bio namijenjen PDP-11 familiji računara, Unix je
prilagođen mnogim drugim tipovima računara, tako da danas postoji
veliki broj verzija Unix-a kao i njemu sličnih operativnih sistema.
Relativna nezavisnost Unix-a od računara obogaćuje izbor uslužnih
programa (editori, prevodioci,..). S druge strane, mana Unixa je što
podrazumijeva prijateljski nastrojen skup korisnika. Postoje načini da
neodgovorni korisnik uspori ili zakoči sistem.
Shell Unix je skoro cio napisan u C-u, što mu osigurava dobru buduću
primjenu. Ovaj sistem je rezultat višedecenijskog rada i usavršavanja.
Jezgro (Kernel) Najranije verzije Bell Labs je dao univerzitetima, gdje su različiti korisnici
Mail mijenjali i proširivali različite verzije Unixa. Iako je oko 75% stvari isto na
Editori Hardver svim sistemima, zgodno je znati na kojoj konkretnoj verziji radimo. Dvije
FTP
osnovne verzije Unixa su BSD Unix i System V.
Telnet
Jedan od prvih univerziteta koji je radio sa Unixom je Berkeley
(Kalifornija). Iz rada na sistemu izašla je verzija Unixa nazvana BSD
(Berkeley Software Distributions), sa svojim različitim izdanjima
obilježenim brojevima (4.3, 4.4, itd). U međuvremenu, u Bell Labs se
takođe radilo na usavršavanju Unixa, pri čemu su oni svoje verzije krstili
Osnovni koncepti koji ujedinjuju sve verzije UNIX-a su četiri ideje: rimskim brojevima (System III, System V, itd), i dodavali razne
Kernel (Jezgro) podverzije. Konkurentski programeri su kombinovali osobine različitih
Kernel predstavlja srce operativnog sistema. Raspoređuje verzija Unixa u zadnjoj verziji System V (SVR4). Neki drugi proizvođači
zadatke i upravlja smještanjem podataka. Korisnik rijetko komunicira Unixa osnovali su fondaciju Open Software Foundation (OSF) koja je
direktno sa kernelom. Ovo je dio operativnog sistema rezidentan u ponudila svoju verziju OSF/1.
memoriji. Iz Finske je došla vjerovatno najpopularnija verzija Unixa
Shell (Interpreter, ljuska, školjka) nazvana Linux. Ova verzija je besplatna i veoma slična ostalim
Shell je uslužni program koji procesira korisničku komandu. Kada
37
verzijama Unixa. Nju je napravio Finac Linus Torvalds i popularna je Ukoliko napravimo grešku ili se zaglavimo, nije preporučljivo
zbog tri stvari: isključivati računar (u daljem tekstu podrazumijevaćemo da računar služi
• radi pristojno i na malim računarima (npr. 386); kao radna stanica priključena na mrežu). Da bi zaustavili izvršenje neke
• besplatan je; komande pritisućeno Ctrl+C, a na nekim sistemima tastere Break ili
• na njegovom usavršavanju radi puno mladih entuzijasta. Delete.
Linux je u velikoj mjeri zanovan na System V. Kao i na drugim Ako napravimo grešku u kucanju, obično pomaže taster
sistemima, može se raditi sa različitim interpreterima (shells), ali se na Backspace. Ukoliko želimo da izvršimo ponovo zadnju komandu, shell
većini verzija podrazumijeva BASH shell. Razvoj Linuxa se uglavnom BASH nam obično omogućava korišćenje kursorske strelice.
odvija na Internetu tako da najnovija poboljšanja možemo lako skidati,
samo uz malo strpljenja potrebnog da se sačeka prenos softvera. Početak rada na Unix-u
Kad se prijavimo na sistem, obično se pojavi mnoštvo poruka o
autorskim pravima, uz identifikaciju verzije Unixa. Ako radimo u Linuxu, U ovom dijelu ćemo pripremiti korisnike za početak rada na Unix-
verziju ćemo otkriti komandom uname. u, tako da mogu prevazići početne teškoće koje nastaju pri susretu sa
Kada otkrijemo na kojoj verziji Unixa radimo, moramo vidjeti još novim operativnim sistemom i pravilima koje on nameće.
jednu značajnu stvar: koji shell koristimo. Shell je, kao što znamo, Unix je multiuser (višekorisnički) operativni sistem, pa ćemo se
komandni interpreter koji čeka da unesemo komandu da bi je izvršio. Sa prvo osvrnuti na proceduru za kominikaciju sa sistemom. Zbog više
Unixove tačke gledišta shell nije ništa posebno, samo prvi program koji korisnika, mora se voditi administracija i upravljanje sistemom, i tu ulogu
Unix aktivira po prijavljivanju korisnika. Zbog toga su u opticaju desetak vrši upravnik (administrator). On dodaje nove korisnike, dodjeljuje im
verzija shell-a, koje su sve pomalo međusobno kompatibilne. Na sreću lozinke i vodi brigu o raznim drugim detaljima.
svi popularni shells mogu se svrstati u dvije grupe: Bourne (ili Korn ili Upravnik daje svakom korisniku ime pod kojim se prijavljuje login
BASH) i C. name i lozinku password. Ime je javno (obično ime korisnika) a lozinka
Veoma lako možemo otkriti koji shell koristimo. Ukoliko se nakon je tajna i služi samom korisniku (podrazumijeva se da je korisnik odmah
prijavljivanja pojavi znak $, imamo shell tipa Bourne; ukoliko se Unix promijeni, tako da je više ne zna ni upravnik). Lozinka se mijenja
odazove sa %, koristimo C shell. Kako u zadnje vrijeme sve verzije jednostavno, komandom passwd. Sistem od nas traži da unesemo
Unixa dolaze sa oba shella, imaćemo onu verziju koju nam administrator trenutnu lozinku, a zatim ukucamo novu lozinku po sopstvenom izboru.
servira. Ovu novu lozinku ćemo, zbog provjere, morati unijeti dva puta da bi je
Najpopularniji shell je Bourne, i njeno programsko ime je sh. sistem prihvatio.
Postoje nekolike alternativne verzije ovog shella od kojih je najpoznatija Korisnici mogu međusobno komunicirati pomoću raznih tehnika
Bourne Again (BASH), čije je programsko ime bash. C shell ima za slanje poruka. U svim tim komunikacijama ime korisnika služi i kao
programsko ime csh. njegova adresa. Zato je dobro imati ime koje će ostali lako zapamtiti.
Pod komandom ćemo podrazumijevati ono što ukucamo kako bi U lozinkama i imenima mogu se ravnopravno koristiti velika i
rekli Unixu (ustvari njegovom shellu) šta da radi. Odgovarajući program mala slova. Naime, Unix je case sensitive, tj. razlikuje velika i mala
je fajl koji sadrži izvršni kod. Da bi se aktivirao neki izvršni program slova.
potrebno je samo unijeti njegovo ime. Kad unesemo neku komandu, Na mnogim verzijama Unix-a, upravnik svrstava korisnika u
sistemski shell pogleda da li sam može da je izvrši, a ako ne može, određenu korisničku grupu (user group). Grupu čine korisnici povezani
potražiće odgovarajući program u nekom fajlu zadatog naziva. Svaki zajedničkim ciljem ili zajedničkim poslovima, tj. oni kojima je potreban
shell ima određeni broj ugrađenih komandi, a sve ostale komande su pristup do grupe zajedničkih fajlova.
imena drugih programa (obično ih ima na stotine). Svaku komandu Kad se sistem startuje, u lijevom uglu ekrana pojavi se poruka
završavamo sa Enter, a kad se komanda izvrši Unix se ponovo odaziva koja predstavlja zahtjev za prijavljivanje (login prompt). Najčešće se on
sa promptom ($ ili %). sastoji od poruke:
38
login: strukturu koja odgovara potrebama korisnika a fizičku strukturu koja je
Kad se ukuca ime, sistem traži lozinku. Ako se ovaj postupak uspješno prilagođena uređajima za memorisanje.
završi, Unix obavještava korisnika da je spreman za izvršavanje U Unixu postoje tri vrste fajlova: obični, specijalni i
komandi, tako što se pojavi shell prompt koji se najčešće sastoji od direktorijumski. Obični fajlovi su ono što većina korisnika podrazumijeva
samo jednog znaka ($ ili %). pod tim pojmom: programi, tekstovi, podaci... Direktorijumski fajlovi-
Odjavljivanje sa sistema (logout) se vrši na razne načine, a direktorijumi-su spiskovi fajlova zajedno sa informacijama o tome kako i
najčešće sa Ctrl+D. Bez obzira da li se odjavljivanje sa sistema gdje ih operativni sistem može pronaći. Specijalni fajlovi sadrže pravila
ostvaruje pomoću Ctrl+D ili na neki drugi način (off, goodbye,..), izlaz iz za upravljanje I/O uređajima.
pojedinačnih programa Unixa ostvaruje se ili sa Ctrl+D ili sa tasterom Korisnici se najviše srijeću sa običnim fajlovima, jer njih čine oni
Delete. koje kreira sam korisnik i fajlovi koji su dio samog operativnog sistema.
Pri korišćenju tastature, greške se ispravljaju pomoću tastera Sa aspekta programera, svi I/O uređaji se tretiraju kao fajlovi.
Backspace, a komanda se izvršava tek poslije pritiska na Enter (Return, Programi koji prenose podatke između fajlova mogu podjednako lako
CR). Kao i kod drugih operativnih sistema, kontrolni (upravljački) tasteri prenositi podatke i između I/O uređaja. Ti programi ne znaju šta, u
(Ctrl, Alt, Shift) sami za sebe nemaju nikakvu funkciju, već samo u fizičkom smislu, predstavlja izvor odnosno odredište podataka. Na
kombinaciji sa drugim tasterima. primjer, štampanje fajla se vrši kopiranjem njegove sadržine u fajl pod
Sve radnje koje Unix izvršava korisnik naručuje preko bogatog imenom /dev/lp. To je specijalni fajl, u smislu da se njegov originalni
upravljačkog jezika. Postoji i širok izbor uslužnih programa (editori sadržaj ne uništava kopiranjem nekog fajla, i on aktivira štampač. Sam
teksta, prevodioci programskih jezika,..). Sve ove radnje se aktiviraju specijalni fajl sadrži pravila po kojima periferijski uređaj obrađuje
pomoću komandi sa tastature. Komande predstavljaju zapravo posebne znakove.
programe koji se izvršavaju navođenjem njihovog imena. U mnogim Lako pronalaženje običnih fajlova po imenu ostvaruje se pomoću
slučajevima se komande moraju dopuniti imenima fajlova ili dodatnih fajlova koji se nazivaju direktorijumi i koji pokazuju gdje se
direktorijuma ili nekim opcijama, u zavisnosti od svrhe same komande i nalaze pojedini fajlovi. Direktorijumi sadrže imena fajlova i njihove fizičke
namjere korisnika. Kad se komanda izvrši, ponovo se javlja prompt za adrese na disku. Pošto su i direktorijumi u stvari fajlovi, jasno je da se
sljedeću komandu. Izvršavanje se može prekinuti tasterom Delete, koji mogu formirati direktorijumi direktorijuma. Unix dodjeljuje svakom
je jedan od nekoliko tastera čije je dejstvo trenutno (ne treba mu Enter). korisniku lični direktorijum koji je element direktorijuma svih korisnika, a
Skup komandi Unixa može se proširiti dodavanjem novih izvršnih ovaj opet predstavlja element nekog sistemskog direktorijuma. Drugim
programa i tzv. alias-a. Pošto nema razlike između komandi i izvršnih riječima, sistemu svaki direktorijum izgleda kao fajl. Korisnik sam može
programa, svaki korisnik može da doda nove komande s tim što su, za kreirati poddirektorijume koji predstavljaju elemente njegovog ličnog
razliku od komandi (programa) koje obezbjeđuje sam sistem, ovakve direktorijuma. Vrh ove piramide predstavlja osnovni (root) direktorijum,
komande dostupne samo tom korisniku. Zbog toga treba izbjegavati kojim upravlja sam sistem. Svaki korisnik vodi brigu samo o svojim
imenovanje novih komandi tako da se poklapaju sa već postojećim, a direktorijumima. Svaki direktorijum ima i dva specijalna člana- . (tačka) i
ako se to uradi treba sa njima pažljivo postupati, jer sistemska komanda ..(dvije tačke). Prvi se odnosi na sam direktorijum a drugi na prethodni
pod istim imenom postaje nedostupna tom korisniku. Zbog ove direktorijum (roditelj). Jedino root nema roditelja.
fleksibilnosti praktično i ne postoje dvije iste verzije Unixa. Unix ne prikazuje strukturu direktorijuma u vidu slike. Ipak,
svakom fajlu se može pristupiti navodeći putanju (path, pathname) do
Fajlovi na Unixu njega kroz stablo direktorijuma. Susjedni poddirektorijumi se odvajaju
kosom crtom (/), tako da tipična putanja ima oblik
Svaki opretivni sistem treba da smješta, obezbjeđuje i obrađuje dir1/dir2/dir3/imefajla
različite fajlove. Da bi se to postiglo, sistem fajlova treba da ima logičku

39
gdje dir1 mora biti poddirektorijum tekućeg direktorijuma (ovo je Promjena direktorijuma
takozvano relativna putanja). Putanja se može navesti i polazeći od root-
a, kada se naziva apsolutna putanja (počinje sa kosom crtom). Već smo rekli da se korisnik po prijavljivanju nađe u vlastitim
U Unix-u nema ekstenzije imenima fajlova, ali korisnici mogu (home) direktorijumu. Taj direktorijum postaje njegov tekući, i sva imena
stvoriti sopstvenu klasifikaciju. Budući da je tačka (.) validan karakter u fajlova koja se koriste u komandama odnose se na fajlove iz tog
imenu fajla, ime se može proširiti sa nekim pogodnim sufiksom direktorijuma, uključujući i njegove poddirektorijume. Fajlovi ostalih
odvojenim tačkom (na primjer, .d može označavati fajlove sa podacima). korisnika ostaju nevidljivi tako da se, i pored velikog broja fajlova, u
U nekim ranijim verzijama Unixa imena fajlova mogla su imati do 14 sistemu zadržava određeni red.
karaktera, a novije verzije nemaju to ograničenje. Isto kao u DOS-u, u Logički povezane fajlove korisno je grupisati u poddirektorijume.
Unixu možemo koristiti džokere * i ?. Dok DOS ne prihvata upotrebu više Na primjer, autor neke knjige može da čuva pojedina poglavlja u
džokera u kombinaciji, na primjer *uva*, ovakva kombinacija će lako odvojenim, malim fajlovima koje je lakše obrađivati, a kad treba može ih
proći u Unixu. sve zajedno udružiti pomoću sistema direktorijuma. Tako, fajl
knjiga/dio3/glava4/poglavlje2 može predstavljati jedno poglavlje u tom
Struktura direktorijuma sistemu.
Odmah se uočava mana ovakvog pristupa: imena fajlova postaju
Direktorijum je fajl čija jedina uloga je da čuva imena stvarnih prilično duga i nepodesna. Zato je najbolje učinjeti da tekući direktorijum
fajlova i informacije o njima. Svi fajlovi, bilo da su obični, specijalni ili bude onaj u kome se trenutno radi, tj. u gornjem primjeru
drugi direktorijumi, smješteni su u direktorijumima. knjiga/dio3/glava4.
Tipično stablo direktorijuma na Unix-u izgleda kao na slici na Promjena tekućeg direktorijuma se ostvaruje komandom cd, na
sledećoj strani. Vidimo da se fajlovi koji pripadaju korisnicimna obično primjer
smještaju u jednu oblast. Direktorijum sa imenom /usr sadrži po jedan $ cd knjiga/dio3/glava4
poddirektorijum za svakog korisnika. tako da se, poslije izvršenja ove komande, fajl može navesti samo kao
Svaki korisnik ima polazni direktorijum (home directory) u koji poglavlje2.
smješta lične stvari, poštu i drugo. Kad se prijavimo, Unix započinje rad Promjena direktorijuma nadolje u sistemu je jednostavna jer
u našem direktorijumu. Pošto Unix sistem ima puno korisnika koji dijele treba samo navesti ime direktorijuma. Promjena direktorijuma nagore,
prostor na disku i fajlove, potrebno je obezbijediti sigurnost od pak, zahtijeva poznavanje potpunog imena putanje željenog
uništavanja tuđega rada. Za to služi bezbjedonosni sistem, tj. dodjela direktorijuma. Ono se može odrediti pomoću komande pwd koja daje
prava pristupa o kojoj će biti riječi kasnije. apsolutnu putanju tekućeg direktorijuma. Ova komanda nema
argumenata, na primjer
$ pwd
/usr/knjiga/dio3/glava4
Rad sa sistemom fajlova Sada možemo koristiti komandu cd za promjenu tekućeg radnog
direktorijuma, na primjer
Hijerarhijska organizacija fajlova Unixa predstavlja važnu $ cd /usr/knjiga/dio3/glava1
pretpostavku za uredno održavanje i korišćenje velikog sistema fajlova. Ako se komanda cd navede bez argumenata, korisnik se vraća u
Kretanje kroz taj lavirint podrazumijeva dobro poznavanje komandi koje vlastiti polazni direktorijum, koji je na većini sistema poddirektorijum
su za to namijenjene. direktorijuma usr ili home. Pošto je struktura direktorijuma

40
dev { specijalni fajlovi za fizi~ke ure|aje: konzola, diskovi, {tampa~,... gdje komanda zamijenimo konkretnim programom Unixa o kojemu
želimo dobiti informaciju.

bin { izvr{ni programi, tj. standardne komande sistema Kreiranje i uklanjanje direktorijuma
Novi direktorijum se može kreirati pomoću komande mkdir:
biblioteka sistemskih rutina i podprograma: Podr{ka za
lib { Fortran i C, U/I podprogrami, sistemcki pozivi,... mkdir [opcije] <imedir>

sistemski podaci i programi kojima pristupa samo upravnik:


imedir - ime novog direktorijuma (apsolutni ili relativni pathname).
root etc { fajlovi sa lozinkama, prijave (login)
Nov direktorijum automatski postaje poddirektorijum tekućeg,
ukoliko se eksplicitno ne navede kompletna putanja do nekog drugog
privremeni fajlovi koje koriste razni sistemski programi: mjesta. Naravno, novi direktorijum se može kreirati samo u direktorijumu
tmp { editori, prevodioci, ma{inski jezik za koji korisnik ima pravo write.
Ako se opcija za promjenu prava pristupa ne zada, direktorijum
bin manje kori{}eni programi će automatski imati definisan pristup read, write i execute za korisnika, a
read i execute za grupu i ostale.
tmp manje kori{}eni privremeni fajlovi
Uklanjanje (brisanje) direktorijuma se vrši komandom rmdir,
dict liste rije~i, spellcheck
koja je analogna (ali nije ista) komandi rm.
usr
lib manje kori{}ene biblioteke rutina i podprograma
rmdir [opcije] <imedir>
imedir - ime direktorijuma koji se briše; on mora biti prazan.
man { priru~nik operativnog sistema Unix
Primjer:
at vremenski programirani procesi
spool $ pwd
lpd direktorijum {tampa~a
/usr/teacher
user1 (st1) korisni~ki direktorijum
$ ls -la
home
user2 (st2) korisni~ki direktorijum total 5
drwxr-xr-x 2 teacher class 512 Jul 18 08:12 .
zamršena, cd i pwd su najčešće korišćene komande Unixa.
drwxrwxr-x 5 root root 2048 Jul 1 13:14 ..
$ rmdir teacher
Dobijanje helpa o komandama sistema
rmdir: teacher: Directory does not exist
Za dobijanje informacija o komandama sistema služi komanda $
man. Opšti oblik je: U gornjem primjeru imamo dva fajla, . (tačka) i .. (dvije tačke).
$ man komanda Sjetimo se da se oni odnose na tekući radni direktorijum i na roditeljski
direktorijum. Oni se ne mogu brisati:
41
$ rmdir . članovi vlasnikove grupe. Vlasnik fajla ima pravo da vlasništvo nad
fajlom i pripadnost grupi promijeni po svom nahođenju. U Linuxu se
rmdir: .: Can't remove current directory or .. promjena vlasništva vrši pomoću komande chown (od change owner).
$ Potrebno je samo da se navede ime novog vlasnika fajla i ime (ili imena)
fajlova kojima se mijenja vlasnik.
Prava pristupa
Prva kolona rezultata naredbe ls -l (izlistavanje sadržaja
U višekorisničkom sistemu treba obezbijediti privatnost podataka
direktorijuma) daje podatke o dozvolama pristupa. Prvo slovo je oznaka
jednog korisnika u odnosu na druge, sem administratora koji uvijek ima
tipa: - za običan fajl, d za direktorijum, l za simboličku vezu. Sljedeća tri
pravo pristupa svim podacima. Ukoliko se drugačije ne uredi, korisnik
ima potpuni pristup do svojih fajlova, ograničen pristup do nekih slova su rwx za korisnika (gdje crtica označava da pravo nije
sistemskih fajlova a nema mogućnost pristupa fajlovima ostalih odobreno), zatim rwx za članove grupe, i konačno rwx za sve ostale
korisnika. korisnike.
UNIX prije svega definiše vlasnika za svaki fajl. Kada kreirate fajl Prava čitanja i pisanja za fajlove su očigledna iz samih naziva.
ili ga odnekud kopirate, vi (odnosno vaše korisničko ime) ste njegov Pravo izvršavanja znači da će shell prihvatiti ime fajla kao ime naredbe i
vlasnik. Kad se izvrši naredba ls -l, u trećoj koloni su navedena imena pokušati da je izvrši, utvrđujući prije toga da li je u pitanju skript (i koji
vlasnika. Sem toga, svaki korisnik pripada nekoj grupi, koja je navedena program je potreban za njegovo izvršavanje) ili mašinski program
u četrvtoj koloni. (binarni fajl).

Prava pristupa fajlovima predstavlaju zaštitu od neovlašćenog Prava pristupa direktorijumima su organizovana na sličan način
čitanja i pisanja. Fajlovi se čak mogu zaštititi i od samog njihovog kao za fajlove. Napomenućemo samo nekolike razlike.
vlasnika, što se ponekad i radi da bi se spriječilo nenamjerno brisanje. read - pristup direktorijumu znači da korisnik može da pročita sadržaj.
Samo korisničko ime koje je vlasnik fajla ima pravo da mijenja Pravo čitanja (r) znači da možemo izvršiti naredbu ls radi dobijanja liste
prava pristupa za fajl (ili direktorijum). Prava pristupa su razvrstana u tri fajlova u tom direktorijumu, ali ne možemo izvršiti ls -l, tj. dodatne
kategorije: atribute. Da bi odradili ls -l treba nam i pravo čitanja i izvršavanja (rx).
r (read) čitanje i kopiranje write - korisnik može brisati i dodavati fajlove u sadržaj direktorijuma.
w (write) pisanje, modifikovanje, brisanje Pravo pisanja (w) u direktorijumu je zapravo pravo izmjene
direktorijuma, a to znači ne samo izmjena nego i brisanje. Ovo treba
x (execute) izvršavanje (korišćenje fajla kao komande) naglasiti: pravo pisanja u direktorijum vam omogućava da uništite fajl
a grupe korisnika su: iako nemate pravo da mu pristupite ili da upisujete u njega - sve što će
naredba rm učiniti je da vas upita da li to zaista želite da uradite.
u (user) korisnik (vlasnik)
execute - izvršavanje direktorijuma nema smisla, pa ovu opciju možemo
g (group) grupa, tj. korisnici iz iste grupe shvatiti kao dozvolu da se direktorijum "pređe". To znači da pravo
o (other) ostali izvršavanja (x) omogućava da uradimo cd u dati direktorijum, ali ne i ls.
Pravo izvršavanja direktorijuma je takođe potrebno da bi mogli čitati,
Ovo su samo osnovne varijante, ali dovoljne za praktično sve što pisati i izvršavati bilo koji fajl u tom direktorijumu (ukoliko imamo takvo
korisnik radi. pravo za dati fajl).
Korisnik je vlasnik fajla, grupa je grupa kojoj je korisnik pripadao
u vrijeme stvaranja fajla, a ostali su svi korisnici koji nijesu ni vlasnici niti
42
Pravo x za direktorijum znači da korisnik može da navede ime Sada će prava pristupa biti:
direktorijuma u nekoj komandi. To ne mora biti eksplicitno navođenje,
rwxr-xr-x
pošto shell izvodi apsolutni pathname komande iz korisničkog
okruženja. Na primjer, shell zna da je puni pathname komande ls Ako želimo postaviti nekolike zaštite odjednom, koristićemo znak
/bin/ls. Korisnik mora imati pravo x za direktorijum bin da bi se izvršila =. Na primjer, opcije r i x za korisnika biće postavljene sa:
komanda ls. $ chmod u=rx fajl1
Tipični oblik prava pristupa je:
Ukoliko želimo da svima damo pneka prava, koristićemo opciju a (od
rwxr-xr-x all). Na primjer, ako hoćemo da svima damo mogućnost da čitaju fajl
obavjestenja, unosimo:
tj., korisnik ima dozvole rwx, članovi korisnikove grupe xr i svi ostali x.
Efekat ovoga je da svako može ispitivati, kopirati i izvršavati neki fajl, a chmod a+r obavjestenja
samo korisnik ga može i mijenjati. Promjena prava pristupa može se obaviti i pomoću oktalnih cifara
Promjena prava pristupa (0-7), koje su binarno predstavljene sa:
Za promjenu prava pristupa fajlu ili direktorijumu koristi se Oktalni Binarni Odgovara pravu pristupa
naredba chmod. 0 000 ---
chmod <pristup> <fajl1[fajln]> 1 001 --x
pristup - dozvola pristupa 2 010 -w-
fajl1[fajln] - jedan ili više fajlova kojima se mijenja pravo pristupa
3 011 -wx
Pristup se može izraziti na jedan od dva načina:
4 100 r--
- slovima: [ugo] [+-=] [rwx]
5 101 r-x
- brojevima: [0-7] [0-7] [0-7]
6 110 rw-
Pogledajmo prvo promjenu pristupa slovima. Slova u, g i o znače
korisnik, grupa i ostali, respektivno. Znak + znači dodavanje prava 7 111 rwx
pristupa a znak - oduzimanje tog prava. Znak = znači da se pristupi Vidimo da cifra 1 u binarnom broju odgovara odobravanju
postave kako je naznačeno, pri čemu slova r, w i x znače isto što i odgovarajućeg prava, dok cifra 0 znači da pravo nije odobreno. Da bi
ranije. promijenili prava iz prethodnog primjera, unesimo:
U cilju ilustracije, kreirajmo fajl sa imenom fajl1, koji je imao $ chmod 755 fajl1
prava pristupa:
Prva oktalna cifra daje korisniku prava r, w i x; druga cifra daje
rw-rwxrwx grupi prava r i x, kao i zadnja cifra svima ostalima.
i želimo da (korisniku) dodamo pravo izvršavanja, a ostalima oduzmemo Suvišno je napominjati da je promjena prava pristupa nekom fajlu
pravo čitanja. Komanda je: rezervisana za njegovog vlasnika, jer bi inače bezbjednost bila potpuno
$ chmod u+x,g-w,o-w fajl1 narušena.
43
Prikazivanje sadržaja direktorijuma file [opcije] <fajl1[fajln]>
Ova funkcija ostvaruje se pomoću komande ls. Opšti oblik komande je: fajl1[fajln] - jedan ili više fajlova koji se analiziraju.¦
ls [opcije] [dir1[dirn]] Navešćemo nekoliko klasifikacija:
opcija ima veliki broj. Za kompletnu listu treba konsultovati man. Engleski tekst, ASCII tekst, tekst programa C, podaci, direktorijum,...
dir1[dirn] - jedan ili više imena direktorijuma¦ Primjeri:
Opcija -a će učiniti da se prikažu skriveni (inicijalizacioni) i svi ostali $ file test
fajlovi. test: direktorijum
Opcija -C prikazuje fajlove u više kolona.
$ file mail
Opcija -F dodaje znak na kraju svakog prikazanog imena:
mail: podaci
Opcija -R rekurzivno izlistava sadržaj direktorijuma i svih njegovih
Prema konvenciji, fajlovi koji počinju sa tačkom (.) nazivaju se
poddirektorijuma.
inicijalizacioni ili skriveni fajlovi. Oni vaše okruženje opisuju shell-u.
/ označava direktorijum Ponekad se zovu i dot fajlovi.
* označava izvršni fajl. Imena direktorijuma . (tačka) i .. (tačka tačka) mogu se koristiti
kao argumenti u komandama. Na primjer:
blenk označava obični fajl
$pwd
Opcija -l daje detaljne informacije o fajlovima u direktorijumu, uključujući:
tip fajla (direktorijum, block specijalni, karakter specijalni, simbolične /user/nastavnik
veze, ili obični fajl); prava pristupa; broj veza; vlasništvo; grupu kojoj $cd ..
pripada; veličinu u bajtima; datum i vrijeme zadnje promjene; ime fajla.
$pwd
Ako se ne navede argument imefajla, ls daje informacije o tekućem
direktorijumu. Na primjer: /user

$ ls $

ili, ako želimo više informacija: Vidimo da je tekući direktorijum sada onaj koji je ranije bio roditelj.
Korišćenje ovih imena može biti praktično pri zadavanju argumenata.
$ ls -l Naime, tekući direktorijum i njegov roditelj mogu se specificirati bez
navođenja apsolutnog imena putanje.
Ovi primjeri pokazuju komandu ls bez argumenta, tako da se koristi
default vrijednost (tekući direktorijum). Argument se može navesti u Prikazivanje fajlova
apsolutnom ili relativnom obliku. Prikazivanje sadržine fajla na ekranu je veoma jednostavno i vrši
se komandom cat. Ako se desi da je fajl predug da bi stao na jedan
ekran, mogu se koristiti preostala dva programa more i pg.
Klasifikacija fajlova
Komanda cat ima oblik:
Komanda file klasifikuje fajlove prema njihovom sadržaju. Oblik je:
cat [opcije] [fajl1[fajln]]
44
opcije - vidi man Kopiranje, premiještanje, brisanje i linkovanje fajlova
fajl1[fajln] - ime jednog ili više fajlova Korisnik može napraviti kopiju fajla ako ima pristup read. Za ovo
se koristi komanda cp:
Ako se ne navede ime fajla, cat će čitati sa standardnog ulaza. Na
primjer: cp [opcija][fajl1[fajln]] [cilj]
$ cat fajl1[fajln] - jedan ili više izvornih fajlova
Ovdje će se sve sa tastature prikazati na monitoru. Ako se komandi cat cilj - odredišni fajl ili direktorijum
doda argument, taj fajl će se prikazati na monitoru. Na primjer: opcija: -r služi za rekurzivno kopiranje; -i uključuje interaktivni režim u
$cat main.c¦ kojem će se u konfliktnim situacijama tražiti od korisnika potvrda ili
odustajanje; -p obezbjeđuje da se fajl kopira sa istim pravima pristupa, a
Ako želimo na ekranu prikazati nekoliko fajlova, njihova imena se
ako se ne navede uzmu se default vrijednosti.
navedu razdvojena blenkom. Na primjer:
$ cat main.c main.f fajl1 i cilj ne mogu biti isti, a ako je cilj neki drugi postojeći fajl,
njegov sadržaj će biti uništen. Ako je cilj direktorijum, sadržaj izvornih
U slučaju potrebe za prikazivanjem fajla ekran po ekran koristi se fajlova će biti kopiran u njega.
komanda pg, oblika: Primjer:
pg [opcije] [fajl1[fajln]] $cp budzet.jan budzet.feb
opcije - možemo navesti broj sa predznakom + (-) koji, praćen blenkom, Kopija fajla budzet.jan će se preimenovati u budzet.feb. Ako
označava koliko ekrana unaprijed (unazad) hoćemo da "preskočimo" pri budzet.feb već postoji, učitaće preko njega. Napomenimo da je
prikazivanju.
komanda cp nedestruktivna, jer izvorni fajl ostaje nepromijenjen.
Komanda more je slična komandi pg, ali ima manu što se ne
$cp fajl1 fajl2 /user/nastavnik
možemo vratiti unazad na djelove teksta koji su već prikazani.
U ovom primjeru, kopije fajlova fajl1 i fajl2 šalju se u direktorijum
Za prikazivanje kraja fajla, bez prikazivanja njegove kompletne
/user/nastavnik.
sadržine, koristi se komanda tail:
Korisnik može premjestiti fajl samo ako ima pristup write. To se
tail [opcije] [fajl1]
radi komandom mv, koja može poslužiti i za preimenovanje fajla.
Ova komanda po defaultu prikazuje zadnjih deset redova, a može
mv [opcija] [fajl1[fajln]] [cilj]
se zadati opcija -N za prikazivanje zadnjih N redova. Tako komanda:
fajl1 i cilj ne smiju biti isti, a ako je cilj neki fajl, njegov sadržaj biće
$ tail memo uništen.
prikazuje zadnjih 10 redova fajla memo. $mv contest memo
Navedeni programi primjenjivi su za fajlove sa tekstom, ali su Ovom komandom mijenjamo ime fajla contest u memo. Prava
beskorisni za fajlove koji nemaju ASCII znakove i one koji nemaju pristupa ostaju ista. Ova komanda je destruktivna, jer stari fajl više ne
tekstualni karakter. postoji.

45
Komandom mv fajlovi se mogu premjestiti iz jednog $ rm memo tdata
direktorijuma u drugi:
$ ls
$mv fajl1 fajl2 /user/nastavnik
subdir
Fajlovi fajl1 i fajl2 su poslati u direktorijum /user/nastavnik, i više
ih nema u tekućem direktorijumu. Kad se fajl premjesti, vlasnik ostaje
isti. Fajl se može nalaziti u više različitih direktorijuma. Broj
Za uništavanje (brisanje) fajla ili grupe fajlova koristi se komanda direktorijuma u kojima se može nalaziti jedan fajl je proizvoljan, pri čemu
svaka verzija fajla može imati drugo ime. Nova veza fajla i nekog
rm. Brisanje fajla zahtijeva pravo write u sam direktorijum, ali ne
direktorijuma se može ostvariti komandom ln (link), oblika:
zahtijeva ni write ni read za sami fajl. Komanda ima oblik:
$ln staroime novoime
rm [opcije] [fajl1[fajln]]
Imena staroime i novoime predstavljaju putanje, bilo apsolutne ili
opcije: -r rekurzivno uništavanje; -i intearktivni rad,... relativne. Formiranje višestrukih veza je posebno pogodno u slučajevima
fajl1[fajln] - jedan ili više fajlova koji se brišu kada više korisnika želi pristup zajedničkim podacima. Pri tome je važno
napomenuti da struktura direktorijuma mora biti hijerarhijska, tako da se
Primjer: ne mogu formirati višestruke veze direktorijuma, već samo običnih
$ ls fajlova.
memo Formiranjem novih veza ne formiraju se nove kopije fajlova, već
se ime fajla pojavljuje kao element više direktorijuma. Bilo koja promjena
tdata fajla manifestovaće se i u svim ostalim verzijama fajla.
subdir Primjer: Zamislimo da dva autora rade na istoj knjizi. Poglavlje se nalazi
$ rm memo u Markovom direktorijumu /usr/marko/knjiga, a hoćemo da i Vlado ima
pristup fajlu poglavlje2, da ne bi svaki put morao da kuca cd
$ ls /usr/marko/knjiga. Zato u svom direktorijumu /usr/vlado/knjiga on
tdata napravi vezu pomoću komande:
subdir ln /usr/marko/knjiga/poglavlje2 poglavlje2.v
Vidimo da je fajl memo izbrisan iz tekućeg direktorijuma. Unix neće dati nikakvu poruku osim novoga prompta, ali je ipak napravio
vezu, tj. novo ime postojećem fajlu poglavlje2, koji se sada pojavljuje u
Više fajlova se može izbrisati navođenjem njihovih imena direktorijumu /usr/vlado/knjiga pod imenom poglavlje2.v. i Unix će oba
razdvojenim blenkom. fajla ubuduće smatrati ravnopravnim.
$ ls Napomena: U našem sistemu, na vježbama ćemo umjesto /usr/marko i
memo /usr/vlado koristiti imena direktorijuma /home/st1, /home/st2, ...
tdata Da bi obrisali vezu, koristimo istu komandu rm kao za brisanje
fajla, pri čemu rm ustvari briše samo vezu. Tako, ako sa rm uklanjamo
subdir
fajl koji ima samo jedno ime (vezu), taj fajl biva obrisan. Kad to radimo
sa fajlom koji ima više imena (veza), komanda će obrisati zadato ime
46
(vezu), ali će fajl ostati nepromijenjen zajedno sa svim ostalim vezama Štampanje fajlova
koje eventualno ima.
[tampanje fajlova može se izvršiti usmjeravanjem izlaza
I vezi možemo promijeniti ime, i to komandom mv. Ako, na komande cat na štampač, ali se ovo rijetko koristi. Obično se ova
primjer, Vlado odluči da dio knjige ima ista imena na oba mjesta, to će operacija vrši komandom lp:
uraditi sa:
lp [-d<odrediste>] [-n<broj>] [fajl1[fajln]
mv poglavlje2.v poglavlje2
odrediste - ime štampača (ako ih ima više); postavlja ga administrator
Komandu mv možemo koristiti i za pomjeranje fajla u neki drugi
direktorijum. broj - broj kopija (po defaultu je 1)
fajl1[fajln] - jedan ili više fajlova za štampanje
Pomoću komande ln može se napraviti veza za veći broj fajlova.
Pri tome se koriste imena koje fajlovi već imaju, samo se naznači Ako je dat nalog za štampanje više fajlova, štampanje se obavlja
direktorijum u koji želimo da stavimo sve te nove veze. Tako, na primjer, po redosljedu njihovog navođenja.
ako hoćemo da za sve fajlove iz direktorijuma /usr/marko/knjiga
$ lp printdat
napravimo vezu sa direktorijumom /usr/vlado/knjiga, to ćemo uraditi
komandom: smješta fajl printdat u red za štampanje i daje identifikacioni broj tog
zahtjeva (request ID).
ln /usr/marko/knjiga/* /usr/vlado/knjiga
Znatiželjni korisnici mogu da dobiju informaciju o tome dokle se
Sada se svaki fajl iz originalnog direktorijuma nalazi i u odredišnom
stiglo sa izvršavanjem njihovog zahtjeva. Za informacije o zahtjevima za
direktorijumu. To možemo provjeriti komandom ls u odredišnom štampanje kao i za njihovo poništavanje služe naredbe lpstat i cancel.
direktorijumu. Njihovo korišćenje ilustrovaćemo jednim primjerom:
Napomenimo da komanda ln u prethodnom primjeru povezuje $ lp pogresni_fajl
sve fajlove koji u tom trenutku postoje u /usr/marko/knjiga. Ukoliko
dodamo nove fajlove, bilo u izvornom bilo u odredišnom direktorijumu, request id is Lprt0-106 (1 file)
oni se neće automatski povezati sa drugim direktorijumom. To moramo $ lp ispravni_fajl
uraditi naknadno, po istom postupku. Komanda će nas obavijestiti da je
većina fajlova iz dva direktorijuma već identična i napraviti veze za nove request id is Lprt0-107 (1 file)
fajlove. $ lpstat
Ovakve veze važe za fajlove koji se nalaze na istom sistemu (tj. Lprt0-106 petar 51923 Jun 12 10:27 on Lprt0
na istom disku ili particiji), i ne važe za fajlove iz različitih sistema. U
Linux-u ima nešto što se zove soft link (meka veza). One omogućavaju Lprt0-107 petar 79677 Jun 12 10:27
da koristimo dva ili više imena za isti fajl ali, za razliku od regularnih (ili $ cancel Lprt0-106
tvrdih) veza hard links, Unix ih ne smatra pravim imenima fajlova.
Naime, ako se ovaj fajl obriše u originalnom direktorijumu, nestaće je i u request "Lprt0-106" cancelled
odredišnom direktorijumu. U slučaju meke veze, komanda je ista kao $
ranije samo se doda opcija -s, na primjer, u direktorijumu
/usr/vlado/knjiga unesemo: Poslije slanja dva zahtjeva za štampanje, korisnik je uočio da je
u prvom zahtjevu unio pogrešno ime fajla. Poslije komande lpstat vidimo
ln -s /usr/marko/knjiga/poglavlje2 poglavlje2.v da je prvi zahtjev za štampanje počeo da se izvršava na štampaču
47
Lprt0. Komandom cancel poništen je prvi zahtjev, ali će se odštampati Ako hoćemo da pretraživanje počne od root direktorijuma, u prethodnom
jedan dio (u zavisnosti od brzine štampača, itd). primjeru ćemo tačku zamijeniti kosom crtom (/).
Ukoliko se više korisnika prijavi za štampanje, za obrađivanje Ako znamo da se fajl nalazi u nekom poddirektorijumu
pojedinih zahtjeva može trebati neko vrijeme. Zato se opcijom -w nalaže direktorijuma /usr/marko, pretraživanje ćemo početi od njega. Možemo
da se korisnik obavijesti kad se njegov zahtjev obradi. Ako se korisnik u pretražiti i više polaznih direktorijuma. Na primjer,
međuvremenu odjavi sa sistema, poruka se šalje preko sistema pošte $ find /usr/marko /usr/vlado -name trig -print
(mail). Slanje poruke preko pošte može se ostvariti i ako korisnik nije
odjavljen, pomoću opcije -m. Ako znamo samo dio imena fajla, možemo koristiti džokere. Ako
u imenu fajla koristimo džokere * ili ?, imena fajla stavljamo pod znake
Komandom navoda, da interpreter ne bi protumačio da pretraživanje želimo samo u
$ lpstat -a all tekućem direktorijumu. Na primjer,
može se dobiti spisak dostupnih štampača. $ find / -name "budzet*" -print
traži po cijelom disku fajlove čija imena počinju sa budzet.
Traženje fajlova Pored izgubljenih fajlova, možemo tragati i za izgubljenim
direktorijumima. Za to služi opcija type d u komandi find. Na primjer, da
U komplikovanom stablu direktorijuma lako se može desiti da se bi pretražili disk u cilju nalaženja direktorijuma čije ime počinje sa
neki fajl "izgubi". Za njegovo nalaženje služe komande find i grep. budzet, služi naredba
Vjerovatno nema korisnika koji nije došao u situaciju da zna ime $ find / -name "budzet*" type d -print
fajla, recimo trig, a da ne zna direktorijum u kom se on nalazi. Tada se
koristi komanda find, koja omogućava pretraživanje cijelog stabla Kad pronađemo fajl(ove) koje smo tražili, sa njima možemo
direktorijuma i pronalaženje svih fajlova koji odgovaraju datom opisu. uraditi još nešto osim ređanja njihovih imena. Tako, umjesto da
Opšti oblik je koristimo opciju -print možemo koristiti opciju -exec. Ona govori komandi
find da svaki put kad pronađe fajl izvrši neku komandu shell-a. Na
$ find putanja uslovi primjer,
putanja označava direktorijum od koga počinje pretraživanje (biće $ find . -name "izvjestaj*" -exec lpr š ć ";"
pretraženi i svi poddirektorijumi), a uslovi predstavljaju skup bližih
odrednica kojima se opisuju karakteristike fajla koje čine ključ za Ovim činimo da, svaki put kad se pronađe fajl čije ime počinje datim
pretraživanje. Uobičajeno je da se radni direktorijum navodi kao (.) a stringom, aktiviramo komandu lpr i zamijenimo znake š ć imenom fajla.
njegov roditelj kao (..), ukoliko se ne želi uvođenje apsolutne putanje. Znak ; označava kraj komande Unix-a, a znake navoda moramo navesti.

Najjednostavniji slučaj potrebe za komandom find je kada je Opciju -exec možemo koristiti uz skoro svaku komandu, tako da
poznato ime fajla ali ne i putanja do njega. Naredba pronađene fajlove možemo odštampati, premjestiti, obrisati ili kopirati.
Ako umjesto -exec koristimo opciju -ok, radimo praktično istu stvar, ali
$ find . -name trig -print uz malu varijaciju. Naime, prije nego se komanda izvrši od nas će tražiti
vrši pretraživanje tekućeg direktorijuma i njegove poddirektorijume u cilju potvrdu (y/n).
nalaženja fajla trig. Odrednica -print čini da se, svaki put kad se nađe fajl U slučaju da se ne sjećamo imena fajla, ali znamo dio njegovog
pod tim imenom, na ekranu prikaže kompletna putanja do njega. Ako sadržaja poslužiće nam komanda grep (od global regular expression
hoćemo da zaustavimo dalje pretraživanje, koristimo Ctrl+C ili taster Del. and print). Ova komanda gleda unutar fajlova i traži željeni string. Svaki
48
put kad ga pronađe, red koji ga sadrži prikaže na ekranu. Ako pretražuje Poređenje fajlova
više od jednog fajla, grep daje i ime fajla u kojem postoji zadati string. U
koje fajlove će da zagleda i koje znake će da traži propisuje korisnik. Poslije dugog rada na računaru stvori se hrpa fajlova. ^esto će
Potražimo, na primjer, string ul. Slobode 15 u svim fajlovima mnogi od njih biti identične ili približne kopije. Zato je ponekad korisno
radnog direktorijuma: uporediti dva fajla da bi dobili uvid u njihovu sadržinu (razliku). Za
$ grep "ul. Slobode 15" * upoređivanje sadržine fajlova postoje komande diff (pogodna za
što daje spisak pronađenih redova, recimo: interaktivni rad jer joj je izlaz lakši za razumijevanje i čitanje) i cmp
ts.doc: ul. Slobode 15 treci sprat (pogodnija za računarsku obradu jer ima izlaz numeričkog tipa; zato se
marko.pismo: ul. Slobode 15 pasaz koristi u shell programima).
Komandom grep možemo raditi mnoge stvari, jer je veoma Komanda diff vrši upoređivanje fajlova red po red, pokušavajući
moćna i fleksibilna. Mi ćemo ovdje navesti samo neke opcije. Ako želimo da utvrdi gdje se nalaze zajedničke osnove. Podudarnost redova teksta
samo imena fajlova, a ne i pronađene redove, koristićemo opciju -l. Ako se daje u obliku algoritma, što zapravo znači da komanda diff govori
želimo reći komandi grep da ne pravi razliku ilmeđu velikih i malih slova, korisniku šta treba da uradi sa prvim fajlom da bi postao identičan
koristimo opciju -i (skraćeno od ignore case). Komandu grep možemo drugom. Na primjer
koristiti tako da se prema tekstualnim fajlovima ponaša kao prema nekoj $ diff fajl1 fajl2
vrsti baze podataka. daće instrukcije kako da promijenimo fajl1 da bi postao identičan sa
fajl2. Instrukcije se daju pomoću brojeva redova i naredbi a (dodaj), d
Sortiranje fajlova (briši) i c (promijeni). Poslije svake instrukcije slijedi skup redova na koje
se ona odnosi. Tekst koji pripada fajlu fajl1 označava se sa <, a fajl2 sa
Za uređivanje redova teksta po određenom redu služi program znakom >.
sort. U najjednostavnijem obliku poziva se na sljedeći način: Program za poređenje cmp je prostiji od programa diff. Oblik
$ sort ulazdat > izlazdat komande je sličan:
Uređivanje se vrši vrši u skladu sa ASCII nizom znakova što znači da se cmp fajl1 fajl2
slovauređuju po abecednom a brojevi po rastućem redu. ASCII skup Ako je sdaržaj ova dva fajla isti, neće se pojaviti nikakva poruka. Ako je
znakova sadrži ne samo slova i brojeve već i specijalne i interpunkcijske različit, cmp nam govori dokle je stigao unutar fajlova prije nego što je
znake, tako da se i oni sortiraju. pronašao nešto što se razlikuje. Pomoću ove komande mogu se porediti
Sortiranje može da se vrši po različitim kriterijuma. Moguće je fajlovi nezavisno od njihove prirode (tekstualni, programi, baze
sotriranje na način "rječnika", što znači da se ignorišu svi znaci izuzev podataka,..).
slova, brojeva i blenkova. Takođe, može da se ignoriše razlika između
velikih i malih slova kao i bjeline (razmak i tabulatori). Mogu da se
eliminišu identične linije, a sortiranje je moguće i u obrnutom redu. Sve
Ostali programi opšte namjene
ove mogućnostio ostvaruju se pomoću brojnih opcija komande sort. Na
primjer, komanda: Informacija o veličini fajla
$ sort -ubdrf ulazdat > izlazdat
vrši "rječničko " sortiranje fajla ulazdat (opcija d) u obrnutom redu (r), pri Veličina fajla predstavlja podatak koji je često interesantan za
čemu se ignorišu razmaci i tabulatori (b) i eliminišu svi dupli redovi (u). korisnika. Ona može da se iskaže na dva načina: za tekstove to je broj
Velika i mala slova se ne razlikuju (f). Komanda sort je veoma moćna i redova, riječi i znakova, za podatke i izvršne programe to je prostor koji
može da posluži za vrlo fino sortiranje. Za sve opcije vidjeti man. fajl zauzima na disku.
Za tekstualne fajlove veličina se može odrediti komandom wc,
koja daje broj redova, riječi i znakova. Ukoliko se kao argument zada
49
više fajlova, daje se informacija o veličini pojedinačnih fajlova, kao i Komprimovanje fajlova
zbirna informacija.
Bez obzira na vrstu fajla, komanda du daje veličinu prostora koji Zajednički problem za sve Unix-ove sisteme je hronično
oni zauzimaju na disku. Zauzeti prostor prikazuje se u jedinicam od 512 pomanjkanje prostora na disku. U UNix-u postoji par programa koji
bajtova ili u blokovima, koji u zavisnosti od sistema, mogu biti 512 ili mogu da ublaže ovaj problem - compress i pack. Oni služe za
1024 bajtova. Komanda du može da se primijeni i na direktorijum, kada komprimovanje fajlova tako da zauzmu manje prostora na disku. Ovakve
daje veličinu koju zauzimaju svi njegovi poddirektorijumi. Sa opcijom -a ih, naravno, ne možemo koristiti dok ih ponovo ne "raspakujemo". Tako,
daje se veličina svakog fajla u direktorijumu i svim poddirektorijumima. na primjer, komandom
Da bi saznali koliko je prostora ostalo neiskorišćeno na disku (disketi) $ compress -v izvjestaj.doc
možemo saznati komandom df. komprimujemo fajl izvjestaj.doc (opcija -v znači da se traži izvještaj o
veličini sačuvanog porostora). Fajl će biti zamijenjen drugim sa istim
Vremenski zavisni programi imenom i dodatkom .Z. Da bi komprimovani fajl vratili u prvobitno stanje,
koristi se komanda uncompress:
Pošto se u Unixu vrijeme raspodjeljuje na više korisnika, $ uncompress izvjestaj.doc.Z
nezamisliv je rad bez časovnika. Korisnici časovnik sistema mogu da Ovim se odbacuje fajl izvjestaj.doc.Z i ponovo pravi originalni fajl
koriste za informaciju o vremenu i za izvršavanje procesa u određeno izvjestaj.doc.
vrijeme. Na potpuno identičan način možemo koristiti i komande pack i
Obično se informacija o vremenu (i datumu) dobija komandom unpack.
date, a informaciju o vremenu koje je potrebno da se pojedina komanda Pored pomenutih, na mnogim Unix sistemima postoje i parovi
izvrši komandom time. Na primjer, poslije komandi zip i unzip, kao i gzip i gunzip, koji služe za istu svrhu kao i
$ time komanda gore pomenute komande.
sistem počinje sa izvršavanjem date komande uz praćenje vremena
njenog izvršavanja. Preusmjeravanje i prosljeđivanje
Korisnici mogu da zahtijevaju od sistema da izvrši određenu
aktivnost u određeno vrijeme. Za izvršenje ovakvih operacija služi Slično DOS-u, Unix kao standardni ulaz smatra tastaturu, a kao
komanda at, čiji je opšti oblik standardni izlaz monitor. Zato ćemo tastaturu označavati sa "standard
$ at vrijeme < fajl input" ili "stdin," a ekran sa "standard output" ili "stdout." Međutim, neki
fajl služi kao ulaz kad dođe vrijeme navedeno parametrom vrijeme. put je potrebno ulaz ili izlaz preusmjeriti negdje drugdje. Ovim se
Drugim riječima, fajl sadrži skup shell komandi kojke treba da se izvrše u povećava snaga pojedinih komandi.
određeno vrijeme. Da vidimo gdje se sve može preusmjeriti izlaz ili ulaz:
Vremenskim procesima upravlja sistemski program cron koji, s - na neki uređaj (recimo štampač)
vremena na vrijeme, pregleda tabele događaja. -u neki fajl
Komandom cal (skraćeno od calendar) možemo dobiti kalendar - u drugi program (ovo se naziva prosljeđivanje)
za tekući mjesec, ili za bilo koji mjesec i godinu, na primjer Napomenimo da su neki programi Unixa primarno projektovani
$ cal 1993 tako da kao standardni ulaz ne koriste tastaturu a kao standardni izlaz
$ cal 7 1996 ekran. Ove vrste programa nazivaju se filtri. Napomenimo, takođe, da
Prva komanda daje kalendar za cijelu 1993. godinu, a druga za sedmi se preusmjeravanje ne koristi za štampanje dokumenata ugrađenih u
mjesec 1996. godine. tekst procesorima ili programima za tabelarne proračune.

50
Preusmjerenje ulaza Moguće je iskoristiti komandu cat za kreiranje fajla i
unošenje teksta u njega pomoću preusmjerenja izlaza. To ćemo
Moguće je naložiti UNIX-u da podatke uzima iz nekog fajla
ilustrovati na sljedećem primjeru:
umjesto sa tastature, i to se naziva preusmjerenje ulaza. Da bi se
naznačilo da je ulaz komande došao iz fajla a ne sa tastature, koristi se $cat > fajl1
znak za preusmjerenje ulaza (<). Tako komanda poprima oblik: Ovo je jedan red teksta
komanda < ulazni-fajl1 Ovo je drugi red teksta.
gdje ulazni-fajl1 predstavlja fajl iz kojeg komanda dobija ulaz. (Ctrl-D)
Da bi lakše zapamtili značenje simbola <, primijetimo da on Ako sada provjerimo sadržaj fajla fajl1 sa
podsjeća na lijevak. Ako sipamo tečnost na širi kraj ona se kreće prema
užem. Ulazni fajl "sipa" svoj sadržaj u komandu o kojoj se radi. Na $cat fajl1
primjer: Vidjećemo njegov sadržaj:
$mail marko < izvjestaj Ovo je jedan red teksta
Fajl sa imenom izvjestaj biće poslat na ime marko. Komanda mail Ovo je drugi red teksta.
normalno očekuje da joj podaci dođu sa standardnog ulaza, tj.
tastature. Simbol za preusmjerenje čini da ulaz u mail dođe iz fajla po
imenu izvjestaj. Preusmjerenje izlaza sa dodavanjem
Preusmjerenje izlaza Da bi na postojeći fajl dodali sadržaj izlaza neke komande,
a da ne uništimo sadržaj postojećeg fajla možemo se poslužiti sa
Na sličan način, može se učiniti da se rezultat (izlaz) ne operacijom čiji je opšti oblik:
šalje na monitor već u neki specificirani fajl. Ovo se zove preusmjerenje
izlaza, i za njega se koristi simbol (>). Opšti oblik ove operacije je komanda >> izlazni-fajl1
komanda > izlazni-fajl1 Primjer:
sa značenjem adekvatnim prethodnom slučaju preusmjerenja ulaza. I $ls -l subdir >> listing
ovdje se možemo poslužiti analogijom sa lijevkom radi lakšeg pamćenja. $
Primjer: Ovim ćemo izlaz iz komande ls dodati fajlu listing, bez uništenja
$ls -l > listing njegovog postojećeg sadržaja. Ako takav fajl ne postoji, shell će ga
kreirati.
Izlaz komande ls neće se pojaviti na ekranu, već će biti
poslat u fajl po imenu listing. Ako takav fajl ne postoji, shell će ga Kao i ranije, moguće je dodati novi tekst na kraj postojećeg
kreirati, a ako već postoji biće upisani podaci preko starih podataka u fajla koristeći komandu cat. Na primjer:
njemu. $cat >> fajl1
Napomenimo da shell NEĆE dati upozorenje o uništavanju Ovo je sedma linija teksta.
sadržaja originalnog fajla pod tim imenom.
Ovo je osma linija teksta.
(Ctrl-D)
51
$cat fajl1 Izlaz iz komande man se obrađuje komandom pg prije nego se
pojavi na našem ekranu. Izlaz komande man će se normalno pojaviti na
Ovo je jedan red teksta
ekranu liniju po liniju, sve dok ne dođe do kraja. U ovom slučaju, izlaz se
Ovo je drugi red teksta. "kanališe" u komandu pg, tako da će se popuniti 23 linije ekrana i tu će
Ovo je sedma linija teksta. stati kako bi ga mogli pročitati.

Ovo je osma linija teksta. Procesi


Ako fajl ne postoji, biće kreiran i tekst dodat.
Vidjeli smo da u Windowsu 2000 možemo pokrenuti mnogo
programa istovremeno. Isto možemo uraditi i na svakom Unixovom
sistemu. Korisniku je omogućeno da zaustavi i ponovo aktivira programe
Preusmjerenje ulaza i izlaza i da se po želji prebacuje između različitih programa.
Pretpostavimo da radimo nešto što može potrajati i što računar
U istoj komandnoj liniji mogu se pojaviti i preusmjerenje može obaviti uz malo naše kontrole ili potpuno bez nje, kao što je
ulaza i izlaza: kopiranje velikih fajlova preko mreže. Nema razloga da sjedimo i
čekamo dok se taj proces završi-možemo raditi nešto korisno dok se
komanda < ulazni-fajl > izlazni-fajl1 ovaj proces odvija u pozadini. Ili, pretpostavimo da se nalazimo u sred
ulazni-fajl1 - daje ulaz komandi programa i da poželimo da uradimo nešto drugo: na primjer, pišemo neki
izvještaj i želimo da pogledamo pristiglu elektronsku poštu. Jedan način
izlazni-fajl1 - prima izlaz iz komande da to uradimo je da snimino fajl, napustimo program za unošenje teksta,
Primjer: pokrenemo program za elektronsku poštu, napustimo program za e-
mail, ponovo aktiviramo program za unošenje teksta, vratimo se na isto
$ cat command_file
mjesto u dokumentu i nastavimo tamo gdje smo stali. Vidimo da je ovo
p vrlo zametan i dosadan način obavljanja posla. Unix nam omogućva da
zaustavimo program za unošenje teksta, pokrenemo neki program (na
$ mail < command_file > result_file
primjer za e-mail), a zatim nastavimo sa radom u programu za unošenje
$ cat result_file teksta na istom mjestu. U stvari, možemo istovremeno da pokrenemo
programe za unošenje teksta i za e-mail i da se prebacujemo između
njih.
Pipes (kanali, cijevi) Sve što Unix radi obavlja se preko procesa. Kad se prijavimo
Izlaz iz neke komande može poslužiti kao ulaz u drugu sistemu, shell je proces; kad pokrenemo program za unošenje teksta, i
komandu pomoću simbola za "pipe" ( | ) bez upotrebe privremenih to je proces. Gotovo svaka komanda koju zadamo predstavlja proces.
fajlova. Opšti oblik komande je: Program i proces su slične stvari, ali ne sasvim iste. Proces je,
uglavnom, aktivni program. Ako istovremeno aktiviramo dva puta isti
komanda1 | komanda2 program, onda oni predstavljaju različite procese.
Primjer: Procesi sa nazivom demoni (daemons) skrivaju se u pozadini i
čekaju da uradimo nešto korisno, bez potrebe da se uplićemo u ono što
$man acct | pg se u pozadini odvija; na primjer, kad koristimo lp da nešto odštampamo.
Ako se neki proces zaglavi pa ne možemo da ga oporavimo, ne treba
isključivati računar već postupiti na način koji ćemo kasnije opisati.
52
Osnovni program koji služi za otkrivanje aktivnih procesa je ps ^esto se dogodi da pokrenemo neki program, pa tek naknadno
(process status). Detalji ovog programa se razlikuju za razne verzije shvatimo da će on potrajati duže nego što mislimo i poželimo da ga
Unixa. Za Linux, komanda ps daje nešto poput: pretvorimo u pozadinski. Upravljanje poslovima nam omogućava da se
PID TTY STAT TIME COMMAND predomislimo i nakon pokretanja programa. Za ovako nešto potrebna
1797 pp5 S 0:00 -bash nam je saradnja shell-a, a najpopularnije verzije tako nešto dozvoljavaju.
1855 pp5 R 0:00 ps Pretpostavimo, tako, da smo pokrenuli neki spori program u prednjem
Kolona PID daje identifikaciju procesa (Process IDentification dijelu jer nijesmo otkucali znak &. Ako se sjetimo da, umjesto čekanja,
number). Unix, naime, svakom procesu dodjeljuje jedinstveni broj kao možemo raditi nešto korisnije pritisnemo Ctrl+Z i shell bi trebalo da
identifikator. Kolona TTY daje spisak terminala sa kojih su procesi odgoivori porukom Stopped. To znači da je naš program zaustavljen, i
pokrenuti. Kolona TIME prikazuje vrijeme koje je računar proveo radeći možemo da uradimo tri stvari:
na tom procesu, dok COMMAND prikazuje naziv komande koja je • Da naložimo da program prosto nastavi sa radom u prednjem dijelu;
pokrenula dati proces. Ako je proces prvi za pojedini terminal, naziv to se radi komandom fg (od foregruond, prednji kraj).
komande počinje crticom. Kolona STAT pokazuje status procesa: R • Možemo da program gurnemo u pozadinu kucajući bg (od
znači aktivan (runnable), S znači uspavan (sleeping), D znači uspavan background, pozadina), čime navodimo program da se ponaša kao
bez mogućnosti prekida (uninterruptible sleep), T znači zaustavljen ili da smo ga u početku aktivirali sa &.
označen (stopped or traced), a Z znači da je proces zaustavljen. • Možemo ga ubiti (kill) ako odlučimo da ga nije trebalo ni pokretati.
Unix svaki pozadinski program koji pokrenemo naziva job
Programi u pozadini (posao). Posao može da se sastoji od nekoliko procesa. Kada pomoću
komande jobs ili prostim zaustavljanjem sa Ctrl+Z identifikujemo brojeve
Procedura za aktiviranje programa u pozadini je veoma aktivnih poslova, to nam može poslužiti da, uz komande fg, bg ili kill,
jednostavna. Poslije komande napravi se razmak i doda karakter &. obavimo odgovarajuće radnje. Posao na koji se komanda odnosi
Sistemski shell aktivira komandu i odmah se vraća kako bi od nas identifikuje se sa znakom % i brojem posla, pri čemo sa %% možemo
zatražio novu komandu. Odštampaće neki broj, koji predstavlja identifikovati tekući posao.
identifikaciju procesa (PID) dodijeljenog upravo aktiviranoj komandi (neki Ako želimo da sačekamo da svi pozadinski programi završe sa
shell će odštampati manji broj koji nazivaju broj posla (job number) i veći radom, to postižemo komandom wait. Ako postanemo nestrpljivi, wait
broj koji predstavlja PID). Napomenimo da broj posla možemo dobiti možemo prekinuti sa Ctrl+C ili Del; ovim se prekida samo komanda wait
komandom jobs, koja još daje i oznaku onoga posla koji se smatra a ne utiče se na pozadinske procese.
tekućim (znak +); to je, u stvari, onaj koji je poslednji pokrenut ili
zaustavljen. Ako znamo PID svog pozadinskog programa, možemo Editori
provjeriti njegovo stanje komandom ps. Ukoliko se umorimo od čekanja
pozadinskog programa, možemo ga eliminasti komandom kill uz znanje Editor vi
njegovog broja. Editor vi razvijen je na University of California, Berkeley.
Na ovaj način možemo pokrenuti proizvoljan broj programa, ali Prvobitno je uključen kao dio BSD Unixa. Prije njega, editor je bio ed,
se ne preporučuje preko 3-4 zbog usporavanja rada. Kad pozadinski veoma nepraktičan za upotrebu. Sljedeća verzija editora zvala se ex.
program obavi posao, većina shells obavijesti o tome. Pored ostalih prednosti u odnosu na ed, i,mala je i vizuelni način (visual
Ako znamo da će program uzeti mnogo vremena, sa njim mode) koji se aktivira komandom vi. To se toliko dopalo korisnicima, da
možemo koristiti komandu nice, koja nalaže programu da se "fino su praktično samo taj način i koristili. Programeri su kasnije uredili da se
ponaša", tj. da ne uzim a mnogo računarskog vremena kako bi drugi u njega može ući bez aktiviranja editora ex, i prosto ga nazvali vi.
programi mogli raditi brže. To je obično poželjno jer takav program
ionako mnogo traje. Za ovo je dovoljno prije komande navesti nice.
53
Editor vi nalazi se u radnom baferu. Kad ga startujemo, kopira j jedan red niže
fajl sa diska u radni bafer. Sadržaj na disku se ne mijenja do ponovnog
k jedan red naviše
snimanja.
l jedan znak naprijed
U editor se ulazi komandom:
Za pomijeranje kursora mogu se koristiti i strelice.
vi <fajl1>
file1 - ime fajla koji editujemo
Tekstualni mod
Kursor je na vrhu ekrana, a dno je rezervisano za neke poruke i
komandne aktivnosti. Ako fajl već postoji, na dnu mu se nalazi ime i neki Kad smo u komandnom modu, u tekst mod možemo ući sa
drugi podaci. Ako je fajl novootvoren, pored imena mu stoji "New file". nekoliko komandi. Kad jednom uđemo, sve što kucamo ulazi u naš
Na početku praznih redova stoji znak tilda (č). tekst, sve dok ne pritisnemo Esc.
Na početku je vi uvijek u komandnom modu, u kome su Za dodavanje teksta služe:
uobičajene aktivnosti: pozicioniranje kursora, unošenje tekst moda, I ulazak u tekstualni mod; tekst se javlja na početku tekućeg
pomijeranje, brisanje i kopiranje teksta, snimanje promjena i izlazak. reda.
Kad god želimo da se vratimo u komandni mod, ili nijesmo sigurni u
kojem smo modu, pritisnemo tipku Esc. i ulazak u tekstualni mod; tekst se javlja prije tekuće pozicije
kursora.
Pozicioniranje kursora
A ulazak u tekstualni mod; tekst se javlja na kraju tekućeg reda.
Vrši se pomoću komandi navedenih u nastavku. Ako se
komanda ne prihvati, kursor ostaje na starom mjestu. a ulazak u tekstualni mod; tekst se javlja poslije tekuće pozicije
kursora.
N+ pomijeranje za N redova naniže od tekućeg.
O ulazak u tekstualni mod; iznad tekućeg reda otvara se novi
N- pomijeranje za N redova naviše od tekućeg. red.
(Ret) Kursor ide na prvi znak u narednom redu. o ulazak u tekstualni mod; ispod tekućeg reda otvara se novi.
$ Prelazak na kraj tekućeg reda. Za promjenu teksta služe:
NG Prelazak kursora na red N. Po defaultu ide na zadnji red. R promijeni karaktere do pritiska na Esc
Ctrl-D prelazak na 1/2 ekrana naniže (11 linija) r promijeni jedan karakter na tekućoj poziciji kursora i vrati se u
Ctrl-U prelazak na 1/2 ekrana naviše (11 linija) komandni mod
Nw Kursor prelazi na prvi karakter riječi koja se nalazi na N riječi Za zamjenu teksta služe:
udaljena od tekuće riječi. Ns tekućih N znakova zamijeni sa znakom sve do Esc
Nb Kursor prelazi na prvi karakter riječi koja se nalazi unazad na
N riječi udaljena od tekuće riječi.
Brisanje teksta
e Prelazak na kraj tekuće riječi.
Napomena: Kao i u ranijim komandama, znak N označava broj koji u
h jedan znak unazad konkretnoj komandi treba ukucati da bi se postigao željkeni efekat. Broj
54
koji ukucavamo umjesto N je, naravno, proizvoljan i zavisi od potrebe b. Pomjeri kursor na novu lokaciju i postavi istrgnuti tekst na tu
korisnika. novu lokaciju.
Komande za brisanje su relativne u odnosu na tekuću poziciju c. Vrati kursor na originalni tekst i obriši ga.
kursora.
Ndd briše N redova, počev od tekućeg. Default je tekući red.
Vraćanje zadnje promjene
Ndw briše N riječi, počev od tekuće. Default je tekuća riječ.
Komanda Undo će poništiti zadnju komandu. Tako možemo
Nx briše N znakova, počev od tekućeg. Default je jedan znak povratiti tekst koji smo obrisali ili promijenili. Komande su:
D briše ostatak reda u - poništi zadnju komandu
U - povrati tekući red u oblik u kojem je bio prije početka promjena
Kopiranje teksta Ako obrišemo red a zatim promijenimo riječ, undo će povratiti
promijenjenu riječ ali neće povratiti obrisani red.
Kopiranje se vrši upotrebom para komandi "istrgni i postavi"
(yank and put). Najlakše se radi pomoću niza komandi: Spasavanje teksta poslije pada sistema
1. Istrgni riječ, red ili više redova. Kopija istrgnutog teksta se ^esto se pri padu sistema može povratiti tekst koji pri tome
sačuva ali se ne vidi, dok originalni tekst ostaje netaknut. ostane u baferu, i to se radi komandom:
2. Pomjeri kursor na željenu poziciju $ vi -r imefajla
3. Postavi kopiju na željeno mjesto. Ako se tekst povrati, to će biti novija verzija koja se nalazila u baferu.
4. Postavi kursor na naredni blik teksta koji želiš da kopiraš, i Snimanje teksta i izlazak
ponovi proceduru.
Komande za snimanje (write) teksta i izlazak (quit) unose se iz
Daćemo i neke komande za istrzanje i postavljanje teksta: tzv. moda zadnjeg reda, koji se dobija znakom (:) unešenim iz
NY istrgni N redova. Default je jedan red. komandnog moda.
Nyw istrgni N riječi. Default je jedna riječ. Za snimanje promjena bez izlaska, služi:
P postavi istrgnute redove iznad, ili ispred, tekuće pozicije :w
kursora. Ova komanda se prikaže na statusnoj liniji, a izvršava se pritiskom na
p postavi istrgnute redove ispod, ili iza, tekuće pozicije kursora. tipku Enter. Na statusnoj liniji se pojave i podaci o imenu fajla, broju
redova, itd. Bez opcija, radni bafer će se preseliti na disk. Ako namamo
dozvolu za upisuvanje na radni direktorijum, možemo kopirati bafer na
Pomijeranje teksta drugi fajl, na primjer
Pomijeranje teksta sa jednog mjesta na drugo može se izvršiti na :w /user0/rharding/temp
nekoliko načina, od kojih ćemo dati jedan:
Sad možemo izaći iz vi a da ne izgubimo ono što smo radili.
a. Istrgni željeni tekst.
Za izlazak iz vi bez snimanja zadnjih promjena, služi:

55
:q! Umjesto da ima dva režima rada, kao vi, emacs (editor macros)
se prema karakterima koje unosimo ponaša kao prema dijelu teksta.
Znak uzvika označava izlazak bez snimanja zadnjih promjena. Ako
Komande, pak, zadaju se obično kombinacijom Ctrl i nekog slova, ili Esc
izostavimo znak uzvika, editor će nas upozoriti da nijesmo snimili
i nekog slova. Da bismo unijeli tekst, samo počnemo kucanje i tekst će
promjene. Tada ćemo unijeti znak uzvika da izađemo iz vi.
biti unešen na poziciji kursora. Za pomijeranje kursora kroz tekst služe
Za snimanje i izlazak služi: kursorske strelice. Ukoliko to ne radi, važi:
:wq Ctrl+B - pomijeranje jedan znak nazad;
Poslije ovoga, pojavi se promp Shell-a ($) Ctrl+F - pomijeranje jedan znak naprijed;
Ostale komande Ctrl+P - pomijeranje u prethodni red;
Za snimanje fajla pod drugim imenom služi: Ctrl+N - pomijeranje u sljedeći red
:w novi fajl Ctrl+A - pomijeranje na početak reda;
Za unošenje sadržaja nekog drugog fajla, postavimo kursor na željeno Ctrl+E - pomijeranje na kraj reda;
mjesto i izvršimo:
Esc+< - pomijeranje na početak fajla;
:r filename
Esc+> - pomijeranje na kraj fajla;
Za unošenje izlaza neke komande Shell-a, postavimo kursor na željenu
Da bi se promijenio već unešeni tekst, jednostavno se dođe
poziciju i izvršimo:
kursorom na poziciju odakle treba početi izmjenu i ukuca novi tekst, dok
:r !shell-cmd se neželjeni tekst obriše. Za brisanje možemo postupiti na nekolika
Za izvršavanje komande Shell-a bez uključivanja u tekst fajl, izvršimo: načina:

:!shell-cmd - znak na kome se nalazi kursor briše se sa Ctrl+D;

Ovim možemo koristiti help (man) ili provjeriti sadržaj nekog drugog fajla - tekst od kursora do kraja riječi briše se sa Esc+D;
a da ne izlazimo iz vi. - tekst od kursora do kraja reda briše se sa Ctrl+K;
Editor emacs Da bi sačuvali tekst u fajlu, pritisnemo Ctrl+XS, a da bi završili sa
programom emacs, pritisnemo Ctrl+XC. Ako prije toga nijesmo sačuvali
Ovaj editor je mnogo lakši za upotrebu od programa vi ili ed. On,
tekst, neke verzije emacs-a će pitati da li želimo snimiti fajl prije nego
naime, nema režime koji od korisnika zahtijevaju da u svakom trenutku
izađemo iz programa.
pamti da li program očekuje komandu ili tekst. da bi se ovaj program
pokrenuo potrebno je otkucati
emacs ime-fajla Komunikacije
Ako fajl pod navedenim imenom ne postoji, emacs će ga stvoriti. Ovaj U ovom dijelu razmatraćemo mogućnosti komunikacije. One
program nudi pogled na fajl po cijelom ekranu. U poslednjem redu mogu da se obavljaju između administratora i korisnika, kao i između
ekrana nalazi se statusni red, koji saopštava ime fajla, i još neke samih korisnika. Na raspolaganju su dva načina za kominiciranje: sistem
informacije. pošte i sistem neposrednih poruka. U principu ova dva načina su slični
radu poštanske službe i telefonske centrale. U prvom slučaju, poruka se
56
ostavlja u poštansko sanduče odakle se kasnije uzima, dok se u drugom Subject:
slučaju direktno uspostavlja veza i zmeđu korisnika, ali uz rizik da se Sad se ukuca tema poruke, i pritisne (Ret). U narednoj liniji se pojavi
niko ne javi. Neki od načina zahtijevaju da korisnici budu prijavljeni, a kursor, kada može da se počne sa porukom za koju nema ograničenja
neki ne. dužine. Kad se poruka završi, šalje se sa Ctrl-D u novom redu. Prompt
Da bi razmjenjivali elektronsku poštu sa drugim korisnicima, u narednom redu označava da je poruka predata u red za slanje.
računar mora biti u mreži ili posjedovati modem. Pošta može da se šalje većem broju korisnika istovremeno,
Pomoću programa mail mogu se poslati poruke jednom ili više navođenjem njihovih imena, pri čemu su to imena pod kojima se
korisnika. Korisniku koji prima poruku nije neophodno da bude prijavljen. prijavljuju sistemu (login name). To znači da nije moguće slanje pošte
Program mail smjesti poruku u fajl koji pripada primaocu. Korisnik će biti korisniku čije ime ne znamo. Korisnik može poruku poslati i sam sebi.
upozoren da ima poštu. Poruke se mogu sačuvati ili obrisati, a može se Za čitanje pristigle pošte služi:
poslati i odgovor. $mail [opcija]
Program talk je interaktivna sesija koja svakom korisniku Ovom komandom dolazimo u komandni mod mail. Ako nema pošte,
omogućava simultano slanje poruka onom drugom. Za ovo je potrebno pojaviće se takva poruka na ekranu. Ako ima pošte, biće poruka "you
da obojica budu logovani. have mail". Ova poruka se pojavljuje nakon uključivanja ili povratka iz
Program write predstavlja jednosmjernu komunikaciju, gdje se neke procedure u komandni mod.
dozvoljava da se pošalje poruka drugom korisniku. On mora biti Poruke se, jedna po jedna, prikazuju na ekranu, počev od one
prijavljen i nema mogućnost odgovora. koja je zadnja pristigla. Uz svaku poruku prikazuje se datum i vrijeme
njenog prijema, kao i ime pošiljaoca.
Elektronska pošta Po izdavanju zahtjeva za čitanje pošte, sistem prikazuje samo
jednu pristiglu poruku. Poslije prikaza slijedi zahtjev za komandom što
Svakom korisniku pridružen je fajl mailbox, koji nije element dalje da se sa porukom uradi. Korisnik može da zapamti poruku i da je
njegovog sistema direktorijuma. Na većini sistema on se nalazi u obriše (opcija d) ili da zahtijeva od sistema da je sačuva (opcije s i w, za
direktorijumu /usr/spool/mail. Uvid u sdaržinu ovog fajla ostvaruje se snimanje sa i bez zaglavlja); postoje i mnoge duge opcije. Najčešći
komandom mail. Ista komanda koristi se i za slanje pošte drugom odgovor korisnika je jednostavno pritisak na tipku (Ret), što znači čitanje
korisniku koja se onda smješta u njegovo sanduče. Ukoliko u fajlu naredne poruke.
mailbox ima novih poruka, sistem informiše korisnika porukom Ako se obraćamo nekom ko je na drugom računaru u mreži, ime
You have mail računara se uključuje u poštansku adresu upotrebom znaka @ ispred
$ imena računara. Ako se, na primjer računar zove vrs a korisnik je marko,
Pošto korisnik pročita novu poštu, ova poruka se više ne javlja dok ne tada njegova adresa izgleda marko@vrs.
stigne nova pošta. Ako imamo problema sa adresama, najjednostavniji način je
Osnovni oblik komande za slanje pošte je: sačekati da nam neko pošalje poruku i da zatim na nju odgovorimo. Svi
mail [-t] [korisnik....] programi za poštu imaju neku komandu (najčešće r, od engleskog reply)
-t ova opcija, tamo gdje je dostupna, omogućava da se vidi lista svih kojom se odgovara na poruku bez kucanja adrese prvobitnog pošiljaoca.
kojima je poruka upućena. Sve poruke koje nijesu namjerno obrisane snimaju se kada se
user1[usern] - jedan ili više korisnika koji poštu primaju napušta mail. Oni koji su sačuvani smještaju se u fajl home direktorijuma
Ime korisniku daje administrator UNIX sistema. Ime može koji se naziva mbox. To je po defaultu, a moguće je sačuvati i u
sadržati i ime sistema ako je primalac na nekom drugom sistemu sa direktorijum po izboru. One poruke koje nijesu pročitane čuvaju se u
kojim UNIX može da komunicira. mailbox-u. Komanda za snimanje poruka ima dva oblika. Prvi je:
Primjer: S [msglist]
$mail rharding msglist =
57
n broj poruke preserve [msglist] čuva poruke iz mailbox-a
^ prva neobrisana poruka mail user poruka za konkretnog korisnika
$ zadnja poruka quit izlazak, uz čuvanje nepročitanih poruka
* sve poruke exit izlazak, uz čuvanje svih poruka
n-m - opseg poruka od n do m header prikazuje zaglavlja aktivnih poruka
user - sve poruke od korisnika ! izlazak u Shell
/string - Sve poruke sa stringom cd [directory] chdir na directory ili na home ako nije specificiran
:c - sve poruke tipa c, gdje c predstavlja: list lista komandi (bez objašnjenja)
d - obrisane poruke top [msglist] prikazuje 5 redova sa početka poruka
n - nove poruke Ovo je samo djelimična lista komandi. Za kompletnu listu koristiti
o - stare poruke man.
r - pročitane poruke
u - nepročitane poruke Neposredne poruke
Drugi način za snimanje u suštini radi isto kao i prvi, samo što
se može navesti ime fajla u koji se poruke smještaju: Pored sistema pošte, korisnici imaju na raspolaganju komandu
s [msglist] [file1] write koja služi za neposrednu komunikaciju korisnika. Ovakve poruke
msglist - isti argumenti kao i ranije ne smještaju se u poštansko sanduče, već se prikazuju direktno na
file1 - ime fajla u koji se smješta primljena pošta ekranu. Naravno, direktna komunikacija je moguća samo ako je primalac
Za brisanje poruka, ukuca se d nakon komandnog prompta (koji poruke prijavljen na sistem. Za provjeru koji korisnici su trenutno
je za mail znak pitanja ?), uz neki od argumenata iz komande msglist, sa prijavljeni može poslužiti komanda who.
potpuno istim značenjem kao i ranije (npr. n, č, $, itd.). Komanda write funkcioniše slično komandi mail, na primjer
Kad se poruke obrišu, one se mogu povratiti sa komandom u (od $ write marko
riječi undelete) sve dok se izađe iz mail-a. Kad se izađe sa komadom q samo što ona poruku prenosi red po red. Prenos reda se vrši poslije
(quit), poruke su stvarno izgubljene. pritiska na tipku (Ret). Na ekranu primaoca pojavljuje se zaglavlje koje
Ako postoji greška u adresi primaoca, komanda mail ne može služi za identifikaciju pošiljaoca, iza koga slijedi tekst poruke. Poruke se
izvršiti isporuku. Tada će poruka biti vraćena primaocu, sa objašnjenjem prikazuju na ekranu bez obzira što korisnik u tom trenutku radi.
razloga zbog kojeg nije isporučena. Pošto se pozove program write, svi znakovi koji se unose na
Na komandni prompt ?, može se dobiti lista komandi koja vam tastaturu terminal prenose se na navedenu adresu. Prenos se prekida
stoji na raspolaganju. To se radi kucanjem novog ?. Na primjer sa Ctrl-D, čime se napušta komanda write. Ako hoćemo da napustimo i
?? shell, potrebna je još jedna komanda Ctrl-D.
mail commands
type [msglist] prikazuje poruke Dvosmjerna komunikacija
next prikazuje narednu poruku
edit [msglist] edituje poruke Postiže se komandom talk, koja kopira tekst sa jednog terminala
from [msglist] daje zaglavlja poruka na drugi. Kad se uspostavi komunikacija između dva korisnika, oni
delete [msglist] briše poruke simultano mogu kucati poruke, koje im se pojavljuju u posebnim
undelete [msglist] povraća obrisane poruke prozorima. Oblik komande je:
save [msglist] file dodaj eporuku fajlu talk <user1> [ttyname]
reply [message] odgovara na poruku, uključujući sve primaoce
Reply [msglist] odgovara autorima poruka
58
user1 - Ako komunicirate sa nekim sa iste mašine, to je samo njegov Rad na udaljenim računarima i prenos fajlova
username. Ako se radi o korisniku sa druge mašine, tada je user1
Ako naš računar radi u mreži, ranije ili kasnije moraćemo koristiti
oblika:
i neke druge računare. Najčešće se koristi daljinsko prijavljivanje i
host!user or host.user ili
prenos fajlova.
host:user or user@host
user@host (preporučuje se ovaj oblik) Mnogi Unixovi sistemi su priključeni na Internet. Pošto je veći dio
ttyname - Ako je lice sa kojim komunicirate prijavljen na više mjesta, mrežnog softvera za Unix napisan na Berkliju baš za upotrebu na
tada ova opcija označava ime terminala. Internetu, komande dobro funkcionišu. Jedina razlika koju možemo da
Pretpostavimo da želimo da razgovaramo sa korisnikom student primijetimo između lokalne mreže i Interneta odnosi se na adresu kojom
na istoj mašini. ukazujemo na neki računar: na lokalnoj mreži to je prosto ime računara,
$ talk student dok se za Internet mora navesti kompletna adresa.
Na ekranu primaoca pojavi se, na primjer:
Daljinsko prijavljivanje (remote login) predstavlja u stvari
. Message from Talk_Daemon@domax1 at 17:36 ... .
prijavljivanje na neki drugi računar. Dok smo na njega prijavljeni sve što
. talk: connection requested by teacher@domax1. . . talk:
otkucamo prenosi se na njega a svi odgovori koj euputi drugi računar
respond with: talk teacher@domax1.
vraćaju se naš. Postoje dva programa za daljinsko prijavljivanje, koja se
Kad primalac ukuca talk teacher@domax1, na ekranu pošiljaoca se
malo razlikuju: telnet i rlogin. Varijanta programa rlogin sa imenom rsh
pojavi:
omogućava da na drugim računarima izdajemo komande jednu po
Connection established.
jednu.
Ekran se podijeli na dva dijela. Pošiljalac kuca poruku u gornjem dijelu,
koja se primaocu pojavljuje u donjem dijelu ekrana. Isto tako, ono što Prijavljivanje pomoću telnet-a se jednostavno vrši sa
primalac kuca u gornjem, pojaviće se u donjem dijelu ekrana pošiljaoca.
telnet ime_racunara
Kad se komunikacija jednom uspostavi, i jedan i drugi mogu slati poruke
simultano. Unix odgovori da uspostavlja vezu, a zatim daje znak spremnosti za
Kad se komunikacija završi, znak interapta prekida talk. Na prijavljivanje. Kad otkucamo korisničko ime i lozinku i računar se
primjer: poveže, dalje sve radimo kao da sjedimo za drugim računarom. Nakon
[Connection closing. Exiting] završenog posla, odjavimo se sa logout ili exit.
Ako ne želimo da nam rad prekidaju poruke tipa talk, možemo se Komada telnet je opšteg karaktera i možemo je koristiti za
zaštititi pomoću komande mesg: prijavljivanje na sve vrste računara, nezavisno od toga da li na njima radi
mesg [-[n][y]] Unix. Ako želimo da se prijavimo na neki drugi Unix sistem, to možemo
n - ne, zabranjuje poruke; uraditi i pomoću komande rlogin. Prijavljivanje se vrši na sličan način
y - da, ponovo daje dozvolu kao i kod komande telnet. Ako želimo da izdamo samo jednu komandu
Samo mesg (bez argumenata) daje izvještaj o tekućem statusu bez na drugom računaru, možemo koristiti komandu rsh (od remote shell).
njegove promjene Jednostavno se aktivira:
rsh ime_ racunara komanda
Ako želimo da koristimo fajlove koji se nalaze na drugom
računaru, često je najjednostavnije da ih iskopiramo na svoj računar. Za
to postoje dva programa: rcp i ftp.

59
Program rcp (remote copy) je jednostavniji za upotrebu. Ideja je Komanda rcp radi samo za kopiranje fajlova na neku Unix-ovu
da on radi kao standardni program za kopiranje cp, ali i ovdje važe mašinu ili sa nje. Ako želimo da kopiramo fajlove na neku drugu vrstu
pravila o pravim apristupa: možemo raditi sa fajlovima koje posjedujemo sistema ili da ih preuzimamo sa njega, probaćemo program ftp (file
ili na kojima imamo pravo pristupa. Da bismo fajl moji.podaci iskopirali transfer protocol). On je pogotovo pogodan za preuzimanje fajlova iz
sa računara master i nazvali ga masterovi.podaci, unesemo javnih arhiva fajlova sa računara na kojima nemamo lični nalog, i puno
se koristi na Internetu. Tako su nam dostupne hiljade fajlova na
rcp master:moji.podaci masterovi.podaci
računarima širom svijeta.
Da bi kopirali u drugom smjeru (iz fajla masterovi.podaci sa
Program ftp pokrećemo navođenjem imena programa i računara
našeg računara u fajl moji.podaci na računaru master), unesimo
na koji želimo da se povežemo, na primjer
rcp masterovi.podaci master:moji.podaci
ftp master
Ako želimo da kopiramo fajlove iz direktorijuma nekog drugog
Program odgovori davanjem znaka spremnosti za prijavljivanje, sličnom
korisnika (na primjer marko) na drugom sistemu, napišemo njegiovo
onom koji daje telnet. Kad se prijavimo (ukucamo ime i lozinku, a za
korisničko ime poslije znaka ~ (tilda), a prije imena fajla. Da bismo
Internet je to obično korisničko ime anonymous i lozinka koja se sastoji
iskopirali neki od Markovih fajlova, unesimo
od našeg punog korisničkog imena), možemo da koristimo ogroman broj
rcp master:~marko/neki.fajl markov.fajl komandi. Za napuštanje programa ftp jednostavno otkucamo quit. Ako
Da bi iskopirali odjednom cio direktorijum, možemo koristiti se ftp nalazi negdje u sredini dugačkog prenosa, a mi želimo da ga
indikator -r (od rekurzivno, recursive), kojim programu rcp nalažemo da prekinemo., upotrijebićemo Ctrl+C (ili neki drugi znak za prekid), da bi se
kopira cio sadržaj nekog direktorijuma: vratili u ftp.

rcp -r master:neki.direktorijum . Komanda koju često koristimo je dir, ona prikazuje sadržaj
direktorijuma na udaljenoj mašini. Tako
Ovim se direktorijum neki.direktorijum sa računara master kopira u naš
tekući direktorijum. Kad bi sve ove mogućnosti iskombinovali, mogli bi ftp> dir
kucati: nam daje pregled sadržaja direktorijuma na drugoj mašini. Za razliku od
rcp -r vlado@master:~vlado/neki.direktorijum vladočprojekat rcp, program ftp stalno izvještava o toku izvršavanja nekog programa.

U prevodu ovo bi značilo: idi do mašine master, gdje je moje korisničko Za korišćenje programa ftp za preuzimanje fajlova sa nekog
ime vlado, i od korisnika marko uzmi direktorijum neki.direktorijum i udaljenog sistema koristićemo komandu get:
iskopiraj ga u direktorijumn na ovoj mašini sa imenom vladočprojekat. ftp> get .plan master~plan
Program rcp ne obavještava korisnika o obavljenoj radnji, osim Komandi get dajemo ime fajla na nekom drugom računaru i ime koje
ako nešto pođe loše. Posao je gotov kad ponovo vidimo prompt Unixa. želimo da fajl ima na našem računaru. Ako su ova imena ista (a obično
Ako želimo da nešto iskopiramo na drugi računar i želimo da jesu) možemo izostaviti drugo ime.
vidimo da li je operacija uspjela, upotrebom rsh možemo izdati komandu Da bismo kopirali fajl na udaljeni sistem, koristimo komandu put,
ls kako bi vidjeli koji se fajlovi nalaze na tom drugom računaru. Na veoma sličnu komandi get.
primjer
Ako se fajlovi koje želimo da preuzmemo nalaze na nekom
rcp -r neki.direktorijum master:projekat drugom direktorijumu na udaljenom sistemu, ftp ima komandu cd koja
rsh master ls -l projekat radi kao i standardna komanda cd, osim što je efikasna samo na
udaljenom računaru. Na našem lokalnom računaru direktorijum možemo
60
promijeniti koristeći komandu lcd. Ako nijesmo sigurni gdje se nalazimo traži komande u ovom direktorijumu. Ako to nije tako, možemo ga sami
u stablu direktorijuma na udaljenom računaru, ftp ima komandu pwd koja kreirati i definisati putanju pretraživanja na odgovarajući način.
radi baš kao i standardna komanda pwd na lokalnom računaru.
Skript je ustvari tekstualni fajl koji sadrži komande onako kako bi
Ako želimo da kopiramo mnoštvo fajlova pomoću ftp, kucanje ih kucali sa komandne linije. Odgovarajući program se pokreće
svih komandi get i put može biti veoma dosadno. Grupu fajlova možemo jednostavnim navođenjem njegovog imena. Za pravljenje skriptova
kopirati komandama mget i mput. Komanda mget preuzima mnogo može se upotrijebiti bilo koji program za unošenje teksta (na primjer vi).
fajlova a komanda mput ih kopira. Sve fajlove koje želimo da Na primjer,
preuzmemo ili kopiramo možemo ispisati u jednom redu (možemo i da
vi findbud
koristimo džoker znake * i ?). Fajlovi se kopiraju sa imenima koja već
imaju, a svaka komanda će, prije nego kopira fajl, upitati da li želimo da Kada uđemo u editor otkucamo
kopiramo baš taj fajl. Odgovaramo sa (y/n). find . -name "budzet" .print
Ako želimo da kopiramo udaljene fajlove, ftp nam omogućava da Po pravilima za editor vi snimimo fajl, a zatim ga smestimo u direktorijum
interaktivno izaberemo fajlove koje želimo da kopiramo (ili preuzmemo), bin (ako već nijesmo tamo). Sada moramo reći da je fajl koji smo
jednostavnim navođenjem džokera *: napravili izvršni, tj. da je više od običnog tekstualnog fajla. To ćemo
ftp> mget * uraditi sa
Program ftp uvijek pretpostavlja da fajlovi koje kopiramo sadrže chmod +x findbud
običan ASCII tekst. Ako fajlovi koje želimo da preuzmemo (ili kopiramo), čime smo sve pripremili da fajl findbud korsitimo kao komandu Unix-a,
pak, ne sadrži tekst već nešto drugo (baze podataka, programe, itd.) koja će tražiti sve fajlove koji počinju sa budzet.
potrebno je, prije nego se izda komanda za kopiranje, navesti komandu
binary, kako bismo programu ftp naznačili da se radi o binarnim Da bi se pokrenula komanda findbud, potrebno je samo otkucati
fajlovima. njeno ime. Ako sistem javi da ne može da pronađe komandu,
otkucaćemo rehash, da bi naložili sistemu da osvježi svoju listu
Ako preuzimamo velike fajlove, možemo uštedjeti vrijeme tako komandi.
što ćemo prvo komprimovati fajlove, zatim ih preuzeti, pa ih nakon toga
dekomprimovati. Drugi način da se zada kratko ime za dugačku komandu je
korišćenjem pseudonima, tj. komande alias. Pomoću nje možemo
Kao što smo ranije naveli, napuštanje programa ftp se vrši definisati sopstvene komande na proizvoljan način, a nakjčešće se
komandom quit, nakon čega se pojavi prompt Unix-a tako da možemo definišu komande na koje smo navikli u DOS-u, npr dir, copy, itd. preko
nastaviti rad. odgovarajućih komandi i opcija iz Unix-a. Pseudonime koje direktno
kucamo u shell-u izgubimo kad se odjavimo sa sistema. Ako želimo da
budu trajno dostupni, komande alias moramo staviti u fajl .profile ili
Skriptovi sistemskog shell-a .login, koji predstavljaju ekvivalent fajla AUTOEXEC.BAT iz operativnog
Ako se srijećemo sa skupom komandi koje često koristimo, sistema DOS.
možemo napisati program, tzv. skript (script) shell-a, kojim
Dodatak 1
zamjenjujemo taj skup komandi tako da ne moramo da ih neprestano
kucamo. Tako se, kao sa batch fajlovima u DOS-u, formiraju nove DOS i UNIX: Poređenje
komande. Ovi programi se obično smještaju u direktorijum bin koji se
nalazi u našem polaznom direktorijumu. Većina administratora U ovom dijelu daćemo najčešće korišćene komande DOS-a i
automatski kreira svakom korisniku direktorijum bin jer sistemski shell njima odgovarajuće naredbe UNIX-a. Komentarisaćemo sličnosti i
61
razlike. Naime, ima komandi koje se potpuno isto ponašaju u oba • CHKDSK U UNIX-u ne treba razmišljati o efektima ove komande,
sistema, ali i onih koje su u osnovi iste ali ispoljavaju neke sitne razlike osim ako nijesmo administratori sistema. Da bismo vidjeli koliko
koje korisnika mogu dovesti u zabunu. Postoje i komande koje su slične slobodnog prostora imamo na disku, služi nam komand df.
ali imaju različita imena, kao i komande koje nemaju odgovarajućih • COPY i XCOPY Komanda cp radi na gotovo isti način. U DOS-u
komandi u UNIX-u. ne moramo navesti ime tekućeg direktorijuma u koji nešto kopiramo.
Prije nego pređemo na pojedine komande, pogledajmo kako se U UNIX-u moramo otkucati tačku (.) da bi naznačili da se kopiranje
odnose neki sistemski fajlovi. Sjećamo se da u DOS-u postoje tzv. batch vrši u tekući direktorijum. Opcija /S komande XCOPY u DOS-u vrši
fajlovi (od kojih je najpoznatiji fajl AUTOEXEC.BAT). U Unix-u možemo kopiranje tekućeg direktorijuma i svih njegovih poddirektorijuma. U
koristiti nešto slično, tzv. shell skripte (shell scripts). Isto kao kod DOS-a UNIX-u se ovo postiže komandom cp i opcijom -r.
ovdje se radi o tekstualnom fajlu koji sadrži niz koimandi Unix-a, • DATE i TIME I jedno i drugo daje komanda date.
navedenih jedna po jedna u redu. U Unix-u ovakvim fajlovima možemo • DEL i ERASE Brisanje fajlova u UNIX-u radi komanda rm.
dati proizvoljna imena, s tim što fajlu damo status izvršnog. • DIR Slična komanda je ls, ali se razlikuju u opcijama.
Slično DOS-u, i Unix ima skript fajl sličan AUTOEXEC.BAT. Slični rezultat se postiže opcijom -l. DIR /P postižemo sa ls đ more.
Nalazi se u polaznom direktorijumu i zove se .profile (u C shell naziva se DIR /S u UNIX-u radi komanda ls -R.
.login). Ove fajlove možemo da mijenjamo u tekst editorima, ali ih ne • HELP Ovoj komandi odgovara man. Neki UNIX-ovi
treba mijenjati ako dobro ne znamo šta radimo, jer ih obično podesi programi imaju i help.
administrator sistema. Ako želimo da dodamo neku komandu to radimo • MKDIR ili MD Isto kao komanda mkdir.
tako što ih stavimo na kraj fajla. • MORE Isto što i komanda more.
Kao što znamo, DOS-ov fajl CONFIG.SYS sadrži informacije o • PATH U Unixu, promjenljiva sistemskog shell-a PATH
hardverskoj konfiguraciji našeg sistema. Komfiguracija Unix-a je sadrži spisak direktorijuma koje sistem pretražuje kad mu se zada
poptpuno drugačija i obično nije problem korisnika. U većini slučajeva, neka komanda. Da bismo vidjeli trenutnu vrijednost promjenljive
Unix se sam prilagodi hardveru. PATH, potrebno je otkucati:
Poređenje najčešće korišćenih komandi DOS-a i UNIX-a: echo $PATH
• Upotreba kose crte. U DOS-u se za definisanje putanje koristi \, dok • RENAME ili REN Koristi se komanda mv. REN ne može
se za istu svrhu u UNIX-u koristi /. istovremeno da premjesti fajl u drugi direktorijum a mv može.
• U izvornom DOS-u su imena fajlova ograničena na osam znakova, • RMDIR ili RD Komanda rmdir radi na isti način. Ako u UNIX-u
dok u UNIX-u ne postoji ovakvo ograničenje. U DOS-u za Windows želimo da obrišemo kompletan direktorijum i sav njegov sadržaj,
2000 ime može imati 255+3 karaktera. koristimo komandu rm sa opcijom -r.
• DOS ne pravi razliku između velikih i malih slova, dok je UNIX • SORT Gotovo isto što i sort.
"osjetljiv" (case sensitive). • UNDELETE i UNFORMAT Unix nema komande poput ove
• ATTRIB +H Zamijenimo ime fajla sa imenom koje dvije osim ako imamo skup programa Norton Utilities za Unix.
počinje tačkom
• ATTRIB -H Promijeniti ime fajla tako da ne počinje tačkom
• ATTRIB +R i ATTRIB -R Definišu se komandom chmod
• CHDIR ili CD Isto radi što i komanda cd, osim kad otkucamo
samu komandu. U DOS-u se ne dešava ništa, osim što će nam dati
trenutnu poziciju u stablu direktorijuma. Ekvivalent ovoj naredbi u
DOS-u je komanda pwd. UNIX-ova komanda cd pomijera nas u
polazni direktorijum (ako iza nje ne navedemo ime nekog
direktorijuma)
62
Dodatak 2 ls -R rekurzivno izlistava sadržaj direktorijuma i njegovih
poddirektorijuma
Neke tipične komande UNIX-a mail čita prispjelu poštu
mail user šalje poštu korisniku sa imenom user
a>b izlaz komande a smjesti u fajl b man komanda daje informacije o komandi komada
a >> b nadoveži izlaz komande a na fajl b mkdir dir kreira direktorijum dir
a<b ulaz u komandu a uzeti iz fajla b mv fajl1 fajl2 premiješta fajl1 u fajl2
ađc proslijedi izlaz komande a na ulaz komande c mv f1 f2 f3 dir premiješta fajlove f1, f2, i f3 u direktorijum dir
a& izvrši komandu a u pozadini nsh host commands izvršava komande na udaljenom računaru
at time < script izvrši skript u zadato vrijeme passwd promjena lozinke
at -l izlistaj poslove koji čekaju na izvršavanje u određeno vrijeme pg fajl prikazuje sadržaj fajla ekran po ekran
at -r xx ukloni posao xx koji čeka na izvršavanje u određeno vrijeme ps prikazuje status procesa
cat fajl prikaži fajl na ekranu ps -u user prikazuje procese za korisnika user
cat fajl1 >> fajl2 nadoveži fajl1 na fajl2 pwd prikazuje tekući direktorijum
cd vraćanje na polazni direktorijum rcp host1:file host2:file kopira fajlove sa jednog host-a na drugi
cd dir prelazak na direktorijum dir rlogin host prijavljivanje na udaljeni host
chmod dozvola fajl prava pristupa fajlu mijenja na dozvola rm file briše fajl file
cp fajl1 fajl2 kopira fajl1 u fajl2 rm -rdir briše direktorijum dir uključujući i njegov sadržaj
cp f1 f2 f3 dir kopira fajlove f1, f2, i f3 u direktorijum dir rmdir dir briše direktorijum dir
csh C shell rwho daje informacije o korisnicima na mreži
cu options host pozivanje udaljenog računara sh Bourne shell
diff file1 file2 prikazuje razlike između fajl1 i fajl2 sort file vrši sortiranje redova teksta po abecednom redu
echo string prikazuje string na ekranu sort -n file vrši numeričko sortiranje
file fajl1 za fajl1 prikazuje tip (data, text, binary, etc) spell file provjera spelovanja u fajlu
finger user daje informaciju o korisniku stty prikazuje aktivne terminale
ftp interaktivno prenošenje fajlova na daljinu talk razgovor sa korisnikom na istom terminalu
grep string file pretražuje fajl na zadati string tail file prikazuje zadnjih 10 linija fajla
grep -c string file prikazuje samo broj pojavljivanja zadatog stringa telenet host povezivanje sa udaljenim host-om
grep -l string files prikazuje listu imena fajlova koji sadrže string tr a b file promijeni svako a u b, u nekom fajlu
kill %x eliminisanje pozadinskog posla x vi file editovanje fajla sa ekranskim editorom vi
ksh KornShell wc file za fajl fajl daje broj redova, riječi i karaktera
lp -ddest file štampa fajl na printeru sa imenom dest write user slanje poruke na terminal korisnika user
ls prikazuje spisak fajlova tekućeg direktorijuma
ls dir prikazuje spisak fajlova direktorijuma dir
ls -a spisak uključuje i fajlove koji počinju tačkom (.)
ls -l spisak fajlova uključuje i podatke o njima (prava pristupa,
veličina, vlasništvo,...)
ls -C izlistava sadržaj u kolonama
ls -ld daje detaljne informacije o direktorijumu a ne o njegovom
sadržaju
63

You might also like