Professional Documents
Culture Documents
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.
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.
- 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.
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.
U dij jagramu izn nad, vidimo da direkto o orijum ee51 1ab sadrzi poddirektor rijum unixs stuff i fajl .txt proj.
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
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
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)
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
Pregled
ls lsa mkdir izlistavafajloveidirektorijume izlistavasvefajloveidirektorijume kreiradirektorijum
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
Vezba 2b
Kreirajte direktorijum tempstuff koristeci mkdir, onda ga uklonite koristeci rmdir komandu.
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?
20
/science Kao sto mozete videti, less trazi i obelezava trazenu rec. Kucajte [n] da trazite sledece pojavljivanje te reci.
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
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
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
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
28
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
Neki primeri
-rwxrwxrwx fajl koji svako moze da cita, menja i izvrsava (i brise). -rwnema prava izvrsenja (npr. vas mailbox fajl).
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
Beleska: nemojte stavljati u pozadinu programe koji zahtevaju interakciju korisnika npr. pine
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
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
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)
% !grep (poziva zadnju komandu koja pocinje sa grep) Mozete povecati velicinu history buffer-a tako sto cete kucati % set history=100
36
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
% 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
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
* 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
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)
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)
44
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
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>
47
48
# sysutils/portmaster
49
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