You are on page 1of 52

Svi tutorijali su preuzeti sa http://www.bsdserbia.org/dokumentacija/doku.php?id=start, i objavljeni su pod sledeom licencom: http://www.ee.surrey.ac.uk/Teaching/Unix/download.

html

Ovim putem se zahvaljujem svim ljudima sa BSD - Srbija koji su radili na prevodu sa engleskog.

Istorija Unix-a....................................................................................................................................5 Razvoj UNIXa od strane USG.......................................................................................................6 UNIX na Berkeley Univerzitetu....................................................................................................6 Standardizacija UNIX-a..................................................................................................................7 Dalji razvoj BSD-a............................................................................................................................8 - FreeBSD -.....................................................................................................................................8 - NetBSD -.......................................................................................................................................9 - OpenBSD -...................................................................................................................................9 UNIX Uvod......................................................................................................................................11 UNIX operativni sistem ............................................................................................................11 . Kernel........................................................................................................................................11 Shell............................................................................................................................................11 Fajlovi i procesi ...........................................................................................................................12 . Struktura Direktorijuma...........................................................................................................12 Pokretanje Xterminal sesije....................................................................................................12 Izlistavanje fajlova i direktorijuma..........................................................................................14 ls (list).............................................................................................................................................14 Kreiranje Direktorijuma...............................................................................................................14 mkdir (make directory)............................................................................................................14 Premestanje u drugi direktorijum............................................................................................15 cd (change directory) ...............................................................................................................15 . Vezba 1a....................................................................................................................................15 Direktorijumi . i .............................................................................................................................15 Putanje ...............................................................................................................................................16 . pwd (print working directory)................................................................................................16 Vezba 1b....................................................................................................................................16 Vise o home direktorijumima i putanjama...........................................................................16 Razumevanje putanja...............................................................................................................16 ~ (vas home direktorijum).................................................................................................17 Pregled................................................................................................................................................17 Kopiranje fajlova........................................................................................................................18 cp (copy)........................................................................................................................................18 Vezba 2a........................................................................................................................................18 1

Premestanje fajlova..................................................................................................................18 mv (move)....................................................................................................................................18 Uklanjanje fajlova i direktorijuma...................................................................................19 rm (remove), rmdir (remove directory)............................................................................19 Vezba 2b........................................................................................................................................19 Prikazivanje sadrzaja fajla na ekranu...........................................................................19 clear (clear screen)....................................................................................................................19 cat (concatenate).......................................................................................................................19 less...................................................................................................................................................20 head.................................................................................................................................................20 tail ....................................................................................................................................................20 . Pretrazivanje sadrzaja fajla.................................................................................................20 Jednostavna pretraga koristeci less....................................................................................20 grep (ne pitajte zasto se naziva grep)...............................................................................21 wc (word count)..........................................................................................................................22 Pregled .............................................................................................................................................22 . Preusmeravanje..............................................................................................................................23 Vezba 3a........................................................................................................................................23 Preusmeravanje Unosa.................................................................................................................24 Cevi......................................................................................................................................................25 Vezba 3b........................................................................................................................................25 Pregled................................................................................................................................................26 Wildcards...........................................................................................................................................27 Znaci * i ?......................................................................................................................................27 Konvencije imena fajlova............................................................................................................27 Trazenje pomoci..............................................................................................................................28 On-line Prirucnici........................................................................................................................28 Apropos..........................................................................................................................................28 Pregled................................................................................................................................................28 Bezbednost fajl sistema (prava pristupa)...................................................................29 Prava pristupa za fajlove. .......................................................................................................30 . Prava pristupa za direktorijume...........................................................................................30 Neki primeri..................................................................................................................................30 2

Promena prava pristupa.........................................................................................................30 chmod (changing a file mode)..............................................................................................30 Vezba 5a........................................................................................................................................31 Procesi i Poslovi..........................................................................................................................31 Stavljanje trenutnog procesa iz prvog plana u pozadinu...........................................32 Izlistavanje suspendovanih i procesa u pozadini...........................................................32 Stopiranje procesa ....................................................................................................................33 . kill (terminate or signal a process) .....................................................................................33 . ps (process status)....................................................................................................................33 Pregled .............................................................................................................................................34 . Ostale korisne UNIX komande ..................................................................................................35 . quota...............................................................................................................................................35 df.......................................................................................................................................................35 du......................................................................................................................................................35 compress........................................................................................................................................35 gzip ..................................................................................................................................................36 . file.....................................................................................................................................................36 history.............................................................................................................................................36 Kompajliranje UNIX softverskih paketa.......................................................................37 Kompajliranje Izvornog Koda................................................................................................37 make i Makefile...........................................................................................................................37 configure........................................................................................................................................38 Preuzimanje izvornog koda .................................................................................................39 . Ekstraktovanje izvornog koda............................................................................................39 Konfigurisanje i kreiranje Makefile.................................................................................40 Build-ovanje paketa..................................................................................................................40 Pokretanje softvera..................................................................................................................41 Oduzimanje nepotrebnog koda..........................................................................................41 UNIX Varijable.............................................................................................................................43 Environment Varijable.............................................................................................................43 Nalazenje trenutnih vrednosti ovih varjabli.....................................................................43 Shell Varijable..............................................................................................................................44 Nalazenje trenutnih vrednosti ovih varjabli.....................................................................44 3

Pa kakva je onda razlika izmedju PATH i path ?............................................................44 Koriscenje i postavljanje varijabli ...................................................................................45 . Postavljanje shell varijabli u .cshrc fajlu.....................................................................45 Podesavanje putanje................................................................................................................46 *BSD lista referentnih komandi................................................................................................47 Predgovor..........................................................................................................................................47 FreeBSD.............................................................................................................................................47 Azuriranje izvornog koda.............................................................................................................47 Pravljenje i instaliranje Kernela & Userland-a ....................................................................47 . Azuriranje kolekcije softvera (drvo portova, pkgsrc).......................................................48 Instalacija binarnih paketa.........................................................................................................48 Instalacija softvera iz izvornog koda......................................................................................48 Izlistavanje instaliranih paketa.................................................................................................48 Brisanje instaliranih paketa........................................................................................................49 Izlistavanje zastarelih paketa....................................................................................................49 Azuiranje koriscenjem binarnih paketa .................................................................................49 . Azuriranje softvera koriscenjem izvornog koda.................................................................49 Razna ciscenja u kolekciji portova / pkgsrc stablu............................................................49 Izlistavanje paketa sa bezbednosnim propustima ............................................................50 . Enkripcija Swap particije.............................................................................................................50

Istorija Unix-a
Prvu verziju operativnog sistema UNIX razvio je 1969. godine Ken Thompson, lan AT&T-ove istraivake grupe Bell-ovih Laboratorija (The Research Group at Bell Laboratories) na DEC-ovim raunarima PDP-7 sa ciljem da napravi pogodan timesharing sistem. (*Kompjuterski sistemi tih godina su bili potpuno nekompatibilni, ak i kad su u pitanju razliite verzije sistema istog proizvodjaa. Operativni sistemi su izvravali samo ograniene zadatke i to samo na mainama na kojima su bili napisani. Ako bi firma elela da unapredi svoje kompjutere, to bi znailo instaliranje novog sistema, ali i ponovno unoenje svih podataka!*) Njemu se uskoro pridruioDennis Richie, koji je ranije radio na projektu MULTICS (*Multiplexed Information and Computing Service*), koji ekonomski nije bio pogodan za dalje razvijanje. Od MULTICS-a je preuzeto mnogo toga: organizacija fajl sistema, ideja da se komandni interpreter (nazvan shell - ljuska) izvrava kao korisniki proces (a ne sistemski), korienje razliitih procesa za svaku komandu, linijsko editovanje i druge. Naravno na UNIX su uticali i drugi operativni sistemi, pogotovo MIT-ov (Massachusetts Institute of Technology) CTSS (Compatible Time-Sharing Service), a sam UNIX je uspeo u onome to oni nisu - postao je snani operativni sistem, neobine jednostavnosti i elegancije. Druga verzija UNIX-a bila je portovana na raunare DEC PDP-11. Ove verzije UNIX-a bile su programirane u asembleru. Ken Thompson je 1970. godine napisao programski jezik B (po ugledu na Martin Richards-ov BCPL), i njega je Dennis Ritchie 1973. godine proirio strukturama podataka, stvorivi programski jezik C u kom e sledea verzija UNIX-a biti implementirana. Ova verzija je pokazala da postoje mnoge prednosti pisanja operativnog sistema u jeziku visokog nivoa, kakav je C (multiprogramiranje, deljenje koda, reusability), tako da su danas sve verzije UNIX-a napisane u C-u. UNIX je ubrzo preao na sisteme iji je hardver podravao multiprogramiranje (PDP-11/45) i tako dobio velike mogunosti unapredjivanja. Ken Thompson i Dennis Ritchie su 1973. godine na simpozijumu o principima operativnih sistema, odranom na Purdue univezitetu, predstavili svoj rad o UNIX operativnom sistemu, a 1974. godine prvi put je opisan u tehnikom urnalu. Predavanja o UNIX-u koja je Ken Thompson drao na Berkeley univerzitetu (University of California at Berkeley - UCB) bila su od velikog znaaja za poveanje popularnosti UNIX-a na fakultetima. 1976. je Version 6 UNIX bio distribuiran mnogim fakultetima pod akademskim licencama. Na Berkeley-ju je osnovana grupa za istraivanje - Computer Science Research Group (CSRG), iji je rukovodilac bio Robert Fabry. Unapredjenja koja je CSRG doneo UNIX-u nazvana su Berkeley Software Distribution (BSD). Sa dolaskom UNIX-a na Berkeley-u poeo je i rad na INGRES bazi podataka, koja je pretea jedne od najboljih baza podataka dananjice - Posgres baze podataka. Sledea verzija Version 7 UNIX je objavljena 1978. godine. Ovaj UNIX sistem radio je na PDP-11/70 i Interdata 8/32 raunarima, a uskoro je portovan i na VAX, gde dobija oznaku 32V. Version 8 iz 1985. ukljuuje I/O stream sistem (sistem ulazno/izlaznog toka) kojim se omoguuje fleksibilnost kernela u medjuprocesnoj komunikaciji (IPC), i ukljuuje se RFS (Remote File System -daljinski fajl sistem) slian SUN-ovom NFS-u (Network File System) koji danas predstavlja standardni nain deljenja fajlova medju UNIX-ima. Sledee verzije (Version 9 (1986), Version 10 (1989) i Plan 9 (1991)), ostale su dostupne samo istraivkoj grupi unutar Bell-ovih laboratorija.

