52

BSD Osnove, Komande

Embed Size (px)

Citation preview

Page 1: BSD Osnove, Komande

 

 

 

 

 

 

 

 

Page 2: BSD Osnove, Komande

Svi tutorijali su preuzeti sa http://www.bsdserbia.org/dokumentacija/doku.php?id=start,

i objavljeni su pod sledećom 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.

Page 3: BSD Osnove, Komande

1  

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 

Page 4: BSD Osnove, Komande

2  

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 

Page 5: BSD Osnove, Komande

3  

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 

Page 6: BSD Osnove, Komande

4  

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 

Page 7: BSD Osnove, Komande

5  

Istorija Unix-a Prvu verziju operativnog sistema UNIX razvio je 1969. godine Ken Thompson, član AT&T-ove istraživačke grupe Bell-ovih Laboratorija (The Research Group at Bell Laboratories) na DEC-ovim računarima PDP-7 sa ciljem da napravi pogodan timesharing sistem. (*Kompjuterski sistemi tih godina su bili potpuno nekompatibilni, čak i kad su u pitanju različite verzije sistema istog proizvodjača. Operativni sistemi su izvršavali samo ograničene zadatke i to samo na mašinama na kojima su bili napisani. Ako bi firma želela da unapredi svoje kompjutere, to bi značilo instaliranje novog sistema, ali i ponovno unošenje svih podataka!*) Njemu se uskoro pridružioDennis 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) izvršava kao korisnički proces (a ne sistemski), korišćenje različitih 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 snažni operativni sistem, neobične jednostavnosti i elegancije. Druga verzija UNIX-a bila je portovana na računare 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 proširio strukturama podataka, stvorivši programski jezik C u kom će sledeća 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 prešao na sisteme čiji je hardver podržavao multiprogramiranje (PDP-11/45) i tako dobio velike mogućnosti unapredjivanja.

Ken Thompson i Dennis Ritchie su 1973. godine na simpozijumu o principima operativnih sistema, održanom na Purdue univezitetu, predstavili svoj rad o UNIX operativnom sistemu, a 1974. godine prvi put je opisan u tehničkom žurnalu. Predavanja o UNIX-u koja je Ken Thompson držao na Berkeley univerzitetu (University of California at Berkeley - UCB) bila su od velikog značaja za povećanje popularnosti UNIX-a na fakultetima. 1976. je Version 6 UNIX bio distribuiran mnogim fakultetima pod akademskim licencama. Na Berkeley-ju je osnovana grupa za istraživanje - 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 počeo je i rad na INGRES bazi podataka, koja je preteča jedne od najboljih baza podataka današnjice - Posgres baze podataka. Sledeća verzija Version 7 UNIX je objavljena 1978. godine. Ovaj UNIX sistem radio je na PDP-11/70 i Interdata 8/32 računarima, a uskoro je portovan i na VAX, gde dobija oznaku 32V. Version 8 iz 1985. uključuje I/O stream sistem (sistem ulazno/izlaznog toka) kojim se omogućuje fleksibilnost kernela u medjuprocesnoj komunikaciji (IPC), i uključuje se RFS (Remote File System -daljinski fajl sistem) sličan SUN-ovom NFS-u (Network File System) koji danas predstavlja standardni način deljenja fajlova medju UNIX-ima. Sledeće verzije (Version 9 (1986), Version 10 (1989) i Plan 9 (1991)), ostale su dostupne samo istraživčkoj grupi unutar Bell-ovih laboratorija.

Page 8: BSD Osnove, Komande

6  