Razvoj UNIXa od strane USG


Zbog svojih osobina i mogunosti (timesharing os, multitasking i multiuser os) UNIX je postao primamljiv i za komercijalnu upotrebu. Nakon Verzije 7 formirana je posebna grupa, UNIX Support Group (USG), u okviru AT&T sa zadatkom da se brine o UNIX sistemu. Njihova prva distribucija bila je System III (1981. god.) i ona je imala ugradjene mogunosti iz Version 7, 32V, real time UNIX/RT i Programmer's Work Bench (PWB) sistema (interne verzije u Bell-ovim laboratorijama). USG je 1983. god. objavio System V, System III derivat, zatim se preformirao u UNIX System Development Laboratory (USDL), i 1984. god. objavio UNIX System V Release 2 (V.2). Sledea verzija - UNIX System V Release 2, Version 4 (V.2.4), donela je implementaciju virtualne memorije sa paging-om tipa kopiraj-pri-upisu i deljenu memoriju. USDL se transformisao u AT&T Information Systems (ATTIS), koji je 1987. god. distribuirao System V Release 3 (V.3). SVR3 je adaptirao implementaciju I/O stream sistema iz V8 (nazvanu STREAMS) i ukljuio je RFS. ATTIS 1989. godine postaje UNIX Software Organization (USO) i razvija UNIX System V Release 4 (SVR4), kombinujui mogunosti iz SVR3, 4.3BSD, Microsoft Xenix i SunOS operativnih sistema. Predstavlja skoro potpuno prekodiran System V kernel i podrava procesovanje u realnom vremenu, process scheduling klase, signale i IPC, dinamino alociranje struktura podataka, upravljanje virtualnom memorijom, virtualni fajl sistem i kontrolu poslova (job control). SVR4 radi kako na 32-bitnim mikroprocesorima tako i na superkompjuterima i u potpunosti je usaglaen sa POSIX standardom. SVR4 je razvijan tako da postane jedinstvena platforma za komercijalni razvoj UNIX-a, a na njemu su radili kako komercijalni tako i akademski projektanti. Oni su u tome svakako i uspeli, tako da SVR4 predstavlja moda i najznaajniju varijantu UNIX-a, poto je objedinio sve najznaajnije mogunosti UNIX-a koje su razvijene. Posle izdavanja SVR4 USO postaje Unix System Laboratories (USL), koji postaje deo Novell-a 1993. godine.

UNIX na Berkeley Univerzitetu


Najvei doprinos UNIX-u doneo je University of California at Berkeley (UCB). Prvu zvaninu distribuciju UNIX-a (3BSD) napravio je 1978. god. Bill Joy, autor vi-a (to je impliciralo i drajvere za terminale), ovek koji je znaajno unapredio tadanji pascal interpreter, jedan od osnivaa Sun Microsystems-a, autor programskog jezika JAVA i jedan od najveih UNIX hakera svih vremena. Ta distribucija predstavljala je VAX UNIX 32V, kome su dodati virtuelna memorija, stranienje na zahtev (demand paging) i zamena stranica (page replacement). Virtuelna memorija je omoguila da se UNIX koristi za razvoj velikih programa, kao to je Berkeley-ev Franz Lisp. Paralelno sa razvojem na VAX raunarima, BSD se razvija i na raunarima PDP-11, ali je manja cena VAX raunara doprinela irenju BSD i u drugim akademskim okruenjima. 4BSD je nastao DARPA-inim (*Defense Advanced Research Projects Agency*) finansiranjem Berkeley-a za razvijanje standardnog UNIX sistema za vladine potrebe.4.2BSD je obezbedio rad u mrei po DARPA-inom Internet mrenom protokolu (TCP/IP), tako da je obezbedjena uniformna komunikacija medju razliitim elementima, ukljuujui lokalne mreze (kao to je Ethernet i token rings) i mree raunara (Arpanet i NSFNET). Berkeley-eva implementacija TCP/IP protokola se distribuirala na trakama kao Networking Release 1, tj. Net/1 trake. Sledea verzija, 4.3BSD, donela je mnoga unapredjenja i poboljanja performansi mrene komunikacije. Berkeley je dozvoljavao distribuiranje 'Net/2' traka korporacijama koje su licencirale AT&T-ov UNIX, pod uslovom da one u svojim distribucijama priznaju da koriste Berkeley-eve trake. Ovo je omoguilo proirenje Interneta od 60 povezanih mrea (1984), do preko 8000 mrea i 10 miliona korisnika u 1993.

Na Berkeley-u su razvijeni mnogi drajveri za terminale, novi korisniki interfejs (C shell), novi tekst editor (ex/vi), kompajler za Pascal, interpreter za Lisp, kao i mnogi drugi sistemski programi. Poslednje Berkeley-evo izdanje UNIX-a 4.4BSD, dovreno je 1993. godine i ispunjava sve uslove koje zadaje POSIX standard. Pored toga sadri radikalno novu organizaciju fajl sistema koja omoguava lako dodavanje novih mogunosti. Ukljuena je i implementacija NFS-a, poboljana sigurnost i unapredjena struktura kernela. Izdavanjem verzija 4.4BSD i 4.4BSD Lite (za distribuciju) Berkeley je obustavio dalji razvoj.

Standardizacija UNIX-a
Kako je popularnost UNIX-a rasla, razliite korporacije, organizacije i univerziteti su portovali UNIX na mnoge platforme raunara, tako da je stvoren veliki broj UNIX-slinih operativnih sistema. Primeri su DEC-ov Ultrix, IBM-ov AIX, Microsoft-ov Xenix, Sunov SunOS i Solaris, Hewlett-Packard-ov HP-UX, Compaq-ov Tru64 UNIX, Novellov UNIX Netware, SGI-ov IRIX, Chorus, MACH, OSF/1, 386BSD, SCO UNIX, kao i mnogi drugi operativni sistemi koji su razvijani po ugledu na UNIX, kao to su: Tunis, Xinu, Minix, Linux. UNIX je danas dostupan na svim raunarima opte namene, personalnim raunarima (PC), radnim stanicama, minikompjuterima (PDP-11, VAX), mainframe raunarima i super kompjuterima (cray). Veina ovih sistema je bazirana na Version 7, System III, 4.2BSD i SystemV UNIX-ima. Kako UNIX nije bio razvijan od strane samo jednog proizvodjaa, niti za samo jednu vrstu raunara, postao je najprenosiviji i najzastupljeniji operativni sistem. Ovo bi moglo da omogui korisnicima da imaju jedinstveno okruenje na svim raunarima bez obzira na proizvodjaa. Ali je veliki broj implementacija sistema doveo do znaajnih razlika u programiranju i korisnikom interfejsu ovih sistema. Da bi se korisnicima pruilo jedinstveno okruenje, mora postojati jedinstveni programski interfejs, tako da sve UNIX aplikacije koje potuju taj interfejs mogu da se izvravaju na svim UNIX sistemima. Standardizacija UNIX-a je veoma teak zadatak i to zbog vie faktora. Naime, kako je Ken Tompsonov prvobitni cilj pisanja prvog UNIX kernela bio poboljanje performansi igre zvane Space Travel, on nije ni razmiljao da potuje bilo kakve standarde. Dalji razvoj i korienje UNIX-a bilo je samo u okviru AT&T-a, tako da opet nije bilo potrebe za nekim zvaninim standardom. Kada je UNIX izaao iz AT&T-a, poeo je njegov brzi razvoj u raznim pravcima, to je vodilo do pojave velikog broja varijanti UNIX-a i nemogunosti pojave bilo kakvog standarda. Takodje, sa razvojem UNIX kernela, razvijane su i razne alatke, bez kojih dananji UNIX sistemi ne bi bili to to jesu, tako da standardizacija UNIX-a svakako mora da obuhvati i standardizovanje alatki kao to su lex, yacc, awk, grep Prvi pokuaj standardizovanja UNIX operativnih sistema bio je osnivanje nekormercijalne organizacije /usr/group u 1980. god, 7a 1984. god. IEEE (Institute of Electrical and Electronics Engineers) je iskoristio nacrt ovog standarda za POSIX (Portable Operating System Interface for UNIX) standard, koji bi trebalo da obuhvata 20 standarda, ali su do sada u potpunosti dovrena i objavljena samo dva - POSIX 1003.1 koji opisuje sistemske pozive i POSIX 1003.2 koji opisuje shell. POSIX ustvari predstavlja opis interfejsa, ali ne i implementaciju, to znai da i nije pravi standard. Ali, on predstavlja generalizaciju UNIX sistema, tako da su ga druge organizacije koristile kao osnovu za svoje standarde. Otprilike u isto vreme AT&T je objavio System V Interface Definition (SVID), a X/Open je objavio X/Open Portability Guide (XPG). 1988 god. Open Software Foundation objavljuje OSF/1 verziju UNIX-a kompatibilnu sa POSIX-om i Motif - grafiki interfejs koji danas predstavlja standardni korisniki grafiki interfejs. 1993. godine Novell je kupio UNIX System Laboratory od AT&T-a, a zatim objavio sledeu verziju UNIX-a pod imenom UnixWare. Kako UnixWare nije stekao veliku

popularnost, Novell je shvatio da ukoliko ne dodje do ozbiljne standardizacije UNIX-a, nijedan komercijalni UNIX sistem nee preiveti. Zbog toga je ve 1994. god. Novell zvanino dao pravo korienja imena UNIX organizaciji X/Open i tako zapoeo najuspeniji pokuaj unifikacije UNIX-a do danas. X/Open je utvrdio specifikaciju Spec 1170 , koja predstavlja nacrt vie od 10 000 APIja (Application Programmer Interfaces) kojima se opisuju UNIX-slini operativni sistemi, a 1995. god. objavljuje konanu specifikaciju - Single UNIX Specification. UNIX sistemi koji su uskladjeni sa ovom specifikacijom nazivaju se UNIX 95. Ujedinjenjem organizacija X/Open i OSF 1996. god. nastala je organizacija Open Group koja je objavila drugu verziju standarda Single UNIX Specification, Version 2, a uskladjeni sistemi se nazivaju UNIX 98. U ovoj specifikaciji ukljueno je procesovanje u realnom vremenu, tredovi i 64-bitni (i vie) procesori. Specifikacija je besplatna i moe se dobiti preko web-a ( www.opengroup.org). 2001. godine objavljena je i trea verzija specifikacije Version 3 of the Single UNIX Specification. Ovako je najpopularniji operativni sistem na svetu proao teak put definisanja i standardizovanja.

Dalji razvoj BSD-a


Kako je Berkeley doputao distribuciju svojih Net/1 i Net/2 traka pojavili su se mnogi operativni sistemi zasnovani na ovim distribucijama. Jedan od njih je i 386BSDiji je razvoj poeo kada je 1991. godine William Jolitz poeo sa portovanjem Net/2 (4.3BSD-Lite) trake na 386 raunare. Medjutim, on nije bio u stanju da isprati sve popravke bug-ova i sve promene koje su vrene, tako da 1993. godine on prestaje sa razvojem. Programeri koji su sa njim radili podelili su se u 2 grupe koje su nastavile zapoeti posao. Takodje, 1992. godine je osnovana i firma BSDi koja je predstavila svoj komercijalni BSD/OS sistem. Na ovaj nain je sa velikim uspehom nastavljen razvoj koji je zapoeo CSRG i stvoreni su najstabilniji, najportabilniji i najsigurniji sistemi dananjice.

- FreeBSD Poetkom 1993. godine Jordan K. Hubbard, Rod Grimes i Nate Williams su pokrenuli projekat iji je cilj bio reavanje problema koji su postojali u principima razvoja Jolitzovog 386BSD-a. Posle konsultovanja sa tadanjim korisnicima sistema, uspostavljeni su principi i smiljeno je ime - FreeBSD. Pre nego to je konkretan razvoj i poeo, Jordan Hubbard je predloio je firmi Walnut Creek CDROM (danas BSDi) da pripreme distribuiranje FreeBSD-a na CD-ROM-ovima. Walnut Creek CDROM su prihvatili ideju, ali i obezbedili (tada potpuno nepoznatom) projektu mainu na kojoj e biti razvijan i brzu Internet konekciju. Bez ove pomoi teko da bi FreeBSD bio razvijen u ovolikoj meri i ovolikom brzinom kao to jeste. Prva distribucija FreeBSD-a na CD-ROM-ovima (i naravno na netu) bila je FreeBSD 1.0, objavljena u decembru 1993. godine. Bila je zasnovana na Berkeley-evoj 4.3BSD-Lite (Net/2) traci, a naravno sadrala je i komponente 386BSD-a i mnoge programe Free Software Foundation (fondacija besplatnog-slobodnog softvera). Nakon to je Novell otkupio UNIX od AT&T-a, Berkeley je morao da prizna da Net/2 traka sadri velike delove UNIX koda. Posle sudskog spora, dogovoreno je da Berkeley pripremi 4.4BSD-Lite distribuciju iz koje e biti izbaeni pojedini delovi koda. Od tada su BSD i UNIX, kontradiktorno, dve razliite stvari. Svi korisnici Net/2 traka bili su prinudjeni da predju na 4.4BSD-Lite. Ovo je ukljuivalo i FreeBSD, tako da je pred projektom bio zadatak da dovri sistem bazirajui se na novoj i nepotpunoj 4.4BSD-Lite distribuciji. Veliki delovi sistema su ponovo isprogramirani tako da je u novembru 1994. godine objavljena FreeBSD 2.0 distribucija koja je napokon mogla legalno da se distribuira preko neta i CDROM-ova.

Tekua -stable grana projekta je 4.x-stable. 4.5-RELASE je objavljen u januaru 2002. godine, a sledee izdanje FreeBSD 4.6 zakazano je za 1. jun. 2002. Krajem 2002. godine FreeBSD-current e biti objavljen kao FreeBSD 5.0-RELASE.

- NetBSD NetBSD je takodje nastao sa ciljem da pobolja mehanizam razvoja 386BSD-a. Ljudi iz firme Virginia Tech uzeli su za osnovu 386BSD i Net/2 traku i poeli su sa portovanjem BSD-a na raunare Macintosh. Razvoj se ubrzo proirio i na Atari ST, Amiga, i PC platforme. Kako se projekat razvijao, postalo je oigledno da e FreeBSD biti namenjen za i386, a NetBSD za sve ostale platforme. Ime je dobio zato to je do 1998. godine rad na njemu bio vezan iskljuivo za Net, a komunikacija medju developer-ima je bila bazirana na chat-u i mail-u. Danas snaga NetBSD-a lei u podrci za ak 51 hardversku platformu. NetBSD je postao stabilni, multiplatformski, istraivaki orijentisan operativni sistem. Posveenost ka portabilnosti uticala je na druge operativne sisteme da i oni pruaju podrku za vie platformi. Nekoliko operativnih sistema (OpenBSD, KAME, Darwin, MacOS X) izvedeno je direktno iz NetBSD-a. NetBSD je besplatan i moe se snimiti sa neta. (www.netbsd.org). Aktivna verzija je 1.5.2 (maj 2002.)

- OpenBSD OpenBSD projekat je 1996. zapoeo Theo De Raadt, jedan od glavnih programera projekta NetBSD. Umesto velike portabilnosti, OpenBSD se orijentisao ka sigurnosti. OpenBSD je operativni sistem sa izrazito jakim security-em, kao i sa kriptografijom (Blowfish, OpenSSH, PRNG, OpenSSL) integrisanom u sam sistem. Takodje, programeri OpenBSD-ja su od 1996. godine poeli sa detaljnim pregledom koda kernela u potrazi za potencijalnim bug-ovima i exploit-ima, to je rezultiralo ispravljanju mnogih greaka u kodu pre nego to su one i bile primeene u drugim sistemima. OpenBSD je svakako najimpresivniji operativni sistem dananjice sa aspekta security-a, a takodje se i on moe dobiti besplatno preko neta. (www.openbsd.org). Aktivna verzija je 3.1.

U onome sto sledi, koristicemo sledece stamparske konvencije: Slova napisana boldovanim typewriter fontom su komande koje se trebaju ukucati kao sto su napisane. Slova napisana italic typewriter fontom oznacavaju ne-specificna imena fajlova ili direktorijuma. Reci koje su izmedju viticastih zagrada [Ctrl] oznacavaju taster koji treba da se pritisne. Znaci, na primer, % ls nekidirektorijum [Enter] znaci u UNIX prompt-u %, ukucajte ls i onda ime nekog direktorijuma, onda pritisni taster oznacen kao Enter Ne zaboravite da pritisnete taster [Enter]: komande se ne salju do kompjutera dok se ovo ne obavi. Beleska: UNIX pravi razlike izmedju malih i velikih slova, tako da LS nije isto sto i ls. Isto vazi i za imena fajlova, tako da su myfile.txt, MyFile.txt i MYFILE.TXT tri razlicita fajla. Cuvajte se ako kopirate fajlove na PC, posto DOS i Windows ne prave ove razlike.

10

UNIX Uvod
Ovo predavanje se tice UNIX-a, koji je cest operativni sistem. Pod operativnim sistemom, mislimo na skup programa koji cine da kompjuter radi. UNIX se koristi na radnim stanicama i visekorisnickim serverima u skolama. Na X terminalima i radnim stanicama, X Windows omogucava graficki interfejs izmedju korisnika i UNIX-a. Ipak, poznavanje UNIX-a je potrebno za operacije koje nisu pokrivene grafickim programom, ili gde ne postoji X windows sistem, na primer, u telnet sesiji.

UNIX operativni sistem


UNIX operativni sistem se sastoji iz tri dela; kernel, shell i programi.

Kernel
Kernel u UNIX-u je glava operativnog sistema: od odredjuje vreme i memoriju za programe i rukovodi skladistem fajlova i komunikacijom kao odgovor na sistemske pozive. Kao ilustracija za nacin na koji shell i kernel rade zajedno, pretpostavimo da korisnik ukuca rm mojfajl (sto za efekat ima uklanjanje fajla mojfajl). Shell pretrazuje skladiste fajlova za fajl koji sadrzi program rm, i onda zahteva od kernela, preko sistemskih poziva, da izvrsi program rm na mojfajl. Kada se proces rm mojfajl zavrsi, shell onda vraca UNIX prompt % do korisnika, oznacavajuci da ceka za dalje komande.

Shell
Shell se ponasa kao interfejs izmedju korisnika i kernela. Kada se korisnik uloguje, program za logovanje proverava korisnicko ime i lozinku, i onda pokrece drugi program koji se naziva shell. Shell je command line interpreter (CLI). On prevodi komande koje korisnik ukucava i stara se da one budu izvrsene. Same komande su ustvari programi: kada se prekinu, shell daje korisniku drugi prompt (% na nasim sistemima). Iskusniji korisnik moze da prilagodi njegov/njen licni shell, i korisnici mogu da koriste razlicite shell-ove na istoj masini. Osoblje i studenti u skolama podrazumevano imaju tcsh shell. tcsh shell sadrzi neke opcije koje pomazu korisniku prilikom ukucavanja komandi. Dovrsavanje Imena Fajla - Kucajuci deo imena komande, imena fajla ili direktorijuma i nakon toga pritiskajuci taster [Tab], tcsh shell ce dovrsiti ostatak imena automastski. Ako shell nadje vise od jednog imena koje pocinje sa tim slovima koje ste ukucali , pustice zvuk, trazeci od vas da ukucate jos neko slovo vise pre nego pritisnete taster tab ponovo. Istorija - Shell cuva listu komandi koje ste izvrsili. Ako trebate da ponvite komandu, koristite strelice da idete gore i dole kroz listu ili ukucajte history za listu predhodnih komandi.

11

F Fajlovi i procesi i
p Sve u UNIX-u je ili fajl ili proces. es ni ovan jedinst tvenim PID-om (proce identifie ess er). Proce je izvrsn program indentifiko Fajl j kolekcija podataka. Njih kreira korisnic koristeci uredjivace teksta, pokretanjem je a . aju ci kompajlera itd. Primeri fajlova: kumenat (iz zvestaj, ese itd.) ej dok teks programa napisano u nekom programsk st og m kom jeziku visokog nivoa inst trukcije dire ektno razum mljive masini i nerazumljive sluc cajnom kori isniku, na prim mer, kolekc cija binarnih brojeva (izvrsni ili binarni fajl); h ; informacije o svom sa dire ektorijum, koji sadrzi i k e adrzaju, koj mogu biti je mes savina drug direktor gih rijuma (pod ddirektorijuma) i uobic cajenih fajlova.