Razvoj UNIXa od strane USG Zbog svojih osobina i mogućnosti (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 mogućnosti 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). Sledeća 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 uključio je RFS. ATTIS 1989. godine postaje UNIX Software Organization (USO) i razvija UNIX System V Release 4 (SVR4), kombinujući mogućnosti iz SVR3, 4.3BSD, Microsoft Xenix i SunOS operativnih sistema. Predstavlja skoro potpuno prekodiran System V kernel i podržava procesovanje u realnom vremenu, process scheduling klase, signale i IPC, dinamično 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 usaglašen 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 možda i najznačajniju varijantu UNIX-a, pošto je objedinio sve najznačajnije mogućnosti 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 Najveći doprinos UNIX-u doneo je University of California at Berkeley (UCB). Prvu zvaničnu distribuciju UNIX-a (3BSD) napravio je 1978. god. Bill Joy, autor vi-a (što je impliciralo i drajvere za terminale), čovek koji je značajno unapredio tadašnji pascal interpreter, jedan od osnivača Sun Microsystems-a, autor programskog jezika JAVA i jedan od najvećih UNIX hakera svih vremena. Ta distribucija predstavljala je VAX UNIX 32V, kome su dodati virtuelna memorija, straničenje na zahtev (demand paging) i zamena stranica (page replacement). Virtuelna memorija je omogućila da se UNIX koristi za razvoj velikih programa, kao što je Berkeley-ev Franz Lisp. Paralelno sa razvojem na VAX računarima, BSD se razvija i na računarima PDP-11, ali je manja cena VAX računara doprinela širenju BSD i u drugim akademskim okruženjima. 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 mreži po DARPA-inom Internet mrežnom protokolu (TCP/IP), tako da je obezbedjena uniformna komunikacija medju različitim elementima, uključujući lokalne mreze (kao što je Ethernet i token rings) i mreže računara (Arpanet i NSFNET). Berkeley-eva implementacija TCP/IP protokola se distribuirala na trakama kao “Networking Release 1”, tj. “Net/1” trake. Sledeća verzija, 4.3BSD, donela je mnoga unapredjenja i poboljšanja performansi mrežne 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 omogućilo proširenje Interneta od 60 povezanih mreža (1984), do preko 8000 mreža i 10 miliona korisnika u 1993.

Page 9: BSD Osnove, Komande

7  

Na Berkeley-u su razvijeni mnogi drajveri za terminale, novi korisnički 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, dovršeno je 1993. godine i ispunjava sve uslove koje zadaje POSIX standard. Pored toga sadrži radikalno novu organizaciju fajl sistema koja omogućava lako dodavanje novih mogućnosti. Uključena je i implementacija NFS-a, poboljšana 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, različite korporacije, organizacije i univerziteti su portovali UNIX na mnoge platforme računara, tako da je stvoren veliki broj UNIX-sličnih operativnih sistema. Primeri su DEC-ov Ultrix, IBM-ov AIX, Microsoft-ov Xenix, Sun-ov SunOS i Solaris, Hewlett-Packard-ov HP-UX, Compaq-ov Tru64 UNIX, Novell-ov 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 računarima opšte namene, personalnim računarima (PC), radnim stanicama, minikompjuterima (PDP-11, VAX), mainframe računarima i super kompjuterima (cray). Većina ovih sistema je bazirana na Version 7, System III, 4.2BSD i SystemV UNIX-ima. Kako UNIX nije bio razvijan od strane samo jednog proizvodjača, niti za samo jednu vrstu računara, postao je najprenosiviji i najzastupljeniji operativni sistem. Ovo bi moglo da omogući korisnicima da imaju jedinstveno okruženje na svim računarima bez obzira na proizvodjača. Ali je veliki broj implementacija sistema doveo do značajnih razlika u programiranju i korisničkom interfejsu ovih sistema. Da bi se korisnicima pružilo jedinstveno okruženje, mora postojati jedinstveni programski interfejs, tako da sve UNIX aplikacije koje poštuju taj interfejs mogu da se izvršavaju na svim UNIX sistemima. Standardizacija UNIX-a je veoma težak zadatak i to zbog više faktora. Naime, kako je Ken Tompsonov prvobitni cilj pisanja prvog UNIX kernela bio poboljšanje performansi igre zvane Space Travel, on nije ni razmišljao da poštuje bilo kakve standarde. Dalji razvoj i korišćenje UNIX-a bilo je samo u okviru AT&T-a, tako da opet nije bilo potrebe za nekim zvaničnim standardom. Kada je UNIX izašao iz AT&T-a, počeo je njegov brzi razvoj u raznim pravcima, što je vodilo do pojave velikog broja varijanti UNIX-a i nemogućnosti pojave bilo kakvog standarda. Takodje, sa razvojem UNIX kernela, razvijane su i razne alatke, bez kojih današnji 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 pokušaj 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 dovršena 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 znači 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 - grafički interfejs koji danas predstavlja standardni korisnički grafički interfejs. 1993. godine Novell je kupio UNIX System Laboratory od AT&T-a, a zatim objavio sledeću verziju UNIX-a pod imenom UnixWare. Kako UnixWare nije stekao veliku

Page 10: BSD Osnove, Komande

8  

popularnost, Novell je shvatio da ukoliko ne dodje do ozbiljne standardizacije UNIX-a, nijedan komercijalni UNIX sistem neće preživeti. Zbog toga je već 1994. god. Novell zvanično dao pravo korišćenja imena UNIX organizaciji X/Open i tako započeo najuspešniji pokušaj unifikacije UNIX-a do danas. X/Open je utvrdio specifikaciju “Spec 1170 ”, koja predstavlja nacrt više od 10 000 API-ja (Application Programmer Interfaces) kojima se opisuju UNIX-slični operativni sistemi, a 1995. god. objavljuje konačnu 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 uključeno je procesovanje u realnom vremenu, tredovi i 64-bitni (i više) procesori. Specifikacija je besplatna i može se dobiti preko web-a ( www.opengroup.org). 2001. godine objavljena je i treća verzija specifikacije “Version 3 of the Single UNIX Specification”. Ovako je najpopularniji operativni sistem na svetu prošao težak put definisanja i standardizovanja.

Dalji razvoj BSD-a Kako je Berkeley dopuštao distribuciju svojih Net/1 i Net/2 traka pojavili su se mnogi operativni sistemi zasnovani na ovim distribucijama. Jedan od njih je i 386BSDčiji je razvoj počeo kada je 1991. godine William Jolitz počeo sa portovanjem Net/2 (4.3BSD-Lite) trake na 386 računare. Medjutim, on nije bio u stanju da isprati sve popravke bug-ova i sve promene koje su vršene, tako da 1993. godine on prestaje sa razvojem. Programeri koji su sa njim radili podelili su se u 2 grupe koje su nastavile započeti posao. Takodje, 1992. godine je osnovana i firma BSDi koja je predstavila svoj komercijalni BSD/OS sistem. Na ovaj način je sa velikim uspehom nastavljen razvoj koji je započeo CSRG i stvoreni su najstabilniji, najportabilniji i najsigurniji sistemi današnjice.

- FreeBSD - Početkom 1993. godine Jordan K. Hubbard, Rod Grimes i Nate Williams su pokrenuli projekat čiji je cilj bio rešavanje problema koji su postojali u principima razvoja Jolitzovog 386BSD-a. Posle konsultovanja sa tadašnjim korisnicima sistema, uspostavljeni su principi i smišljeno je ime - FreeBSD. Pre nego što je konkretan razvoj i počeo, Jordan Hubbard je predložio 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 mašinu na kojoj će biti razvijan i brzu Internet konekciju. Bez ove pomoći teško 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 sadržala 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 sadrži velike delove UNIX koda. Posle sudskog spora, dogovoreno je da Berkeley pripremi 4.4BSD-Lite distribuciju iz koje će biti izbačeni pojedini delovi koda. Od tada su BSD i UNIX, kontradiktorno, dve različite stvari. Svi korisnici Net/2 traka bili su prinudjeni da predju na 4.4BSD-Lite. Ovo je uključivalo i FreeBSD, tako da je pred projektom bio zadatak da dovrši sistem bazirajući 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.

Page 11: BSD Osnove, Komande

9  

Tekuća -stable grana projekta je 4.x-stable. 4.5-RELASE je objavljen u januaru 2002. godine, a sledeće 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 poboljša mehanizam razvoja 386BSD-a. Ljudi iz firme Virginia Tech uzeli su za osnovu 386BSD i Net/2 traku i počeli su sa portovanjem BSD-a na računare Macintosh. Razvoj se ubrzo proširio i na Atari ST, Amiga, i PC platforme. Kako se projekat razvijao, postalo je očigledno 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 isključivo za Net, a komunikacija medju developer-ima je bila bazirana na chat-u i mail-u.

Danas snaga NetBSD-a leži u podršci za čak 51 hardversku platformu. NetBSD je postao stabilni, multiplatformski, istraživački orijentisan operativni sistem. Posvećenost ka portabilnosti uticala je na druge operativne sisteme da i oni pružaju podršku za više platformi. Nekoliko operativnih sistema (OpenBSD, KAME, Darwin, MacOS X) izvedeno je direktno iz NetBSD-a. NetBSD je besplatan i može se snimiti sa neta. (www.netbsd.org). Aktivna verzija je 1.5.2 (maj 2002.)