S Struktur Direk ra ktorijum ma


fajlovi su gr rupisani zaj jedno u str rukturu dire ektorijuma. Fajl sistem je uredjen u m Svi f hijer rarhirskoj st trukturi, ka obrnuto drvo. Najvisi deo hijerarhije se t ao tradicionaln no naziv root. va

U dij jagramu izn nad, vidimo da direkto o orijum ee51 1ab sadrzi poddirektor rijum unixs stuff i fajl .txt proj.

P Pokretan Xter nje rminal s sesije


bi enuli Xterm sesiju, klik knite na Unix Terminal ikonicu na vasem de a esktopu, ili Da b ste pokre iz pa adajuceg menija

12 2

minal windo ce se po ow ojaviti sa U nix prompt-om, cekajuci na vas da pocnete t j s Xterm ubac civanje kom mandi.

13 3

Izlistavanje fajlova i direktorijuma


ls (list)
Kada se ulogujete prvi put, vas trenutni radni direktorijum je vas home direktorijum. Vas home direktorijum ima isto ime kao i vase korisnicko ime, na primer, ee91ab, it to je mesto gde se cuvaju vasi licni fajlovi i poddirektorijumi. Da bi ste saznali sta se nalazi u vasem home direktorijumu, ukucajte % ls (krace od list) ls komanda izlistava sadrzaj vaseg trenutnog radnog drektorijuma. Mozda nece biti vidljivih fajlova u vasem home direktorijumu, u tom slucaju, vratice se UNIX prompt. Alternativno, mozda vec postoje neki fajlovi ubaceni od strane Sistemskog Administratora kada je vas nalog kreiran. ls u stvari, ne cini, da svi fajlovi u vasem home direktorijumu budu izlistani, vec samo oni cije ime ne pocinje sa tackom (.) Fajlovi koji pocinju sa tackom (.) su poznati kao skriveni fajlovi i obicno sadrze vazne informacije programskih konfiguracija. Skriveni su jer ih ne trebate menjati osim u slucaju ako ste veoma upoznati sa UNIX-om!!! Da izlistate sve fajlove u vasem home direktorijumu ukljucujuci one cije ime pocinje sa tackom, ukucajte % ls -a ls je primer komande koja moze da sadrzi opcije: -a je primer jedne opcije. Opcije menjaju ponasanje komande. Postoje online manual stranice koje vam govore koje opcije odredjena komanda moze da sadrzi, i na koji nacin opcija modifikuje ponasanje komande. (Pogledajte kasnije u ovom tutorijalu)

Kreiranje Direktorijuma
mkdir (make directory)
Sada cemo kreirati poddirektorijum u vasem home direktorijumu da sadrzi fajlove koje cete vi kreirati i koristiti tokom ovog tutorijala. Da bi ste kreirali poddirektorijum unixstuff u vasem trenutnom radom direktorijumu ukucajte % mkdir unixstuff Da bi ste videli direktorijum koji ste upravo kreirali, ukucajte % ls

14

Premestanje u drugi direktorijum


cd (change directory)
Komanda cd direktorijum znaci promeni trenutni radni direktorijum u 'direktorijum'. Trenutni radni direktorijum moze biti direktorijum u kome se nalazite, tj. vasa trenutna pozicija u stablu fajl sistema. Da se premestite u direktorijum koji ste upravo kreirali, ukucajte % cd unixstuff Ukucajte ls da vidite sadrzaj (koji treba da je prazan)

Kreirajte jos jedan direktorijum unutar unixstuff direktorijuma sa imenom backups

Vezba 1a

Direktorijumi . i ..
Jos uvek u unixstuff direktorijumu, ukucajte % ls -a Kao sto mozete da vidite, u unixstuff direktorijumu (i u svim ostalim direktorijumima), postoje dva specijalna direktorijuma koji se nazivaju (.) i (..) U UNIX-u, (.) znaci trenutni direktorijum, tako da kucajuci % cd . Beleska:postojipraznopoljeizmedjucditacke

znaci ostani gde si (unixstuff direktorijum). Na pocetku, ovo se moze ciniti ne preterano korisnim, ali koristeci (.) kao ime trenutnog direktorijuma ce vam ustedeti dosta kucanja, kao sto cemo videti kasnije u tutorijalu. (..) znaci maticni direktorijum trenutnog direktorijuma, tako da kucajuci % cd .. ce vas dovesti u jedan direktorijum iznad u hijerarhiji (nazad u vas home direktorijum). Probajte. Beleska: kucajuci cd bez argumenata vas uvek vraca u vas home direktorijum. Ovo je veoma korisno ako se izgubite u fajl sistemu.

15

Putanje
pwd (print working directory)
Putanje vam omogucavaju da saznate gde se nazalite u odnosu na ceo fajl-sistem. Na primer, da bi ste pronasli apsolutnu putanju vaseg home direktorijuma, ukucajte cd da se vratite u vas home direktorijum i onda ukucajte % pwd Puna putanja ce izgledati nesto slicno ovom /a/fservb/fservb/fservb22/eebeng99/ee91ab sto znaci da ee91ab (vas home direktorijum) je u direktorijumu eebeng99 (direktorijum grupe),koji se nalazi u fservb fajl-serveru. Beleska: /a/fservb/fservb/fservb22/eebeng99/ee91ab se moze skratiti na /user/eebeng99/ee91ab

Vezba 1b
Koristite komande ls, pwd i cd da istrazite fajl sistem. (Zapamtite, ako se izgubite, ukucajte samo cd da se vratite u vas home direktorijum)

Vise o home direktorijumima i putanjama


Razumevanje putanja
Prvo kucajte cd da se vratite u vas home durektorijum, onda kucajte % ls unixstuff da izlistate sadrzaj unixstuff direktorijuma. Sada kucajte % ls backups Dobicete poruku slicnu ovoj backups: No such file or directory

16

To je zato sto, backups nije u vasem trenutnom radnom direktorijumu. Da bi koristili komandu na fajlu (ili direktorijumu) koji se ne nalazi u trenutnom radnom direktorijumu (direktorijum u kome se tranutno nalazite), morate da koristite cd da dodjete do tacnog direktorijuma, ili da navedete punu putanju. Da izlistate sadrzaj vaseg backups direktorijuma, morate ukucati % ls unixstuff/backups

~ (vas home direktorijum)


Home direktorijumi se mogu predstaviti i koriscenjem ~ znaka. Moze se koristiti za odredjivanje putanje koje pocinju u vasem home direktorijumu. Znaci kucajuci % ls ~/unixstuff izlistace se sadrzaj vaseg unixstuff direktorijuma, bez obzira gde se trenutno nalazite u fajl sistemu. Sta mislite da ce % ls ~ izlistati? Sta mislite da ce % ls ~/.. izlistati?

Pregled
ls lsa mkdir izlistavafajloveidirektorijume izlistavasvefajloveidirektorijume kreiradirektorijum

cddirectory premestaseuzadatidirektorijum cd cd~ cd.. pwd premestaseuhomedirektorijum premestaseuhomedirektorijum premestaseumaticnidirektorijumiznad prikazujeputanjutrenutnogdirektorijuma

17

Kopiranje fajlova
cp (copy)
cp fajl1 fajl2 je komanda koja pravi kopiju fajl1 u trenutnom radnom direktorijumu i naziva ga fajl2 Sta cemo sledece uraditi, uzecemo fajl koji je sacuvan na mestu sa slobodnim pristupom u fajl sistemu, i koristiti cp komandu da ga kopiramo u vas unixstuff direktorijum. Prvo, premestite se do vaseg unixstuff direktorijuma koristeci cd. % cd ~/unixstuff Onda u UNIX prompt-u, kucajte, % cp /vol/examples/tutorial/science.txt . (Beleska: Ne zaboravite tacku (.) na kraju. Zapamtite, u UNIX-u, tacka znaci trenutni direktorijum.) Gornja komanda znaci kopiraj fajl science.txt u trenutni direktorijum, sa istim imenom. (Beleska: Direktorijum /vol/examples/tutorial/ je mesto u kojem svi u odeljenju imaju prava pristupa i kopiranja. Ako niste na Univerzitetu, mozete preuzeti kopiju fajla ovde. Koristite 'File/Save As..' iz menija da ga sacuvate u vas unixstuff direktorijum.)

Vezba 2a
Kreirajte backup vaseg science.txt fajla tako sto ce te ga kopirati u fajl science.bak

Premestanje fajlova
mv (move)
mv fajl1 fajl2 premesta (ili preimenuje) fajl1 u fajl2 Da bi ste premestili fajl sa jednog mesta na drugo, koristite mv komandu. Ovo za efekat ima premestanje a ne kopiranje fajla, tako da cete imati samo jedan fajl a ne dva. Moze se koristiti i za preimenovanje fajla, premestajuci fajl u isti direktorijum, ali dajuci mu drugo ime. Sada cemo premestiti fajl science.bak u vas backup direktorijum. Prvo, premestite se do vaseg unixstuff direktorijuma (mozete li se setiti kako?). Onda, unutar unixstuff direktorijuma, kucajte % mv science.bak backups/. Ukucajte ls i ls backups da vidite dali je bilo uspesno.

18

Uklanjanje fajlova i direktorijuma


rm (remove), rmdir (remove directory)
Da izbrisete (uklonite) fajl, koristite rm komandu. Kao primer, kreiracemo kopiju science.txt fajla i onda ga obrisati. Unutar vaseg unixstuff direktorijuma, kucajte % cp science.txt tempfile.txt % ls (da vidite dali je fajl kreiran) % rm tempfile.txt % ls (da vidite dali je fajl izbrisan) Mozete koristiti rmdir komandu da uklonite direktorijum (prvo proverite dali je prazan). Pokusajte da uklonite backups direktorijum. Necete moci zato sto vam UNIX nece dozvoliti da uklonite direktorijum koji nije prazan.

Vezba 2b
Kreirajte direktorijum tempstuff koristeci mkdir, onda ga uklonite koristeci rmdir komandu.

Prikazivanje sadrzaja fajla na ekranu


clear (clear screen)
Pre nego sto pocnete sa sledecom sekcijom, mozete ocistiti terminal prozor od predjasnjih komandi tako da rezultat sledecih komandi bude citko razumljiv. U prompt-u, kucajte % clear Ovo ce ocistiti sav tekst i ostaviti samo % prompt na vrhu prozora.