- OpenBSD -

OpenBSD projekat je 1996. započeo 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 počeli sa detaljnim pregledom koda kernela u potrazi za potencijalnim bug-ovima i exploit-ima, što je rezultiralo ispravljanju mnogih grešaka u kodu pre nego što su one i bile primećene u drugim sistemima. OpenBSD je svakako najimpresivniji operativni sistem današnjice sa aspekta security-a, a takodje se i on može dobiti besplatno preko neta. (www.openbsd.org). Aktivna verzija je 3.1.

Page 12: BSD Osnove, Komande

10  

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.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 13: BSD Osnove, Komande

11  

 

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.

Page 14: BSD Osnove, Komande

 

F

Sve

Proce

Fajl jkom

Prim

S Svi fhijernaziv

U dijproj.

P

Da biz pa

Fajlovi i

u UNIX-u j

es je izvrsn

je kolekcijapajlera itd.

eri fajlova:

dok

teks

inst

prim

dire

mes

Struktur

fajlovi su grrarhirskoj stva root.

jagramu izn.txt

Pokretan

bi ste pokreadajuceg m

procesi

e ili fajl ili p

ni program

a podataka.

kumenat (iz

st program

trukcije dire

mer, kolekc

ektorijum, k

savina drug

ra Direk

rupisani zajtrukturi, ka

nad, vidimo

nje Xter

enuli Xterm enija

i

proces.

indentifiko

. Njih kreira

zvestaj, ese

a napisano

ektno razum

cija binarnih

koji sadrzi i

gih direktor

ktorijum

jedno u strao obrnuto

o da direkto

rminal s

sesiju, klik

ovan jedinst

aju korisnic

ej itd.)

og u nekom

mljive mas

h brojeva (

informacije

rijuma (pod

ma

rukturu dire drvo. Najv

orijum ee51

sesije

knite na Un

tvenim PID

ci koristeci

m programsk

ini i nerazu

izvrsni ili b

e o svom sa

ddirektoriju

ektorijuma.isi deo hije

1ab sadrzi

ix Termina

-om (proce

uredjivace

kom jeziku

mljive sluc

inarni fajl);

adrzaju, koj

ma) i uobic

Fajl sistemrarhije se t

poddirektor

l ikonicu na

ess identifie

teksta, po

visokog ni

cajnom kori

;

je mogu bi

cajenih fajl

m je uredjetradicionaln

rijum unixs

a vasem de

12

er).

kretanjem

voa

isniku, na

ti

ova.

n u no

stuff i fajl

esktopu, ili

Page 15: BSD Osnove, Komande

 

Xtermubac

minal windocivanje kom

ow ce se pomandi.

ojaviti sa UUnix promptt-om, cekajjuci na vas s da pocnet

13

e

Page 16: BSD Osnove, Komande

14  

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 pod-direktorijum unixstuff u vasem trenutnom radom direktorijumu ukucajte

% mkdir unixstuff

Da bi ste videli direktorijum koji ste upravo kreirali, ukucajte

% ls

Page 17: BSD Osnove, Komande

15  

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) Vezba 1a

Kreirajte jos jedan direktorijum unutar unixstuff direktorijuma sa imenom backups

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: postoji prazno polje izmedju cd i tacke

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.

Page 18: BSD Osnove, Komande

16  

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

Page 19: BSD Osnove, Komande

17  

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  izlistava fajlove i direktorijume

ls ‐a  izlistava sve fajlove i direktorijume

mkdir  kreira direktorijum 

cd directory  premesta se u zadati direktorijum

cd  premesta se u home direktorijum

cd ~  premesta se u home direktorijum

cd ..  premesta se u maticni direktorijum iznad

pwd  prikazuje putanju trenutnog direktorijuma

 

Page 20: BSD Osnove, Komande

18  

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.

Page 21: BSD Osnove, Komande

19  

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.

Page 22: BSD Osnove, Komande

20  

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

Page 23: BSD Osnove, Komande

21  

/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

Page 24: BSD Osnove, Komande