cat (concatenate)
Komanda cat se moze koristiti za prikazivanje sadrzaja fajla na ekranu. Kucajte: % cat science.txt Kao sto mozete videti, fajl je duzi nego velicina prozora, tako da sadrzaj samo proleti cineci ka necitkim.

19

less
Komanda less ispisuje sadrzaj fajla na ekran jednu po jednu stranicu. Kucajte % less science.txt Pretisnite [space-bar] ako zelite da vidite sledecu stranicu, kucajte [q] kao zelite da zavrsite citanje. Kao sto mozete videti, less se cesce koristi nego cat za dugacke fajlove.

head
head komanda ispisuje prvih deset linija fajla na ekran. Prvo ocistite ekran a onda kucajte % head science.txt Onda kucajte % head -5 science.txt Kakva je razlika koristeci -5 sa head komandom?

tail
tail komanda ispisuje zadnjih deset linija fajla na ekran. Ocistite ekran i kucajte % tail science.txt Kako mozete pregledati zadnjih 15 linija fajla?

Pretrazivanje sadrzaja fajla


Jednostavna pretraga koristeci less
Koristeci less, mozete pretraziti tekstualni fajl za odredjenu rec (sablon). Na primer, da pretrazite science.txt za rec 'science', kucajte % less science.txt onda, jos uvek u less (tj. nemojte pritisnuti [q] da izadjete), ukucajte kosu liniju [/] i onda rec koju pretrazujete

20

/science Kao sto mozete videti, less trazi i obelezava trazenu rec. Kucajte [n] da trazite sledece pojavljivanje te reci.

grep (ne pitajte zasto se naziva grep)


grep je jedna od mnogih standardnih UNIX programa. On pretrazuje fajl za odredjene reci ili sablone. Prvo ocistite ekran, onda kucajte % grep science science.txt Kao sto mozete videti, grep je prikazao svaku liniju koja sadrzi rec science. Ili nije???? Pokusajte sa % grep Science science.txt grep komanda razlikuje mala i velika slova; pravi razlike izmedju Science i science. Da ignorisete razlike izmedju velikih/malih slova, koristite -i opciju, tj. kucajte % grep -i science science.txt Da pretrazite za frazu ili sablon, morate je staviti izmedju apostrofa (apostrof simbol). Na primer da bi pretrazili za spinning top, kucajte % grep -i 'spinning top' science.txt Neke od drugih opcija za grep su: v prikazi one linije koje se NE poklapaju n ispred svake linije koja se podudara stavi broj linije c prikazi samo ukupan broj linija koje se poklapaju

Probajte neke od njih i vidite razlicite rezultate. Ne zabravite, mozete koristiti vise od jedne opcije, na primer, broj linija koje ne sadrze reci science ili Science je % grep -ivc science science.txt

21

wc (word count)
Zgodna je i wc komanda, krace za broj reci. Da prebrojite reci za science.txt, kucajte % wc -w science.txt Da saznate koliko linija sadrzi fajl, kucajte % wc -l science.txt

Pregled
cp fajl1 fajl2 mv fajl1 fajl2 rm fajl cat fajl more fajl head fajl tail fajl wc fajl kopiraj fjl1 u fajl2 premesti ili preimenuj fajl1 u fajl2 ukloni fajl prikazi fajl prikazi fajl jedu po jednu stranicu prikazi prvih nekoliko linija fajla prikazi nekoliko zadnjih linija fajla izbroji broj linija/reci/znakova u fajlu

rmdir direktorijum ukloni direktorijum

grep 'keyword' fajl pretrazi fajl za odredjenu rec

22

Preusmeravanje
Vecina procesa pokrenutih UNIX komandama pisu u standardni izlaz (to jest, pisu u prozor terminala), i mnogi uzimaju njihov unos iz standardnog unosa (to jest, citaju ga sa tastature). Postoji i standardna greska, gde procesi pisu njihove error poruke, podrazumevano, u prozor terminala. Vec smo videli jedan primer koriscenja cat komande za upisivanje sadrzaja fajla na ekran. Sada ukucajte cat ali ne odredjujte fajl iz koga ce citati % cat Onda ukucajte nekliko reci na tastaturi i pritisnite taster [Return]. Na kraju drzite taster [Ctrl] i pritisnite [d] (krace se pise kao ^D ) da bi okoncali unos. Sta se dogodilo? Ako pokrenete cat komandu a ne odredite fajl iz koga ce citati, onda cita standardni usno (tastatura), i kada primi 'end of file' (^D), kopira ga u standardni izlaz (ekran). U UNIX-u, mozemo preusmeriti i unos i izlaz komandi. Preusmeravanje Izlaza Simbol > se koristi za preusmeravanje izlaza komande. Na primer, da bi smo kreirali fjal list1 koji sadrzi listu voca, kucajte % cat > list1 Onda kucajte imena nekog voca. Pritisnite [Return] nakon svakog. pear banana apple ^D (Control D to stop) Ono sto se desava je da cat komanda cita standardni unos (tastatura) i > preusmerava izlaz, koji normalno ide na ekran, u fajl list1 Da vidite sadrzaj fajla, kucajte % cat list1

Vezba 3a
Koristeci gornju metodu, kreirajte drugi fajl list2 da sadrzi sledece voce: narandza, sljiva, mango, grejpfrut. Procitajte sadrzaj list2 Forma dodaje standardni izlaz u fajl. Znaci da bi dodali vise stavki u list1, kucajte % cat >> list1

23

Onda kucajte imena voca peach grape orange ^D (Control D to stop) Da vidite sadrzaj fajla, kucajte % cat list1 Sada bi trebalo da imate dva fajla. Jedan sadrzi sest voca, a drugi sadrzi cetiri voca. Sada cemo koristiti cat komandu da spojimo (concatenate) list1 i list2 u novi fajl biglist. Kucajte % cat list1 list2 > biglist Ovo znaci da cita sadrzaj list1 i list2, i salje izlazni tekst u fajl 'biglist Da vidite sadrzaj novog fajla, kucajte % cat biglist

Preusmeravanje Unosa
Simbol < se koristi da se preusmeri unos komande. Komanda sort sortira listu po alfabetskom ili numerickom redu. Kucajte % sort Onda kucajte imena nekog povrca. Pritisnite [Return] nakon svakog. carrot beetroot artichoke ^D (control d to stop) Izlaz ce biti artichoke beetroot carrot

24

Koristeci < mozete preusmeriti unos da dodje iz fajla a ne sa tastature. Na primer, da sortirate listu voca,kucajte % sort < biglist i sortirana lista ce se prikazati na ekranu. Da prenesete sortiranu listu u fajl, kucajte, % sort < biglist > slist Koristite cat da vidite sadrzaj fajla slist

Cevi
Da vidite ko je na sistemu pored vas, kucajte % who Jedna metoda kojom dobijate sortiranu listu imena je da kucate, % who > imena.txt % sort < imena.txt Ovo je malo sporo i i morate da zapamtite da uklonite privremeni fajl names kada zavrsite. Ono sto stvarno zelite da uradite je da povezete izlaz who komande direktno do unosa sort komande. Ovo je upravo ono sto cevi rade. Simbol za cev je vertikalna crta | Na primer, kucajuci % who | sort ce dati isti rezultat kao i gore, ali brze i cistije. Da saznate koliko ima ulogovanih korisnika, kucajte % who | wc -l

Vezba 3b
a2ps -Phockney tekstfajl je komanda za stampanje postscript fajla na stampacu hockney. Koristeci cevi, stampajte sve linije iz list1 i list2 koje sadrze slovo 'p', sortirajte rezultat, i posaljite na stampanje printeru hockney.

25

Pregled
komanda>fajl komandafajl komanda<fajl preusmeravastandardniizlazufajl dodajestandardniizlazufajl preusmeravastandardniunosizfajla

komanda1komanda2 prosledjujekrozcevizlazizcommand1dounosacommand2 catfajl1fajl2>fajl0 sort who spajafile1ifile2ufile0 sortirapodatke izlistavatrenutnoulogovanekorisnike

a2psPprintertekstfajl stampatekstualnifajldonavedenogstampaca lprPprinterpsfajl stampapostscriptfajldonavedenogstampaca

26

Wildcards
Znaci * i ?
Znak * se naziva wildcard, i podudara se sa nijednim ili vise znak(ova) u imenu fajla (ili direktorijuma). Na primer, u vasem unixstuff direktorijumu, kucajte % ls list* Ovo ce izlistati sve fajlove u trenutnom direktorijumu koji pocinju sa list. Pokusajte sledece % ls *list Ovo ce izlistati sve fajlove u trenutnom direktorijumu koji se zavrsavaju sa .list Znak ? ce zameniti samo jedan znak. Tako da ce se ls ?ouse podudarati sa fajlovima kao house i mouse, ali ne i grouse. Pokusajte sledece % ls ?list

Konvencije imena fajlova


Trebalo bi da kazemo da je direktorijum samo specijalni tip fajla. Tako da pravila i konvencije za imenovanje fajlove vazi i za direktorijume. U imenovanju fajlova, znaci sa specijalnim znacenjima kao sto su / * & % , se trebaju izbegavati. Isto tako, izbegavajte i da koristite pauze izmedju imena. Najbezbedniji nacin da se fajl imenuje je da se korsite alfanumericki znaci, sto znaci, slova i brojevi, zajedno sa _ (donja crta) i . (tacka). Imena fajlova konvencionalno pocinju sa malim slovom, i mogu se zavrsiti tackom i grupom slova koja upucuju na sadrzaj fajla. Na primer, svi fajlovi koji sadrze C kod se mogu imenovati sa .c na kraju, na primer, prog1.c . Onda da bi izlistali sve fajlove koji sadrze C kod u vasem home direktorijumu, treba samo da ukucate ls *.c u tom direktorijumu.

Paznja:nekeaplikacijedajuistaimenasvimizlaznimfajlovimakojegenerisu.Naprimer,nekikompajleri,u
slucajudaseneodrediodgovarajucaopcija,dajukompajliranefajlovesaimenimaa.out.Akozaboraviteda koristitetuopciju,ondatrebatedapreimenujetetajkompajliranifajlodmah,usuprotnomsledecitakavfajlce gaprekopiratiibiceizgubljen.

27