22  

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 kopiraj fjl1 u fajl2

mv fajl1 fajl2 premesti ili preimenuj fajl1 u fajl2

rm fajl ukloni fajl

rmdir direktorijum ukloni direktorijum

cat fajl prikazi fajl

more fajl prikazi fajl jedu po jednu stranicu

head fajl prikazi prvih nekoliko linija fajla

tail fajl prikazi nekoliko zadnjih linija fajla

grep 'keyword' fajl pretrazi fajl za odredjenu rec

wc fajl izbroji broj linija/reci/znakova u fajlu

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 25: BSD Osnove, Komande

23  

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

Page 26: BSD Osnove, Komande

24  

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

Page 27: BSD Osnove, Komande

25  

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.

Page 28: BSD Osnove, Komande

26  

Pregled komanda > fajl  preusmerava standardni izlaz u fajl

komanda » fajl  dodaje standardni izlaz u fajl

komanda < fajl  preusmerava standardni unos iz fajla

komanda1 komanda2  prosledjuje kroz cev izlaz iz command1 do unosa command2 

cat fajl1 fajl2 > fajl0  spaja file1 i file2 u file0

sort  sortira podatke 

who  izlistava trenutno ulogovane korisnike

a2ps ‐Pprinter tekstfajl stampa tekstualni fajl do navedenog stampaca

lpr ‐Pprinter psfajl  stampa postscript fajl do navedenog stampaca

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 29: BSD Osnove, Komande

27  

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: neke aplikacije daju ista imena svim izlaznim fajlovima koje generisu. Na primer, neki kompajleri, u 

slucaju da se ne odredi odgovarajuca opcija, daju kompajlirane fajlove sa imenima a.out. Ako zaboravite da 

koristite tu opciju, onda trebate da preimenujete taj kompajlirani fajl odmah, u suprotnom sledeci takav fajl ce 

ga prekopirati i bice izgubljen. 

Page 30: BSD Osnove, Komande

28  

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 *  zamenjuje bilo koji broj znakova

?  zamenjuje jedan znak

man komanda  procitaj online man stranicu za komandu

whatis komanda  kratak opis komande 

apropos keyword  nadji komande sa keyword u njihovim man stranicama

 

 

 

Page 31: BSD Osnove, Komande

 

Be

U va

% ls

Videcispod

Svakl. Istslece

-r

U ko, i, ppred

Ostagrup

Znacfajl i

zbedn

sem unixst

s -l (l fo

cete da sadd.

ki fajl (i direto tako, ls -em primeru

rwxrw-r--

loni sa levepovremeno,stavlja dire

lih 9 znakope po 3 zna

Leva gru

direkto

srednja

pripad

grupa krci r, w, itd.,li direktorij

ost faj

tuff direkto

or long li

da dobijate

ektorijum) -lg daje do

u):

1 ee51ab

e strane na, s ili S. Akoektorijum:

ova predstaka.

upa od 3 zn

orijuma) (e

grupa pred

a (eebeng9

rajnje destn, se malo raum.

jl siste

rijumu, kuc

isting!)

dosta deta

ima pridruzodatne infor

beng95 24

lazi se niz o je d prisuu suprotno

avljaju dozv

naka predst

e51ab u go

dstavlja doz

95 u gornje

no predstavazlikuju u z

ema (p

cajte

alja o sadrz

zena pravarmacije o to

450 Sept29

od 10 znakutno, onda cm - ce biti

vole, ili prav

tavljaju doz

ornjem prim

zvole za gru

em primeru

vlja dozvoleznacenju u

prava p

zaju vaseg

pristupa, kome koja g

9 11:52 fi

kova koji sece se nalaz pocetni zna

va pristupa

zvole za ko

meru);

upu ljudi ko

);

e za sve os zavisnosti

pristup

direktorijum

koja se mogrupa je vla

ile1

e sastoji od ziti na krajnak niza.

a, i predstav

risnika koji

ojima fajl (

stale korisndali se odn

pa)

ma, slicno p

ogu naci kucasnik fajla (

znakova dnjoj levoj st

vljena su k

i je vlasnik

ili direktorij

ike. nose na jed

29

primeru

cajuci ls -(beng95 u

d, r, w, x, -trani niza, i

kao tri

fajla (ili

jum)

nostavan

i

Page 32: BSD Osnove, Komande

30  

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 pod-direktorijum, i tako dalje, do tri.

Neki primeri -rwxrwxrwx fajl koji svako moze da cita, menja i izvrsava (i brise).

-rw——- nema 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 Znacenje

u korisnik

g grupa

o ostali

a svi

r citanje

w pisanje (i brisanje)

x izvrsavanje (i pristup direktorijumu)

+ dodaj dozvolu

- oduzmi dozvolu

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

Page 33: BSD Osnove, Komande

31  

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.

Page 34: BSD Osnove, Komande

32  

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.

Page 35: BSD Osnove, Komande

33  

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

Page 36: BSD Osnove, Komande

34  

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 izlistava prava pristupa za sve fajlove

chmod [opcije] fajl menja prava pristupa za navedeni fajl

komanda & pokrece komandu u pozadini

^C stopira proces koji radi u prvom planu

^Z suspenduje posao koji radi u prvom planu

bg stavlja u pozadinu suspendovani posao

jobs izlistava trenutne poslove

fg %1 stavlja u prvi plan posao broj 1

kill %1 stopira posao broj 1

ps izlistava trenutne procese

kill 26152 stopira proces broj 26152

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 37: BSD Osnove, Komande

35  

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

Page 38: BSD Osnove, Komande

36  

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

Page 39: BSD Osnove, Komande

37  

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.

Page 40: BSD Osnove, Komande

38  

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.

Page 41: BSD Osnove, Komande

39  

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 pod-direktorijuma.

% cd units-1.74

Page 42: BSD Osnove, Komande

40  

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.

Page 43: BSD Osnove, Komande

41  

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,

Page 44: BSD Osnove, Komande

42  

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

Page 45: BSD Osnove, Komande

43  

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

Page 46: BSD Osnove, Komande

44  

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.

Page 47: BSD Osnove, Komande

45  

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

Page 48: BSD Osnove, Komande

46  

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)

 

 

 

 

 

 

 

 

 

 

 

 

 

Page 49: BSD Osnove, Komande

47  

*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

Page 50: BSD Osnove, Komande

48  

Azuriranje kolekcije softvera (drvo portova, pkgsrc)

Koriscenjem portsnap:

portsnap fetch

portsnap extract # Potrebno samo prvi put kada se preuzima drvo portova

portsnap update

Koriscenjem cvsup:

csup -L 2 ports-supfile # Primer: /usr/share/examples/cvsup/ports-supfile

make fetchindex ili make index # portsdb -F ili portsdb -Uu ako se koristi portupgrade

Instalacija binarnih paketa export PACKAGESITE=ftp://ftp.freebsd.org/pub/FreeBSD/ports/i386/packages-7-stable/Latest/.

pkg_add –rv bash2

Instalacija softvera iz izvornog koda cd /usr/ports/security/sudo # Za NetBSD putanja je /usr/pkgsrc

make install clean

portinstall //imeporta//

Izlistavanje instaliranih paketa pkg_info # -v za opsirnije informacije

Page 51: BSD Osnove, Komande

49  

Brisanje instaliranih paketa pkg_delete

make uninstall

make deinstall

Izlistavanje zastarelih paketa pkg_version –v # Uporedjuje /var/db/pkg sa verzijama u Makefile/INDEX-7

portversion -l '<' # sysutils/portupgrade - Uporedjuje /var/db/pkg sa verzijama u INDEX.db

portmaster -L # sysutils/portmaster

Azuiranje koriscenjem binarnih paketa portupgrade -PP gnome2

Azuriranje softvera koriscenjem izvornog koda portupgrade -R firefox # ports-mgmt/portupgrade

portmanager x11/gnome2 # ports-mgmt/portmanager

portmaster –a # ports-mgmt/portmaster

Razna ciscenja u kolekciji portova / pkgsrc stablu make clean # Uklanja work direktorijum

make distclean # Uklanja distfile porta i radi make clean

portsclean -C # Uklanja sve work direktorijume u kolekciji portova

portsclean -D # Uklanja stare distfile-ove

portsclean -DD # Uklanja sve distfile-ove koji se ne ticu ni jednog instaliranog porta

Page 52: BSD Osnove, Komande

50  

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