Trazenje pomoci
On-line Prirucnici
Postoje on-line prirucnici koji pruzaju informacije o vecini komandi. Man stranice vam govore koje su opcije dostupne za odgovarajuce komande, i kako svaka opcija menja ponasanje komande. Kucajte man komanda da procitate uputstvo za odredjenu komandu. Na primer, da bi ste saznali vise o wc (word count) komandi, kucajte % man wc Alternativno % whatis wc daje opis komande u jednoj liniji, ali izostavlja bilo kakve informacije o opcijama itd.

Apropos
Kada niste sigurni za tacno ime komande, % apropos keyword ce vam dati komande koje sadrze keyword u zaglavljima njihovih man stranica. Na primer, pokusajte da kucate % apropos copy

Pregled
* ? mankomanda zamenjujebilokojibrojznakova zamenjujejedanznak procitajonlinemanstranicuzakomandu

whatiskomanda kratakopiskomande aproposkeyword nadjikomandesakeywordunjihovimmanstranicama

28

Bezbednost faj siste jl ema (p prava pristup p pa)


tuff direktorijumu, kuc cajte U vasem unixst % ls -l (l fo long li s or isting!) Videc cete da sad dobijate dosta deta da alja o sadrz zaju vaseg direktorijum slicno primeru ma, p ispod d.

Svak fajl (i dire ki ektorijum) ima pridruz zena prava pristupa, koja se mo k ogu naci kuc cajuci ls l. Ist tako, ls - daje do to -lg odatne infor rmacije o to ome koja grupa je vla g asnik fajla (beng95 u ( slece primeru em u): -r rwxrw-r-- 1 ee51ab beng95 24 450 Sept29 11:52 fi 9 ile1 U koloni sa leve strane nalazi se niz od 10 znak e kova koji se sastoji od znakova d, r, w, x, e d povremeno, s ili S. Ako je d prisu , o utno, onda ce se nalaz na krajn c ziti njoj levoj st trani niza, i , i, p predstavlja dire ektorijum: u suprotno m - ce biti pocetni zna niza. ak ova predsta avljaju dozv vole, ili prav pristupa i predstav va a, vljena su kao tri k Ostalih 9 znako pe grup po 3 znaka. upa od 3 zn naka predst tavljaju doz zvole za korisnika koji je vlasnik fajla (ili i Leva gru direkto orijuma) (ee51ab u go ornjem prim meru); srednja grupa pred dstavlja doz zvole za gru upu ljudi ko ojima fajl ( ili direktorij jum) pripada (eebeng9 u gornje primeru); 95 em grupa kr rajnje destn predstav no vlja dozvole za sve os e stale korisn ike. Znac r, w, itd., se malo ra ci , azlikuju u z znacenju u zavisnosti dali se odn nose na jednostavan fajl ili direktorijum.

29 9

Prava pristupa za fajlove.


r (ili -), predstavlja prava citanja (ili suprotno), sto znaci, prisustvo ili odsustvo dozvole za citanje kopiranje fajla w (ili -), predstavlja prava pisanja (ili suprotno), sto znaci, dozvolu (ili suprotno) za menjanje falja x (ili -), predstavlja dozvolu za izvrsenje (ili suprotno), sto znaci, dozvolu za izvrsenje fajla, gde je to odgovarajuce

Prava pristupa za direktorijume.


r dozvoljava korisnicima da izlistaju fajlove u tom direktorijumu; w znaci da korisnici mogu da izbrisu fajlove iz tog direktorijuma ili da premestaju fajlove u njega; x znaci pravo pristupa fajlovima u tom direktorijumu. Ovo znaci da mozete citati fajlove u direktorijumu u slucaju da imate dozvolu citanja za individualne fajlove. Znaci, da bi ste mogli da procitate fajl, morate imati pravo pristupa za direktorijum koji sadrzi taj fajl, i isto tako za bilo koji direktorijum koji sadrzi taj direktorijum kao poddirektorijum, i tako dalje, do tri.

Neki primeri
-rwxrwxrwx fajl koji svako moze da cita, menja i izvrsava (i brise). -rwnema prava izvrsenja (npr. vas mailbox fajl).

Promena prava pristupa


chmod (changing a file mode)
Samo vlasnik fajla moze da koristi chmod da menja dozvole fajla. Opcije za chmod su sledece Znak u g o a r w x + korisnik grupa ostali svi citanje pisanje (i brisanje) izvrsavanje (i pristup direktorijumu) dodaj dozvolu oduzmi dozvolu Znacenje

Na primer, da uklonite dozvole za citanje, menjanje i izvrsenje fajla biglist za grupu i ostale, kucajte % chmod go-rwx biglist Ovo nece imati uticaj na ostale dozvole. Da date dozvole za citanje i menjanje na fajlu biglist za sve, % chmod a+rw biglist

30

Vezba 5a
Probajte da menjate pristupne dozvole na fajlu science.txt i direktorijumu backups Koristite ls -l da proverite da su se dozvole promenile.

Procesi i Poslovi
Proces je izvrsni program identifikovan jedinstvenim PID-om (process identifier). Da vidite informacije o vasim procesima, sa njihovim dodeljenim PID-om i statusom, kucajte % ps Proces moze biti u prvom planu, u pozadini, ili moze biti suspendovan. Generalno shell ne vraca UNIX prompt dok se trenutni proces ne zavrsi. Nekim procesima treba dosta vremena da se izvrse i zauzimaju terminal. Stavljajuci dug proces u pozadinu za efekat ima da se UNIX prompt vrati odmah, i ostali zadaci se mogu izvrsavati dok originalni proces nastavlja izvrsavanje. Pokretanje procesa u pozadini Da proces posaljete u pozadinu, ukucajte & na kraju komandne linije. Na primer, komanda sleep ceka zadati broj sekundi pre nego sto nastavi. Kucajte % sleep 10 Ovo ce sacekati 10 sekundi pre nego sto vrati command prompt %. Dok se command prompt ne vrati, nemozete nista uraditi osim da cekate. Da pokrenete sleep u pozadini, kucajte % sleep 10 &

[1] 6259 Znak & pokrece posao u pozadini i vraca prompt odmah, dozvoljavajuci vam da pokrenete druge programe dok cekate da se ovaj zavrsi. Prvu liniju u gornjem primeru kuca korisnik; sledeca linija, predstavljajuci broj posla i PID, prikazuje masina. Korisniju se saopstava broj posla (pocevsi od broja 1) u zatvorenim viticastim zagradama, zajedno sa PID i saopstava mu se kada se proces u pozadini zavrsi. Stavljanje u pozadinu je korisno za poslove kojima treba dosta vremena za izvrsenje.

31

Stavljanje trenutnog procesa iz prvog plana u pozadinu


U prompt-u, kucajte % sleep 100 Mozete suspendovati proces koji radi u prvom planu tako sto cete drzati taster [control] i kucajuci [z] (pise se kao ^Z) Onda da ga stavite u pozadinu, kucajte % bg

Beleska: nemojte stavljati u pozadinu programe koji zahtevaju interakciju korisnika npr. pine

Izlistavanje suspendovanih i procesa u pozadini


Kada je proces pokrenut, stavljen u pozadinu ili suspendovan, bice ubacen na listu zajedno sa brojem posla. Da pregledate ovu listu, kucajte % jobs Primer liste poslova moze biti [1] Suspended sleep 100 [2] Running netscape [3] Running nedit Da ponovo pokrenete (u prvom planu) suspendovani proces, kucajte % fg %jobnumber Na primer, da ponovo pokrenete sleep 100, kucajte % fg %1 Kucajuci fg bez broja posla stavlja u prvi plan zadnji suspendovani proces.

32

Stopiranje procesa
kill (terminate or signal a process)
Nekada je neophodno da se proces stopira (na primer, kada se izvrsni program nadje u vecitoj petlji) Da stopirate posao koji radi u prvom planu, kucajte ^C (control c). Na primer, pokrenite % sleep 100 ^C Da stopirate suspendovan ili proces u pozadini, kucajte % kill %jobnumber Na primer, pokrenite % sleep 100 & % jobs Ako je posao broj 4, kucajte % kill %4 Da ovo proverite, pogledajte ponovo listu poslova da vidite dali je proces uklonjen.

ps (process status)
Alternativno, procesi se mogu stopirati tako sto se nadje njihov broj procesa (PID) i koristeci kill PID_broj % sleep 100 & % ps

PID TT S TIME COMMAND 20077 pts/5 S 0:05 sleep 100 21563 pts/5 T 0:00 netscape 21873 pts/5 S 0:25 nedit

33

Da stopirate proces sleep 100, kucajte % kill 20077 i onda kucajte ps opet da vidite dali je uklonjen sa liste. Ako proces odbija da bude stopiran, koristite opciju -9, tj. Kucajte % kill -9 20077

Beleska: nije moguce stopirati procese drugih korisnika !!!

Pregled
ls -lag komanda & ^C ^Z bg jobs fg %1 kill %1 ps kill 26152 izlistava prava pristupa za sve fajlove pokrece komandu u pozadini stopira proces koji radi u prvom planu suspenduje posao koji radi u prvom planu stavlja u pozadinu suspendovani posao izlistava trenutne poslove stavlja u prvi plan posao broj 1 stopira posao broj 1 izlistava trenutne procese stopira proces broj 26152 chmod [opcije] fajl menja prava pristupa za navedeni fajl

34

Ostale korisne UNIX komande


quota
Svim studentima se dodeljuje odredjeni prostor na disku na fajl sistemu za njihove licne fajlove, obicno oko 100Mb. Ako prekoracite dodeljeni prostor, daje vam se 7 dana da uklonite visak fajlova. Da proverite vas trenutni prostor i koliko ste ga iskoristili, kucajte % quota -v

df
Komanda df izvestava o preostalom prostoru na fajl sistemu. Na primer, da proverite koliko je prostora preostalo na fajlserveru, kucajte % df .

du
Komanda du daje broj kilobajta za svaki pod-direktorijum. Korisno ako ste prekoracili vas dodaljeni prostor i zelite da saznate koji direktorijum ima najvise fajlova. U vasem home direktorijumu, kucajte % du

compress
Da smanjite velicinu fajla, plus oslobadjajuci dragoceni prostor na disku. Na primer, kucajte % ls -l science.txt i zapisite velicinu fajla. Onda da kompresujete science.txt, kucajte % compress science.txt Ovo ce kompresovati fajl i staviti ga u fajl science.txt.Z Da vidite promene u velicini, kucajte ls -l opet. Da dekompresujete fajl, koristite komandu uncompress. % uncompress science.txt.Z

35

gzip
Ovo isto kompresuje fajl, i efikasniji je nego compress. Na primer, da zip-ujete science.txt, kucajte % gzip science.txt Ovo ce zip-ovati fajl i staviti ga u fajl science.txt.gz Da unzip-ujete fajl, koristite komandu gunzip. % gunzip science.txt.gz

file
file razvrstava zadate fajlove prema tipu podataka koje sadrze, na primer ascii (text), slike, kompresovani podaci, itd Da izvestite o svim fajlovima u vesem home direktorijumu, kucajte % file *

history
C shell cuva rednu listu svih komandi koje ste uneli. Svakoj komandi je dodat broj prema redu kojem su unete. % history (show command history list) Ako koristite C shell, mozete koristiti znak uzvika (!) da lako pozovete komande. % !! (poziva zadnju komandu)

% !-3 (poziva trecu najskoriju komandu)

% !5 (poziva petu komandu u listi)

% !grep (poziva zadnju komandu koja pocinje sa grep) Mozete povecati velicinu history buffer-a tako sto cete kucati % set history=100

36

Kompajliranje UNIX softverskih paketa


Mi imamo dosta javnih domena i komercijalnih softverskih paketa instaliranih na nasim sistemima, koji su dostupni svim korisnicima. Ipak, studentima je dozvoljeno preuzimanje i instaliranje malih softverskih paketa u njihovom licnom home direktorijumu, softver koji je obicno koristan samo njima. Postoji nekoliko koraka koji su potrebni za instaliranje softvera. Lociranje i preuzimanje izvornog koda (koji je obicno kompresovan) Raspakivanje izvornog koda Kompajliranje koda Instaliranje nastalog izvrsnog fajla Postavljanje putanje do instalacionog direktorijuma Od gore navedenih koraka, verovatno najteza je faza kompajliranja.

Kompajliranje Izvornog Koda


Sav kod jezika visokog nivoa se mora konvertovati u formu koju kompjuter razume. Na primer, izvorni kod C jezika se konvertuje u jezik nizeg nivoa koji se naziva assembly jezik. Kod assembly jezika nastalog u predhodnoj fazi se onda konvertuje u objektni kod cije delove koda kompjuter direktno razume. Krajnja faza u kompajliranju programa ukljucuje linkovanje objektnog koda u biblioteke koda koje sadrze odredjene ugradjene funkcije. Ova krajnja faza daje izvrsni program. Rucno pokretanje svih ovih koraka je komplikovano i izvan mogucnosti preosecnog korisnika. Razvijeno je nekoliko korisnih alata za programere i krajnje korisnike da bi se ovi koraci pojednostavili.

make i Makefile
Komanda make omogucava programerima da upravljaju velikim programima ili grupom programa. Pomaze u razvoju velikih programa tako sto vodi racuna o tome koji delovi celog programa su se promenili, kompajlirajuci samo one delove programa koji su se promenili od zadnjeg kompajliranja. Program make dobija svoj set pravila kompajliranja od tekstualnog fajla koji se naziva Makefile koji se nalazi u istom direktorijumu sa izvornim fajlovima. Sadrzi informacije o tome kako kompajlirati softver, tj. nivo optimizacije, dali da ukljuci debugging informacije u izvrsnom fajlu. Isto tako sadrzi i infrormacije o tome gde da instalira kompajlirane binarne pakete (izvrsne fajlove), man stranice, podatke, zavisne biblioteke, konfiguracione fajlove, itd. Neki paketi zahtevaju od vas da rucno uredite Makefile da podesite krajnji instalacioni direktorijum i ostale parametre. Ipak, mnogi paketi se sada distribuiraju sa GNU konfiguracionim alatima.

37

configure
Kako se broj UNIX varijacija povecao, postalo je teze pisati programe koji bi se mogli pokretati na svim varijacijama. Razvojni timovi cesto nisu imali pristup svakom sistemu, i karakteristike nekih sistema su se menjale od verzije do verzije. GNU configure i build sistem pojednostavljuje gradjenje programa koji se distribuiraju u izvornom kodu. Svi programi se grade koristeci jednostavni, standardizovani, proces u dva koraka. Programski builder ne zahteva instaliranje nikakvih specijalnih alata da bi izgradio program. Shell skripta configure pokusava da pogodi tacne vrednosti za razlicite varijable koje sistem zahteva koje se koriste tokom kompajliranja. Koristi te vrednosti da kreira Makefile u svakom direktorijumu paketa. Najjednostavniji nacin za kompajliranje paketa je: 1. cd do direktorijuma koji sadrzi izvorni kod paketa. 2. Kucajte ./configure da konfigurisete paket za vas sistem. 3. Kucajte make da kompajlirate paket. 4. Opcionalno, kucajte make check da pokrenete self-testove koji dolaze sa paketom. 5. Kucajte make install da instalirate programe i data fajlove i dokumentaciju. 6. Opciono, kucajte make clean da uklonite binarne pakete programa i objektne fajlove iz direktorijuma izvornog koda Configure alatka podrzava sirok dijapazon opcija. Obicno mozete koristiti opciju help da dobijete listu interesantnih opcija za odredjenu konfiguracionu skriptu. Jedine genericke opcije koje ce te verovatno koristiti su prefix i exec-prefix opcije. Ove opcije se koriste za odredjivanje instalacionih direktorijuma. Direktorijum imenovan sa prefix opcijom ce sadrzati nezavisne fjalove u odnosu na masinu kao sto su dokumentacija, podaci i konfiguracioni fajlovi. Direktorijum imenovan sa exec-prefix opcijom, (koja je normalno pod-direktorijum prefix direktorijuma), sadrzace zavisne fajlove u odnosu na masinu kao sto su izvrsni fajlovi.

38

Preuzimanje izvornog koda


Za ovaj primer, preuzecemo jedan slobodan sftver koji konvertuje razlicite dimenzione jedinice. Prvo kreirajte download direktorijum % mkdir download

Ekstraktovanje izvornog koda


Idite u vas download direktorijum i izlistajte sadrzaj. % cd download

% ls -l Kao sto mozete videti, ime fajla se zavrsava sa tar.gz. Komanda tar stavlja nekoliko fajlova i direktorijuma u jedan jedini tar fajl. Ovo se onda kompresuje koristecigzip komandu (kreirajuci tar.gz fajl). Prvo unzip-ujte fajl koristeci gunzip komandu. Ovo ce kreirati .tar fajl. % gunzip units-1.74.tar.gz Onda ekstraktujte sadrzaj tar fajla. % tar -xvf units-1.74.tar Jos jednom, izlistajte sadrzaj download direktorijuma, onda idite do units-1.74 poddirektorijuma. % cd units-1.74

39

Konfigurisanje i kreiranje Makefile


Prva stvar koju trebate uraditi je da pazljivo procitate README i INSTALL tekstualne fajlove (koristite less komandu). Oni sadrze vazne informacije o tome kako kompajlirati i pokrenuti softver. Units paket koristi GNU configure sistem da kompajlira izvorni kod. Moracemo da odredimo instalacioni direktorijum, posto ce to podrazumevano biti glavna sistemska oblast za koju necete imati prava upisa. Trebamo da kreiramo instalacioni direktorijum u vasem home direktorijumu. % mkdir ~/units174 Onda pokrenite configure alatku podesavajuci instalacionu putanju na njega. % ./configure --prefix=$HOME/units174

BELESKA $HOME varijabla je primer environment varijable. Vrednost za $HOME je putanja do vaseg home direktorijuma. Samo kucajte % echo $HOME da prikazete sadrzaj ove varijable. Vise cemo uciti o environment varijablama u kasnijem poglavlju. Ako je configure pravilno zavrsio, onda je kreirao Makefile sa svim neophodnim opcijama. Mozete pregledati Makefile ako zelite (koristite less komandu), ali nemojte menjati njen sadrzaj.

Build-ovanje paketa
Sada mozete nastaviti i build-ovati paket tako sto cete pokrenuti make komandu. % make Nakon par minuta (u zavisnosti od brzine kompjutera), izvrsni fajlovi ce biti kreirani. Mozete proveriti dali se sve uspesno kompajliralo tako sto cete kucati % make check Ako je sve u redu, sada mozete instalirati paket. % make install Ovo ce instalirati fajlove u ~/units174 direktrijum koji ste ranije kreirali.

40

Pokretanje softvera
Sada ste spremni da pokrenete softver (pretpostavljajuci da je sve radilo). % cd ~/units174 Ako izlistate sadrzaj units direktorijuma, videcete odredjeni broj pod-direktorijuma. bin Binarni izvrsni fajlovi

info GNU info formirana dokumentacija man Man stranice share Serovani data fajlovi Da pokrenete program, idite u bin direktorijum i kucajte % ./units Kao primer, konvertujte 6 fita u metre. You have: 6 feet

You want: metres

* 1.8288 Ako dobijete odgovor 1.8288, cestitamo, radi. Da vidite koje jedinice se mogu konvertovati, pogledajte data fajl u share direktorijumu (lista je veoma opsirna). Da procitate punu dokumentaciju, postavite se u info direktorijum i kucajte % info --file=units.info

Oduzimanje nepotrebnog koda


Kada se jedan softver razvija, za programera je korisno da ukljuci debugging informacije u krajnji izvrsni fajl. Na ovaj nacin, ako postoje problemi kada se pokrene izvrsni fajl, programer moze da ucita izvrsni fajl u debugging softverski paket i pronadje softverske bug-ove. Ovo je korisno za programera, ali nepotrebno za korisnika. Mozemo pretpostaviti da je paket, kada bude zavrsen i dostupan za preuzimanje vec testiran i debugg-ovan. Ipak, kada smo kompajlirali softver gore, debugging informacija je jos uvek kompajlirana u krajnji izvrsni fajl. Posto je malo verovatno da ce nam trebati ove debugging informacije,

41

mozemo ih odvojiti od krajnjeg izvrsnog fajla. Jedna od prednosti ovoga je dosta manji izvrsni fajl, koji bi trebalo da radi malo brze. Ono sto cemo uraditi sada je da pogledamo velicine binarnog fajla pre i posle. Prvo idite u bin direktorijum units instalacionog direktorijuma. % cd ~/units174/bin

% ls -l Kao sto mozete videti, fajl tezi preko 100 kbajta. Mozete dobiti vise informacije o tipu fajla koristeci komandu file. % file units

units: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), not stripped Da odvojite sve debug i informacije o broju linija iz binarnog fajla, koristite komandu strip % strip units

% ls -l Kao sto mozete videti, fajl sada ima 36 kbajta - trecina njegove originalne velicine. Dve trecine binarnog fajla je bio debug kod !!! Pogledajte opet informacije o fajlu. % file units

units: ELF 32-bit LSB executable, Intel 80386, version 1, dynamically linked (uses shared libs), stripped

SAVET: Mozete koristiti make komandu da instalirate pre-stripped kopije svih binarnih fajlova kada instalirate paket. Umesto da kucate make install, jednostavno kucajte make install-strip

42

UNIX Varijable
Varijable su nacin preosledjivanja informacija od shell-a do programa kada ih pokrecete. Programi gledaju u okruzenju za odredjene varijable i ako ih nadju koristice njihove sacuvane vrednosti. Neke su podesene od strane sistema, ostale od vas, opet neke druge od strane shell-a, ili nekog preograma koji ucitava drugi program. Standardne UNIX varijable su podeljene u dve kategorije, environment varijable i shell varijable. Prosto receno, shell varijable vaze samo za trenutnu instancu shell-a i koriste se za podesavanje kratkorocnih radnih uslova; environment varijable imaju znacaj koji doseze dalje, i one podesene pri logovanju su validne za celo trajanje sesije. Konvencionalno, environment varijable imaju VELIKA SLOVA i shell varijable imaju imena sa malim slovima.

Environment Varijable
Primer environment varijable je OSTYPE varijabla. Njena vrednost je trenutni operativni sistem koji koristite. Kucajte % echo $OSTYPE Ostali primeri environment varijabli su USER (vase login ime) HOME (putanja vaseg home direktorijuma) HOST (ime kompjutera koji koristite) ARCH (arhitektura kompjuterskog procesora) DISPLAY (ime kompjuterskog ekrana za prikazivanje X prozora) PRINTER (podrazumevani stampac na koji se salju poslovi za stampanje) PATH (direktorijumi koje shell pretrazuje u potrazi za komandom)

Nalazenje trenutnih vrednosti ovih varjabli


ENVIRONMENT varijable se postavljaju koristeci setenv komandu, prikazuju se koristeci printenv ili env komande, i uklanjaju se koristeci unsetenv komandu. Da prikazete sve vrednosti ovih varijabli, kucajte % printenv | less

43

Shell Varijable
Primer shell varijable je history varijabla. Njena vrednost je koliko shell komandi da sacuva, omogucavajuci korisniku da pregleda sve komande koje je ranije uneo. Kucajte % echo $history Ostali primeri shell varijabli su cwd (vas trenutni radni direktorijum) home (putanja vaseg home direktorijuma) path (direktorijumi koje shell pretrazuje u potrazi za komandom) prompt (tekstualni string koji se koristi za upit interaktivnih komandi shell vas login shell)

Nalazenje trenutnih vrednosti ovih varjabli


SHELL varijable se i postavljaju i prikazuju koriscenjem set komande. Mogu se ukloniti koriscenjem unset komande. Da prikazete sve vrednosti ovih varijabli, kucajte % set | less

Pa kakva je onda razlika izmedju PATH i path ?


Uopsteno, environment i shell varijable koje imaju isto ime (osim velikih i malih slova) su odvojene i nezavisne, osim mogucnosti da imaju iste pocetne vrednosti. Ipak postoje i neki izuzeci. Svaki put kada se shell varijable home, user i term promene, odgovarajuce environment varijable HOME, USER i TERM dobijaju iste vrednosti. Ipak, menjanje environment varijabli nema efekat na odgovarajuce shell varijable. PATH i path odredjuju direktorijume koji se pretrazuju za komande i programe. Obe varijable uvek predstavljaju istu listu direktorijuma, i menjanje bilo koje automatski menja i ovu drugu.

44

Koriscenje i postavljanje varijabli


Svaki put kada se ulogujete na UNIX host, sistem gleda u vas home direktorijum za fajlove za pokretanje. Informacije u ovim fajlovima se koriste da podese vase radno okruzenje. C i TC shell koriste dva fajla koji se nazivaju .login i .cshrc (primetite da oba imena fajlova pocinju sa tackom). Pri logovanju C shell prvo cita .cshrc i onda .login .login se koristi za postavljanje uslova koje ce se primeniti na celu sesiju i da se izvrse postupci koji su vazni samo prlikom logovanja. .cshrc se koristi za postavljanje uslova i izvrsava postupke specificne za shell i prilikom svakog njenog pozivanja. Uputstva su da se ENVIRONMENT varijable postavljaju u .login fajlu i SHELL varijable u .cshrc fajlu. UPOZORENJE: NIKADA ne stavljajte komande koje pokrecu graficke prozore (npr. web citac) u vasem .cshrc ili .login fajlu.

Postavljanje shell varijabli u .cshrc fajlu


Na primer, da promenite broj shell komandi koje se cuvaju u history listi, morate da postavite shell varijablu history. Podrazumevano je podesena na 100, ali ako zelite ovaj broj mozete da povecate. % set history = 200 Proverite dali je ovo radilo tako sto kucate % echo $history Ipak, ovo je postavilo varijablu koja ce ostati samo dok je trenutni shell otvoren. Ako otvorite novi xterm prozor, imace samo podrazumevanu podesenu history vrednost. Da podesite vrednost za history ZA STALNO, moracete da dodate set komandu u .cshrc fajl. Prvo otvorite .cshrc fajl u uredjivacu teksta. Lak, user-friendly uredjivac koji mozete koristiti je nedit. % nedit ~/.cshrc Dodajte sledecu liniju NAKON liste ostalih komandi. set history = 200 Sacuvajte fajl i kazite shell-u da ponovo ucita svoj .cshrc fajl koristeci shell source komandu. % source .cshrc Proverite dali je ovo radilo tako sto kucate % echo $history

45

Podesavanje putanje
Kada kucate komandu, vasa path (ili PATH) varijabla definise u koje ce direktorijume shell traziti da nadje komandu koju ste ukucali. Ako sistem prikaze poruku koja kaze command: Command not found, ovo znaci da komanda ne postoji na sistemu uopste ili jednostavno nije u vasoj putanji. Na primer, da pokrenete units, morate da direktno odredite putanju za units (~/units174/bin/units), ili morate imati direktorijum ~/units174/bin u vasoj putanji. Mozete ga dodati na kraju vase postojece putanje ($path predstavlja ovo) tako sto izdajete komandu: % set path = ($path ~/units174/bin) Testirajte dali je ovo radilo tako sto cete pokrenuti units u bilo kom drugom direktorijumu osim u onom u kojem se units ustvari nalazi. % cd; units

SAVET: Mozete pokrenuti vise komandi u jednoj liniji tako sto cete ih odvojiti tackom i zarezom. Da dodate ovu putanju za STALNO, dodajte sledecu liniju u vas .cshrc NAKON liste ostalih komandi. set path = ($path ~/units174/bin)

46

*BSD lista referentnih komandi


Predgovor
Ovo su samo neke zabeleske jer se komande zaboravljaju, pogotovu ako se koristi vise operativnih sistema. Zbog toga sto postoje razlike izmedju recimo nacina kompajliranja kernela u pojedinim verzijama ovde cemo navesti komande koje se odnose na FreeBSD 7, NetBSD 4 i OpenBSD 4.

FreeBSD
Azuriranje izvornog koda
Koriscenjem csup: *default tag=RELENG_7 *default host=cvsup2.FreeBSD.org *default prefix=/usr *default base=/var/db *default release=cvs delete use-rel-suffix compress src-all csup -g -L 2 <supfile>

Pravljenje i instaliranje Kernela & Userland-a


cd /usr/src make buildworld make buildkernel KERNCONF=GENERIC make installkernel KERNCONF=GENERIC shutdown -r now (boot -s) cd /usr/src mergemaster -p make installworld mergemaster exit

47

Azuriranje kolekcije softvera (drvo portova, pkgsrc)


Koriscenjem portsnap: portsnap fetch portsnap extract drvo portova portsnap update Koriscenjem cvsup: csup -L 2 ports-supfile supfile make fetchindex ili make index koristi portupgrade # Primer: /usr/share/examples/cvsup/ports# Potrebno samo prvi put kada se preuzima

# portsdb -F ili portsdb -Uu ako se

Instalacija binarnih paketa


export PACKAGESITE=ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7stable/Latest/. pkg_add rv bash2

Instalacija softvera iz izvornog koda


cd /usr/ports/security/sudo /usr/pkgsrc make install clean portinstall //imeporta// # Za NetBSD putanja je

Izlistavanje instaliranih paketa


pkg_info # -v za opsirnije informacije

48

Brisanje instaliranih paketa


pkg_delete make uninstall make deinstall

Izlistavanje zastarelih paketa


pkg_version v Makefile/INDEX-7 portversion -l '<' sa verzijama u INDEX.db portmaster -L # Uporedjuje /var/db/pkg sa verzijama u

# sysutils/portupgrade - Uporedjuje /var/db/pkg

# sysutils/portmaster

Azuiranje koriscenjem binarnih paketa


portupgrade -PP gnome2

Azuriranje softvera koriscenjem izvornog koda


portupgrade -R firefox portmanager x11/gnome2 portmaster a # ports-mgmt/portupgrade # ports-mgmt/portmanager # ports-mgmt/portmaster

Razna ciscenja u kolekciji portova / pkgsrc stablu


make clean make distclean portsclean -C kolekciji portova portsclean -D portsclean -DD jednog instaliranog porta # Uklanja work direktorijum # Uklanja distfile porta i radi make clean # Uklanja sve work direktorijume u

# Uklanja stare distfile-ove # Uklanja sve distfile-ove koji se ne ticu ni

49

Izlistavanje paketa sa bezbednosnim propustima


portaudit Fda

Enkripcija Swap particije


GBDE Za FreeBSD > 6.0 staviti sledece u /etc/fstab: /dev/ad0s1b.bde none swap sw 0 0

Za FreeBSD <6.0 potreban je i sledeci unos u /etc/rc.conf: gbde_swap_enable="YES" Geli Geli je dostupan od FreeBSD 6.0 verzije. Dodati sledeci unos u /etc/fstab: /dev/ad0s1b.eli none swap sw 0 0

50

You might also like