You are on page 1of 26

UNIVERZITET U BEOGRADU

FAKULTET ORGANIZACIONIH NAUKA

Arhitektura računara i operativni sistemi

Uvod u Linux
~skripta~
Uvod

Veliki broj ljudi i dalje smatra da je učenje i savladavanje rada na Linux platformi težak i naporan
posao, ili da samo eksperti mogu da savladaju njegovo korišćenje i razumeju način na koji ovaj
operativni sistem radi. Iako postoji dosta obimna dokumentacija na Internetu koja je javno dostupna,
slobodna i besplatna, u najčešćem broju slučajeva je ta dokumentacija okrenuta ka naprednijim i
iskusnijim korisnicima, koja rešava neka pitanja sa kojima se početnik ne susreće isprva, pa se može
ispostaviti da dokumentacija koja treba da korisniku posluži ne bi li on napravio svoje prve korake u
novom okruženju i snašao se kako bi obavio zadatke koje ima, da ga ona samo još više zbunjuje i plaši,
te Linux čini jako odbojnim. Međutim, danas je tehnologija do te mere uznapredovala, da se Linux
susreće ne samo na računarima za čistu poslovnu primenu, već i na običnim kućnim računarima, koji
služe za najjednostavnije zadatke, kao što su pisanje, kreiranje tabela, prezentacija, igranje igara,
pretraživanje Interneta i komunikacija sa drugim osobama (razmena elektronske pošte, chat i sl.).
Osnovna ideja ovih vežbi jeste da korisnike upozna sa novim okruženjem na jednostavan i razumljiv
način.
Ovim putem, biće prikazan osnovni rad pod Linux OSom, na takav način da bude razumljiv
početnicima ali i da im omogući da odmah, kroz praktičan rad probaju sve što ih zanima o “osete”
Linux.

Istorija UNIXa

Da bi se razumela popularnost i napredak Linuxa, neophodno je da se vratimo nekih 30 godina


unazad. Tih godina, računari su predstavljali luksuz koji su sebi mogle da priušte samo
naučnoistraživačke institucije, i to iz više razloga. Računari su tada bili gabaritni, veliki skoro kao
automobil ili pak veći. S druge strane, još veći problem je bio taj što je svaki računar imao svoj OS, jer
je u to vreme softver pravljen kako bi izvršio određene zadatke. Operativni sistem je bio usko
specijalizovan, ali je ujedno bilo nemoguće softver koji je radio na jednom računaru, instalirati i
pokrenuti na drugom, jer je isti zavisio od konfiguracije računara na kojem je pokretan, tj. za
konfiguraciju za koju je pisan. To je predstavljalo problem kako za korisnike, tako i za sistem
administratore. Treća bitna karakteristika ondašnjih računara jeste – cena. Bili su jako skupi i bila su
neophodna dodatna novčana ulaganja ne bi li budući korisnici bili u stanju da ih razumeju i koriste.
Međutim, 1969. godine razvojni tim Bell Labs laboratorija je sebi postavio zadatak rešavanja
velikog broja aktuelnih softverskih problema, među kojima se isticao problem kompatibilnosti. Uspeli
su da razviju novi sistem koji je bio jednostavan i elegantan, napisan u C programskom jeziku a ne u
asembleru i bilo ga je moguće instalirati na bilo kom računaru, na bilo kojoj konfiguraciji. Tj. bilo je
moguće “reciklirati” kod. Projekat je nazvan UNIX. Poslednja stavka vezana za recikliranje koda je
bila i najvažnija u celoj priči, jer su svi do tada dostupni komercijalni računarski sistemi bili pisani
kodom specijalno razvijanim za jedan sistem. UNIXu je bio potreban samo jedan deo tog specijalnog
koda, koji je danas poznat pod nazivom kernel. To je jedini deo koda koji je neophodno adaptirati
određenoj konfiguraciji i on predstavlja bazu UNIX sistema. Ceo OS i sve ostale fukcije su se potom
izgrađuju na toj osnovi i pišu u višim programskim jezicima, C-u recimo, koji je posebno napisan za
razvoj UNIXa.
U početku, UNIX je razvijala kompanija AT&T na čelu sa Kenom Tompsonom i Denisom
Ričijem. AT&T je licencirao izvorni kod, čime je mnogim kompanijama omogućio slobodno
modifikovanje i dalju proizvodnju UNIX-olikih operativnih sistema. S obzirom da je AT&T držao
vlasništvo nad imenom UNIX, ostali proivodjači su morali da kreiraju svoje brendove pod različitim
nazivom. Tako su nastali AIX iz IBM-a, HP/UX iz Hewlett-Packard, SunOS (kasnije Solaris)
kompanije Sun i IRIX iz firme SGI.
U svakom slučaju, pojava UNIXa je omogućila da računari različitih proizvođača međusobno
komuniciraju u istoj mreži ali i da korisnici rade u različitim sistemima bez potrebe dodatnog
obučavanja. Narednih decenija, razvoj UNIXa je nastavljen. Ujedno, pojavile su se druge mogućnosti,
računari su postali dostpuni široj javnosti, a veliki broj proizvođača je svojim proizvodima dodao
podršku za UNIX.

Osnovni UNIX principi

Sve je fajl – jedan od najvažnijih principa koji je omogućio današnju veliku rasprostranjenost
UNIX-olikih operativnih sistema. Posmatrajući svaki entitet na fajl sistemu kao fajl omogućena je
velika konzistentnost, ali i lakoća upravljanja operativnim sistemom. Takodje, model zaštite koji je
implementiran u UNIX oslanja se na tekstualne fajlove, tako da se i pristup odredjenom uredjaju može
tretirati i štititi kao da pristupate običnom dokumentu.

Konfiguracije se nalaze u tekstu – s obzirom da je tekst univerzalni interfejs, vremenom su


razvijeni brojni alati za manipulaciju istim. Držeći sva podešavanja u obliku čistog (engl. plain) teksta
sistemskim administratorima, ali i običnim korisnicima, omogućen je lak i brz uvid u sve
konfiguracione fajlove. Takodje, bez ikakvih problema date konfiguracije možete prenositi sa jednog
računara na drugi.

Mali, jednostavni programi – umesto da se razvijaju veliki i kompleksni softverski paketi, pod
ovim principom podrazumeva se kreiranje većeg broja manjih, jednostavnijih programa koji se kasnije
mogu povezivati u jednu celinu. Na ovaj način je, ponovo, olakšan uvid u svaku komponentu neke
aplikacije, kao i njeno menjanje ukoliko se za to ukaže potreba.

Izbegavanje interaktivnih korisničkih interfejsa – interaktivne komande su retkost u UNIX


sistemima. Većina naredbi poseduje opcije i argumente koji im se mogu proslediti na komandnoj liniji,
nakon čega se data naredba izvršava. Pri tome se mogu generisati odredjeni izlazi ili prikazati greške
tokom izvršavanja. Interaktivnost je rezervisana za programe kao što su, na primer, tekstualni editori,
gde prosto ima smisla i potrebe za interaktivnošću.

Olančavanje programa – jedna od glavnih karakteristika UNIX sistema jeste mogućnost da se


ispis jedne komande preusmeri drugoj komandi na dalju obradu. Ovime se korisniku omogućava
kombinovanje manjih programa kako bi se uradili složeniji zadaci.

Linus i Linux

Početkom devedesetih, računari su već postali dovoljno jaki da podrže i iskoriste pun potencijal
koji je UNIX posedovao od samog početka.
Linus, koji je u to vreme studirao Univerzitet u Helsinkiju, je došao na ideju razvoja slobodno
dostupne besplatne akademske verzije UNIXa i počeo da razvija osnovni kod.
U to vreme, plugnplay nije postojao, te su ljudi bili zainteresovani i inspirisani da razvijaju svoj
softver i drajvere, te je svako polako želeo da ima svoju verziju UNIXa. Iz tih razloga, drajveri su se
razvijali gotovo odmah po izlasku i pojavi novog hardvera – kako bi se novi hardver pojavio, tako bi ga
neko kupio i odmah dao Linux zajednici, kako je taj novi OS nazvan od samog starta, što je dovelo do
pojave otvorenog koda, a to je sa sobom dovelo do razvoja drajvera i softvera za najrazličitije uređaje. I
korisnici se nisu zaustavili samo na PC platformi – svaki hardver koji su mogli naći bio je pogodan za
testiranje na Linuxu.
Samo dve godine nakon početka rada na Linuxu, već je bilo 12000 korisnika. Polako su sve
karakteristike UNIXa dodavane u Linux, ali i stvarane nove, karakteristične za novi OS. Linux je,iz tog
razloga, potpuni klon UNIXa, pogodan za korišćenje kako na radnim stanicama, tako i serverima
visoke klase.

Linux danas

Danas je Linux ozbiljan igrač na tržištu desktop računara. Razvojni timovi koji su radili na
Linuxu se prvovremeno skoncentrisali na razvoj mreže i servisa, apaketi za svakodnevni radu su bile
poslednja barijera koje je srušena. Međutim, poslednjih godina dosta je učinjeno na polju približavanja
Linuxa platformi radnih stanica, kroz kreiranje korisničkoh interfejsa, lake navigacije i razvoja
palikacija koje većina korisnika koristi u svakodnevnom radu za obavljanje najrazličitijih zadataka.
Kada su u pitanju serveri, Linux je poznat kao stabilna i kompletna platforma, omogućujući
velikim kompanijama, poput Amazona, osnovu za njihovu bazu podataka, ali i upravljanje svim
neophodnim elementima online kupovine, recimo. Naročito su se Internet servis provajderi oslonili na
Linux, kao platformu izbora i koriste ga u najšire moguće svrhe – kao firewall, proxy i web server.
Klasteri Linux mašina korišćeni su, na primer, i u razvoju velikih filmskih hitova, poput Šreka i
Titanika. S druge strane, oni predstavljaju osnovu rutiranja elektronske pošte ali i velikih mašina za
pretraživanje, kao što je Google. I to su samo neki od hiljade najzahtevnijih poslova koje Linux mašine
širom sveta obavljaju svakodnevno.
Takođe, vredno je i pomena činjenica da se danas Linux nalazi na mnogim uređajima koji nemaju
vezesa računarima, kao što su PDA uređaji, mobilni telefoni, igraške konzole poput PlayStation-a, mp3
player-a poput iPod-a itd.

Da li je Linux komplikovan?

Odgovor na ovo pitanje zavisi od toga koga pitate. Iskusni Linux korisnici će reći da nije, jer on
predstavlja idealno rešenje za naprednije korisnike, administratore i programere, iz razloga što je od
samoga starta on i razvijan od strane profesionalaca iz te oblasti. Sve što jednom programeru treba ili
može ikada zatrebati se nalazi tu: komapjleri, biblioteke, razvojna okruženja, alati za debugging, i ti
alati dolaze sa svakom Linux distribucijom za koju se korisnik odluči. Ujedno, sva dokumentacija i
priručnici su odmah dostupni po instalaciji, kao i veliki broj gotovih primera. Linux je poput UNIXa,
što smo već i rekli, te je omogućen bezbolan prelazak sa jednog na drugi sistem.
Distribucije poput Red hata, Fedore, SuSEa, Slackwarea, Mandrive, Debiana, Ubuntua kao i
mnoštvo drugih, nude gotova rešenja za različite grupe korisnika, spremna za masovnu upotrebu. To su
rešenja koja poseduju integrisano grafičko okruženje, razvijeno od strane zajednice, kako bi se olakšalo
upravljanje servisima i programima. Drugim rečima, kao Linux korisnik, imate mogućnost da sistem
upoznate do najsitnijih detalja, ali opet, s druge strane, danas ne morate posedovati naprednije znanje
kao nekada, kako biste konfigurisali Linux po vašem ukusu i učinili da on radi ono što mu kažete.
Veliki napori i rezultati su učinjeni na polju razvoja desktopa, pa i 3D grafičkih rešenja, kako bi se
učinilo da Linux OS izgleda nalik platformama na kojima su do sada radili korisnici i time im
omogućio bezbolan prelazak i snalaženje na sistemu. Dosta je urađeno i po pitanju podrške za različite
USB uređaje, jednostavnog ažuriranja sistema i instaliranih aplikacija, itd.

Karakteristike Linux operativnog sistema

Brojne su karakteristike Linux operativnog sistema. Nabrojaćemo samo neke od njih:


• Linux je portabilni, višeplatformski operativni sistem koji se može pokretati na mnogim
kompjuterskim modelima i arhitekturama, za razliku od Windows OS koji ima podršku samo za
Intel ili DEC Alpha arhitekture

• Linux je besplatan, na dva načina. Prvo, ne plaćate ništa da biste dobili i koristili Linux OS.
Naravno, postoje i komercijalne verzije (RHEL, SLES) koje dolaze sa posebnom
dokumentacijom ili aplikacijama, i koje podrazumevaju 24/7 tehničku podršku. Medjutim, i u
ovom slučaju, cena Linuxa je manja od cene danasnjih dobro poznatih komercijalnih
operativnih sistema. Drugi, daleko važniji smisao jeste da se Linux kernel i većina aplikacija
distribuiraju u izvornom kodu. Ovim se omogućava da vi i bilo ko drugi pogleda izvorni kod,
izmeni ga ili unapredi. Ovo nije slučaj sa komercijalnim sistemima s obzirom da se isti
distribuiraju u binarnoj formi. Zbog pomenutih sloboda, Linux se konstantno unapredjuje i
ozvežava, ispravljaju se greške u kodu i unapredjuje sigurnost.

• Linux OS je skalabilan, moguće ga je instalirati na gotovo svakoj vrsti hardvera i opreme, ne


samo na PC-u.

• Postojanje velikog broja različitih distribucija, čime se obezbedjuje dugo željena sloboda
izbora. Korisnik je u mogućnosti da isproba veliki broj distribucija (preko 800, od kojih se 400-
500 i danas aktivno razvijaju) i pronadje onu koja zadovoljava njegove potrebe.

• Ogromna podrška zajednice. Kako u pomenutom brzom uočavanju i ispravljanju problema u


kodu, tako i u podršci korisnicima u radu. Brojni su sajtovi, forumi, IRC kanali na kojima
možete dobiti pomoć za bilo koji problem

Linux i GNU

Iako postoji veliki broj različitih distribucija, u osnovi su one slične, iz razloga što im je osnova
ista (kernel), aiznad su različiti blokovi (softver) koji su prilagođeni različitim namenama i potrebama
korisnika.
Svaki Linux sistem sazdan je na GNU alatima, koji predstavljaju skup različitih načina za
upravljanje i korišćenje sistema. Svi GNU alati su otvorenog koda, te se mogu instalirati na bilo kom
sistemu. Lista nekih GNU alata sadrži:
• Bash, GNU shell
• GCC, GNU C kompajler
• GDB, GNU debugger
• Coreutils, osnovni UNIX alati: ls, cat, lsmod, itd.
• Findutils, za pretraživanje FS-a
• Fontutils, za upravljanje fontovima na sistemu
• GIMP, manipulacija grafičkim sadržajem
• Gnome i KDE, grafički korisnički interfejs
• GNU SQL, sistem relacionih baza podataka
• Radius, servis za udaljenu autentifikaciju itd...
Distribucije

Slackware – nastao 1992. godine i vrlo brzo je stekao veliku popularnost. Ponudio je instalacioni
program baziran na menijima, kao i sistem za rad sa paketima, koji je omogućio jednostavnu
instalaciju, nadgradnju i uklanjanje paketa. Danas predstavlja najstariju distribuciju koja se i dalje
razvija. Osnovna karakteristika mu je ta što ne poseduje grafičke alate za konfigurisanje sistema, već se
korisnicima prepušta puna kontrola nad sistemom. Danas ima veliku reputaciju kao server platforma.
Debian – nastao 1993. godine sa osnovnom idejom d aponudi distribuciju Linuxa bez grešaka.
Slabo je podržan od strane velikih korporacija, ali stotine programera rade na njegovom održavanju i
usavršavanju. Instalacija je nešto komplikovanija za početnika, iz razloga što mnoge operacije, poput
particionisanja diska i ostale instalacione procedure nisu automatizovane. No, debian predstavlja dobar
izbor, pored Slackwarea, za sve one koji žele da nauče kako se radi pod ovim OSom.
Ubuntu – derivat je Debiana, ali za razliku od njega, okrenut je desktop tržištu te je jednostavniji i
prilagođen kućnim korisnicima. Sama instalacija uključuje slobodan softver a sama kompanija koja
stoji iza ove distribucije o svom trošku vrši distribuciju diskova, što je dovelo do velike popularnosti
Ubuntua. Danas postoji nekoliko verzija Ubuntu distribucije, kao što su: KUbuntu, koji za grafičko
okruženje koristi KDE; XUbuntu, koji koristi XFCE kao GUI; EdUbuntu, koji je prilagođen
obrazovnim i naučnoistraživačkim institucijama, te sadrži veliki broj aplikacija koje mogu pomoći u
obrazovnom i naučnom radu.
Mandriva – nastala u pokušaju da se napravi distribucija sa grafičkim instalerom, koja bi sadržala
što je moguće više paketa. Instalacija je prilagođena neiskusnim korisnicima. Sama kompanija koja
stoji iza distribucije pruža online ili email podršku svim korisnicima. Međutim, imaju slabu podršku
kao rešenje za servere, jer je distribucija više okrenuta desktop korisnicima.
SuSE – pokušava da postane vodeća distribucija. Kako imaju partnerski ugovor sa IBMom i
Oracleom, imaju i odličnu podršku za baze podataka. Poseduje intuitivni instalacioni postupak i pruža
korisnicima i jednostavan pristup Windows OSu. Ima odličnu podršku za desktop računare, ali i za
servere.
Red Hat i Fedora – predstavljaju najpoznatije distribucije danas. Red Hat se razvija od 1994.
godine. Postoji mogućnost licenciranja za korisničku podršku. Fedora je slobodna istribucija koju
sponzoriše Red Hat i predstavlja razvojnu i test platformu za mnoga rešenja koja kasnije budu
integrisana u Red hat distribuciju. Distribucija uključuje poslednje tehnologije i najnovije softverske
pakete. Pruža odličnu podršku bilo putem elektronske pošte, web foruma i listi, i telefonske linije kao i
velike zajednice programera.

Korisničko okruženje

Na Linux operativnom sistemu postoje dva korisnička okruženja: tekstualno i grafičko.


Tekstualno podseća na DOS okruženje iz sveta Windows OS, dok grafičko sa sobom donosi user-
friendly grafiku sa prijatnim prozorima. U svakom slučaju, koje god okruženje da izaberete, da biste
mogli da radite na sistemu neophodno je prijaviti se putem korisničkog imena i lozinke. Prijavu je
moguće izvršiti bilo iz grafičkog okruženja, bilo iz terminala. U skladu sa time odakle, tj. iz kog režima
se vrši prijava na sistem, dalji rad je moguće nastaviti u grafičkom okruženju ili pak iz terminala.
Nakon prijavljivanja na sistem, moguće je izvršiti podešavanja celokupnog okruženja bez ispisane
ijedne komande. Dva najpopularnija grafička okruženja su Gnome i KDE. Iako se softver piše za jedno
do ta dva okruženja, i dalje je moguće instalirati softver pisan za KDE u Gnome i bez ikakvih problema
ga koristiti. Važno je napomenuti da iako u grafičkom okruženju, i dalje postoji mogućnost rada iz
terminala, zadavanjem komandi.
Tekstualni mod, tj. rad iz terminala je namenjen iskusnijim korisnicima i uglavnom se koristi na
serverima.
Na Fedora Linux podrazumevano grafičko korisničko okruženje je Gnome. Nakon prijavljivanja
na sistem i pokretanja Gnome okruženja, uočava se bitna razlika u odnosu na KDE i Windows OS u
smislu postojanja dva panela – gornjeg i donjeg. Gornji panel drži korisničke menije i prečice ka
aplikacijama, dok je donji zadužen za smeštanje aktivnih prozora. Što se tiče menija, u “Applications”
se nalaze sve aplikacije koje su instalirane na sistemu. U meniju “Places” nalaze se prečice ka najčešće
korišćenim direktorijumima, periferalima i mreži. Na kraju, meni “System” je ujedno najvažniji meni u
okruženju. Glavne komponente su mu podmeniji “Preferences” i “Administration”. Glavna razlika
izmedju ova dva podmenija je u tome sto se u okviru “Preferences” sva podešavanja vrše na nivou
pojedinačnog korisnika na sistemu, dok se kroz “Administration” menjaju opcije sistema u celini i za
pristup istima potrebna je administratorska lozinka.

Linux fajlsistem

Na Linux fajlsistemu, sve je fajl, ako nije fajl, onda je u pitanju proces. Da ceo OS posmatra sve
kao fajl, govore i dve činjenice: direktorijum je samo fajl koji sadrži spisak fajlova koji se u njemu
nalaze; svaka komponenta računara se takođe posmatra kao fajl, a ne fizički uređaj, putem koga je
moguće konfigurisati svaki od njih. Prednost ovakvog načina gledanja i tretiranja sistema i komponenti
računara jeste upravo mogućnost lakog prenošenja konfiguracija sa sistema na sistem.
Osnovu fajlsistema čini razgranato drvo direktorijuma i fajlova. Na vrhu se nalazi koreni
direktorijum, iz koga kreću svi ostali.
Najvažniji direktorijumi su:
• /, koreni tj. root direktorijum, osnovni direktorijum iz kojeg kreću svi ostali
• /boot, sadrži fajlove potrebne za pokretanje, tj. podizanje sistema kao i kernel
• /etc, za smeštanje najvažnijih sistemskih konfiguracionih fajlova
• /home, lični direktorijumi lokalnih korisnika
• /root, lični direktorijum root korisnika na lokalnom sistemu
• /usr, programi, biblioteke, dokumentacija, itd. za sve programe korisnika
• /var, smeštanje svih promenljivih i privremenih fajlova kreiranih od strane korisnika
• /opt, sadrži dodatni softver koji ne dolazi uz distribuciju, već koje korisnik naknadno instalira.
Grafički prikaz Linux fajlsistema

Slika 1. Grafički prikaz Linux fajlsistema

Rad sa Linux terminalom

Postoji više načina za pokretanje Linux Terminal-a za unos komandi. Ukoliko ste se na sistem
prijavili iz tekstualnog okruženja, već se nalazi u terminalu i spremni ste za rad. Ukoliko ste prijavljeni
u grafičko okruženje, program Terminal možete pronaći u meniju Applications -> Accessories ->
Terminal (ukoliko se program ne nalazi u ovom meniju, pogledajte u Applications -> System Tools.
Putanje mogu varirati zavisno od distribucije.). Takodje, možete pozvati terminal uz kombinaciju taster
ALT+F2 i upisivanjem gnome-terminal.

Listanje sadržaja direktorijuma

Osnovna komanda za prikaz sadržaja direktorijuma jeste ls (list). Ovom komandom se može
izlistati sadržaj direktorijuma u kojem se korisnik trenutno navodi ili pak direktorijuma koji se
eksplicitno navede odmah nakon komande.
Različiti načini upotrebe:
Zapis: ls [opcija] <direktorijum>
ls => izlistava sadržaj tekućeg direktorijuma
ls naziv_direktorijuma => izlistava sadržaj direktorijuma “naziv_direktorijuma”
ls -a => izlistava sadržaj tekućeg direktorijuma i sve skrivene fajlove
ls -l => izlistava sadržaj tekućeg direktorijuma uz detaljniji prikaz
ls -R => izlistava sadržaj tekućeg direktorijuma i svih poddirektorijuma
ls -d => izlistava direktorijume, ne i njihov sadržaj
ls -h => prikazuje veličinu fajlova i direktorijuma u formatu razumljivom korisniku

Primeri rada sa komandom ls:

[student@station106 ~]$ ls
[student@station106 ~]$

[student@station106 ~]$ ls -a
. .bash_logout .bashrc .gnome2 .xauth4RKreX
.. .bash_profile .emacs .mozilla .zshrc

[student@station106 ~]$ ls -l
total 0

[student@station106 ~]$ ls -al


total 40
drwx------. 4 student student 4096 Oct 7 14:00 .
drwxr-xr-x. 5 root root 4096 Oct 7 14:00 ..
-rw-r--r--. 1 student student 18 Mar 31 2010 .bash_logout
-rw-r--r--. 1 student student 176 Mar 31 2010 .bash_profile
-rw-r--r--. 1 student student 124 Mar 31 2010 .bashrc
-rw-r--r--. 1 student student 500 Jan 23 2007 .emacs
drwxr-xr-x. 2 student student 4096 Mar 31 2010 .gnome2
drwxr-xr-x. 4 student student 4096 Sep 29 16:58 .mozilla
-rw-------. 1 student student 71 Oct 7 14:00 .xauth4RKreX
-rw-r--r--. 1 student student 658 Mar 22 2010 .zshrc

[student@station106 ~]$ ls -alh


total 40K
drwx------. 4 student student 4.0K Oct 7 14:00 .
drwxr-xr-x. 5 root root 4.0K Oct 7 14:00 ..
-rw-r--r--. 1 student student 18 Mar 31 2010 .bash_logout
-rw-r--r--. 1 student student 176 Mar 31 2010 .bash_profile
-rw-r--r--. 1 student student 124 Mar 31 2010 .bashrc
-rw-r--r--. 1 student student 500 Jan 23 2007 .emacs
drwxr-xr-x. 2 student student 4.0K Mar 31 2010 .gnome2
drwxr-xr-x. 4 student student 4.0K Sep 29 16:58 .mozilla
-rw-------. 1 student student 71 Oct 7 14:00 .xauth4RKreX
-rw-r--r--. 1 student student 658 Mar 22 2010 .zshrc
Kreiranje praznih direktorijuma i fajlova

Osnovna komanda za kreiranje direktorijuma je mkdir (make directory). Komanda za kreiranje praznih
fajlova je touch.

Različiti načini upotrebe:


Zapis: mkdir [opcije] naziv_direktorijuma
touch [opcije] naziv_fajla

Primeri rada sa navedenim komandama:


[student@station106 ~]$ mkdir testdir

[student@station106 ~]$ touch testfajl

Da bismo proverili da su direktorijum i fajl zaista kreirani, možemo izvršiti:

[student@station106 ~]$ ls
testdir testfajl

Kretanje kroz fajlsistem

Osnovna komanda kojom se ostvaruje kretanje kroz Linux fajlsistem jeste cd (change
directory), iza koje sledi navođenje naziva direktorijuma u koji korisnik želi da pređe. U svakom
trenutku, korisnik može proveriti svoju trenutnu lokaciju komandom pwd (print working directory).

Različiti načini upotrebe:


Zapis: cd [opcije] naziv_direktorijuma
cd => korisnika vraća u njegov lični tj. /home direktorijum
cd . => korisnika postavlja u tekući direktorijum
cd .. => korisnika prebacuje u nivo iznad
cd - => korisnika prebacuje u prethodni direktorijum, u kojem se korisnik nalazio

Primeri rada sa komandama cd i pwd:


[student@station106 ~]$ cd testdir
[student@station106 testdir]$ pwd
/home/student/testdir
[student@station106 testdir]$

[student@station106 testdir]$ cd ..
[student@station106 ~]$ pwd
/home/student
[student@station106 ~]$

[student@station106 ~]$ cd -
/home/student/testdir
[student@station106 testdir]$
Kopiranje direktorijuma i fajlova

Osnovna komanda za kopiranje fajlova iz direktorijuma u direktorijum jeste cp (copy). Uvek


mora imati dva argumenta koji slede odmah iza komande: prvi argument predstavlja izvorišni fajl, tj.
fajl koji želimo da kopiramo, a drugi argument je odredište, gde želimo da kopiramo navedeni fajl.
Ukoliko je navedeno više argumenata od dva, svi argumenti, osim poslednjeg se posmatraju kao
izvoruišni fajlovi koje je potrebno kopirati.

Različiti načini upotrebe:


Zapis: cp [opcije] izvorišni_fajla odredište
cp -i => interaktivno, korisniku se postavlja pitanje želi li da kopira tajitaj fajl na lokaciju
cp -r => rekurzivno, kopira ne samo fajlove, već i sadržaj poddirektorijuma, ukoliko postoje
cp -p => prilikom kopiranja zadržava informacije poput vlasnika fajla, prava pristupa, itd.
cp -u => kopira ukoliko je odredišni fajl stariji od izvorišnog ili ukoliko odredišnog fajla nema

Primeri rada sa komandom cp:

[student@station106 ~]$ cp testfajl testdir/


[student@station106 ~]$ ls testdir
testfajl
[student@station106 ~]$

[student@station106 ~]$ cp -r testdir/ testdir2/


[student@station106 ~]$ ls testdir2
testdir
[student@station106 ~]$

[student@station106 ~]$ ls -R testdir2


testdir2:
testdir
testdir2/testdir:
testfajl
[student@station106 ~]$

Premeštanje fajlova

Osnovna komanda za premeštanje i preimenovanje fajlova jeste mv (move). Pri korišćenju,


navodi se izvorišni fajl, tj. fajl koji se premešta iza koga sledi odredište, bilo direktorijum u koji se fajl
premešta, bilo novi naziv za taj fajl. Ujedno, ova se opcija može koristiti za preimenovanje fajlova i
direktorijuma.

Različiti načini upotrebe:


Zapis: mv [opcije] izvorišni_fajla odredišni_fajl
mv --backup => pravi kopiju odredišnog fajla
mv -i => interaktivni mod, korisnika pita pre nego premesti ili preimenuje fajl
mv -u => premešta/preimenuje ukoliko je odredišni fajl stariji od izvorišnog ili odredišnog
fajla nema

Primeri rada sa komandom mv:


[student@station106 ~]$ mv testfajl testdir3/
[student@station106 ~]$
[student@station106 ~]$ cd testdir3/
[student@station106 testdir3]$ ls
testfajl
[student@station106 testdir3]$ mv testfajl testfajl2
[student@station106 testdir3]$ ls
testfajl2
[student@station106 testdir3]$

Napomena: Komanda mv se koristi i prilikom promene naziva fajla, tako sto se navodi:
mv stari_naziv_fajla novi_naziv_fajla

Brisanje fajlova i direktorijuma

Osnovna komanda za brisanje fajlova i direktorijuma jeste rm (remove). Osnovni zapis komande,
bez opcija, ne uklanja i direktorijume, te je neophodno navesti odgovarajuću opciju, kako bi se uklonili
i direktorijumi i njihov sadržaj.

Različiti načini upotrebe:


Zapis: rm [opcije] naziv_fajla_ili_direktorijuma
rm -i => interaktivno brisanje
rm -f => prisilno brisanje
rm -r => rekurzivno brisanje, briše se i sadržaj svih direktorijuma

Primeri rada sa komandom rm:


[student@station106 testdir3]$ rm testfajl2
[student@station106 testdir3]$ ls -l
total 0

[student@station106 testdir3]$ cd ..
[student@station106 ~]$ rm -r testdir3/
[student@station106 ~]$ ls
testdir testdir2

Rad sa arhivama

Osnovna komanda za rad sa arhivama jeste tar (tape archives). Osnovno što ovu komandu
razlikuje od ostalih jeste što se ispred opcija ne stavlja “-”. fajlovi koji se arhiviraju ne moraju biti u
istom direktorijumu. Ukoliko se umesto fajla navede direktorijum, onda se arhiviranje izvršava
rekurzivno, tj. arhivira se sadržaj celog direktorijuma. Pri raspakivanju arhive, ne navodi se odredišni
direktorijum, jer se raspakivanje uvek izvršava u trenutnom direktorijumu korisnika.

Različiti načini upotrebe:


Zapis: tar [opcije] naziv_arhive.tar fajlovi_koji_se_arhiviraju
tar c => kreira arhivu
tar x => raspakiva arhivu
Primeri rada sa komandom tar:
[student@station106 ~]$ cd testdir2/
[student@station106 testdir2]$ touch proba1 proba2 proba3
[student@station106 testdir2]$ ls
proba1 proba2 proba3
[student@station106 testdir2]$ tar cvf probni.tar proba*
proba1
proba2
proba3
[student@station106 testdir2]$ ls
proba1 proba2 proba3 probni.tar

[student@station106 testdir2]$ tar xvf probni.tar


proba1
proba2
proba3
[student@station106 testdir2]$ ls
proba1 proba2 proba3 probni.tar

Upomoć!

Osnovna ideja Linuxa je da stvara savesne, pametne i samouverene korisnike, iz razloga što je ceo
koncipiran na način da od korisnika zahteva da se obučava i informiše.
Ukoliko se i desi da korisnik ne zna šta dalje da radi, ako je zaboravio opcije koje mu za određenu
komandu trebaju, uvek na raspolaganju ima ogromnu dokumentaciju koja dolazi uz svaku distribuciju.
Svaka od komandi ima svoj priručnik u kome je tačno navedeno šta ona radi i čemu služi, potom
je naveden način njenog korišćenja, odgovarajuće opcije koje se mogu pridodati kao i rezultati koji će
se dobiti izvršavanjem te komande i opcija. Ujedno, većina komandi ima navedene i primere
korišćenja.
Osnovna komanda koja pruža pomoć korisnicima u radu sa terminalom je komanda man
(manual). Da biste dobili informacije o, recimo, komandi ls potrebno je da izvršite:

[student@station106 ~]$ man ls

Pored priručnika, postoje i drugi načini informisanja o komandi. Tu je i komanda info, koja sadrži
up-to-date informacije o komadi i uglavnom je preglednija i razumljivija. Pomoć i informacije o
komandama je moguće dobiti kako u grafičkom, tako i u tekstualnom modu, tj.u konzoli.

[student@station106 ~]$ info ls

Čitanje tekstualnih fajlova

Osnovne komande za prikaz sadržaja tekstualnih fajlova su cat, less i vi. Kako je već rečeno da
je sve na Linux fajl sistemu tekstualni fajl, onda postaje jasno od kolikog su značaja navedene
komande.Osnovne razlike među njima su sledeće:
less => vrši pregled teksta stranu po stranu;
cat => ispisuje ceo sadržaj tekstualnog fajla na terminalu, putem sekvencijalnog
prikaza, bez prekida;
vi => predstavlja ujedno i tekst editor, te je moguće menjati sadržaj fajlova iz
konzole.
Različiti načini upotrebe:
Zapis: cat naziv_fajla
less naziv_fajla
vi naziv_fajla

Primeri rada sa komandama:


[student@station106 testdir]$ cat testfajl
[student@station106 testdir]$ less testfajl
[student@station106 testdir]$ vi testfajl

Komanda cat izlistava celokupan sadržaj datog fajla u terminalu i vraća vas na prompt. Za razliku
od nje, komanda less prikazuje sadržaj fajla onoliko koliko može da stane u okvir terminala, a zatim
čeka da korisnik unese komande kako bi nastavila sa prikazivanjem ostatka teksta. Te komande mogu
biti enter, kada se prikazuje red po red, ili space, kada se ponovo prikazuje onoliko koliko staje u
terminal (poput okretanja stranice knjige).

Tekstualni editor VI

Komanda vi (Visual Editor) predstavlja jedan od najpoznatijih tekstualnih editora na Linux


sistemima. Vi je podrazumevani paket na RedHat sistemima, dok se na drugim distribucijama mogu
sresti i nano, pico i emacs.
Što se tiče VI editora, poziva se komandom vi naziv_fajla, nakon čega se ulazi u tzv.
“Command” režim editora. Ukoliko fajl naziv_fajla ne postoji, VI automatski kreira novi čiji će sadržaj
biti sačuvan kada zadate odgovarajuću komandu. S obzirom da je VI veoma moćan alat, objasnićemo
osnove rada sa ovim paketom.
Kao što je rečeno, nakon pokretanja editora ulazi se u “Command” mod, koji predstavlja
podrazumevani način na koji VI prikazuje sadržaj. Takodje, komandni mod služi za zadavanje svih VI
komandi, koje ćemo objasniti kasnije. Pored ovog režima, postoji još i “Insert”, za unos teksta. Da
biste prešli u Insert mod, potrebno je da na tasturi pritisnete neki od sledećih tastera: “a”, “i”, “insert”.
Ukoliko je sve u redu, na dnu ekrana primetićete oznaku “- - INSERT - -”. Sada možete unositi tekst
koji želite. Da biste izašli iz ovog moda i vratili se u komandni (i time završili dalji unos), potrebno je
da pritisnete taster Esc.
Poslednji mod je “Ex”, u kom možete unositi dodatne komande, kao što su snimanje fajla, izlazak
iz editora i pretraživanje sadržaja.
Dok ste u komandnom režimu, možete se slobodno kretati kroz sadržaj. Za navigaciju VI koristi
sledeće tastere: “h” - levo, “j” - dole, “k” - gore, “l” - desno (malo slovo L), takođe možete se kretati
pomocu strelica. Pored ovih, postoje i sledeći korisni tasteri: “u” - undo, “r” - zameni jedan karakter,
“x” - obriši jedan karakter, “/text” - pronadji “text” u tekstu. Da biste kopirali odredjeni red teksta,
koristi se taster “yy”, za brisanje reda “dd”, dok ulogu paste opcije igra taster “p”.
Ukoliko želite da sačuvate promene, koristi se kombinacija tastera: “:w”. Dvotacka ispred slova u
ovom slučaju je obavezna! Da biste izašli iz editora, ukucajte: “:q”. Ukoliko vam VI prijavi neku
grešku prilikom izlaska (recimo, menjate read-only fajl), samo dodajte znak uzvika na prethodnu
komandu: “ :q! ”.
Sledeća tabela prikazuje komande koje se koriste za izmenu, brisanje ili dodavanje teksta:

Izmena Brisanje Uzimanje


(komanda: copy)
Linija cc dd yy
Slovo cl dl yl
Reč cw dw yw
Rečenica ispred c) d) y)
Rečenica iza c( d( y(
Paragraf iznad c{ d{ y{
Paragraf ispod c} d} y}

Iako ova tabela deluje zbunjujuće, zapravo je vrlo jednostavna. Komanda cc će izmeniti liniju:
obrisaće trenutnu liniju, postaviti vas u INSERT mod, nakon čega možete dodati novi red, paragraf ili
šta već želite. Na kraju, taster Esc vas vraća u komandni mod. Analogno tome, komanda cl briše
odredjeno slovo, postavlja vas u INSERT mod kako biste uneli novi karakter. Komanda cw briše reč i
postavlja vas u INSERT mod, i tako dalje.
Za brisanje linije se koristi kombinacija dd, dok za kopiranje linije služi komanda yy (engl.
yank). Komanda yy vrši kopiranje teksta u smislu da se uzima linija i smešta u memoriju, čekajući da
se kopira ili prenese na drugu lokaciju u dokumentu. Analogno, yl kopira slovo, yw reč, itd.
Na kraju, ostaje da kopirani/preneti tekst postavimo na odredjeno mesto u dokumentu. Taj
zadatak obavljaju tasteri p i P (engl. put). Ovaj komanda uzima yank-ovani tekst iz memorije i
postavlja na mesto gde se trenutno nalazi kursor. Postoji razlika izmedju malog i velikog slova P:
• p postavlja tekst ispod trenutne linije
• P postavlja tekst iznad trenutne linije
Što se tiče pretrage dokumenta, koristi se “slash” ( / ) simbol. Ukoliko u komandnom modu
ukucamo, na primer, /tekst editor će pronaći gde se nalazi reč “tekst” u smeru na dole. Ukoliko želimo
da pretražujemo u smeru na gore, koristimo ?tekst komandu. Ukoliko je pretraživač pronašao više
instanci reči “tekst”, uz pomoć tastera n prelazimo na sledeću reč u smeru na dole, dok se u smeru na
gore koristi N .
Sledeća tabela prikazuje komande za snimanje dokumenta i izlazak iz editora (EX mod):
Snimanje izmena Poništavanje izmena
Izlazak :wq :q ili :q!
Bez izlaska :w :e!
Prisilni izlazak :wq!
Prisilno, bez izlaska :w!
Na kraju, nekoliko korisnih trikova u radu sa VI editorom:
• dtc – briše od kursora do karaktera c
• 5dd – briše pet linija (broj se može dodati bilo kojoj komandi za
izmenu/brisanje/kopiranje)
• x – briše karakter
• rc – menja odredjeni karakter sa karakterom c
• R – menja karakter za karakter sve dok se ne pritisne Esc

Pregled korišćenih komandi

Bash terminal ima mogućnost pamećenja odredjenog broja otkucanih komandi. Iako se za pristup
istima mogu koristiti stelice gore-dole na tastaturi, osnovna komanda koja se koristi za pregled ranije
korišćenih komandi jeste history. Da biste dobili spisak komandi, otkucajte u terminalu:
[student@localhost ~]$ history
1 ls
2 ls -a
3 clear
4 ls -l
......
223 ls -r testdir2/
224 ls -R testdir2/
225 mv testdir/testfajl testdir2/
226 ls testdir2/
Broj zapamćenih komandi zavisi od podešavanja bash-a na sistemu, ali je 1000 standardna cifra
na RH sistemima. Pored komande history, da biste pristupili spisku korišćenih naredbi možete koristiti i
specijalne karaktere, koji se takodje kucaju u terminalu:
!! => ponovi poslednju komandu
!c => ponovi poslednju komandu koja počinje sa c
!n => ponovi komandu na osnovu njenog rednog broja iz rezultata komande history
!?abc => ponovi poslednju komandu koja u sebi sadrži abc
!-n => ponovi poslednju unetu komandu n puta unazad
^staro^novo => u poslednjoj komandi zameni reč staro sa novo i takvu je izvrši

Proširenja komandne linije – tilda

Dodatak u bash terminalu u vidu karaktera ~ (tilda) preuzet je iz C terminala i predstavlja


referencu ka korisničkom matičnom direktorijumu. Navodeći ovaj karakter u terminalu, na kraći način
označavamo sve ono što se nalazi u home direktorijumu. Ukoliko dati karakter prati i korisničko ime,
onda se referenca odnosi na fajlove i direktorijume tog korisnika.

Na primer, string “~/.bash_profile” se odnosi na “fajl .bash_profile u mom home


direktorijumu”, dok bi string “~sally/.bash_profile” značio “fajl .bash_profile u home
direktorijumu korisnika sally”. Tilda je veoma korisna ukoliko trebate da, recimo, označite fajl u
vlasništvu nekog korisnika, a ne znate apsolutnu putanju do njega (primera radi, home direktorijumi
korisnika ne moraju uvek da budu pod direktorijumom /home).
Proširenja komandne linije – varijable i stringovi

Sve reči u komandnoj liniji ispred kojih stoji znak dolara ($) predstavljaju varijable. Komandno
okruženje će takav string zameniti vrednošću pre poziva odgovarajuće komande. Na primer:

[student@localhost ~]$ cd $HOME/public_html

Pre nego što se pozove komanda cd, shell će promenljivoj HOME dodeliti odgovarajuću
vrednost. U ovom slučaju, to će biti korisnički direktorijum. Kao primer za korisnika sally, komanda bi
značila
[student@localhost ~]$ cd /home/sally/public_html

Da biste videli spisak svih varijabli i njihovih vrednosti, izvršite komandu set. Pored znaka
dolara, postoji još jedan karakter koji dosta olakšava, tj automatizuje odredjene zadatke u terminalu.
Velike zagrade (karakteri { i } ) se koriste u radu sa stringovima i svoju primenu imaju najviše u
smanjivanju broja koraka prilikom izvršavanja odredjenih komandi. Primer je pravljenje nekoliko
direktorijuma i poddirektorijuma, sve u jednoj komandi:

[student@localhost ~]$ mkdir -p work/{inbox,outbox}/{normal,urgent}

Na ovaj način smo napravili direktorijum work, u njemu inbox i outbox, a zatim u svakom od
njih poddirektorijume normal i urgent. Bez velikih zagrada, za ovaj zadatak bi bilo potrebno
najmanje 15 komandi; u primeru smo to uradili u jednoj. Takodje, velike zagrade možemo koristiti i
prilikom ispisivanja odjedjenih vrednosti, koje se kasnije mogu prosledjivati na dalju obradu.
[student@localhost ~]$ echo {a,b}
a b
[student@localhost ~]$ echo x{a,b}
xa xb

Proširenja komandne linije – zamene komandi i matematičke operacije

Upotreba “backtick” karaktera se naziva “zamena komandi” i koristi se prilikom ugnježdavanja


jedne komande u drugu. Prilikom ove zamene, komanda koja je pod navodnicima `` se prva izvršava, a
potom se njen izlaz smešta na komandnu liniju, koji potom preuzima druga komanda.

[student@localhost ~]$ echo “Hostname: `hostname`”


Hostname: localhost

Umesto ovih navodnika se može koristiti $(): echo “Hostname: $(hostname)”. Što se tiče
aritmetičkih operacija, jedna od komandi jeste expr i kao primer njenog korišćenja:

[student@localhost ~]$ echo Area: `expr $X \* $Y`

Prilikom korišćenja ove komande treba biti pažljiv u smislu da treba staviti “backslash” ispred
zvezdice i paziti da svaki simbol bude odvojen. Alternativni metod jeste korišćenje $[]. Primeri za ovu
komandu su:
[student@localhost ~]$ echo Area: $[ $X * $Y ]
[student@localhost ~]$ echo Area: $[ $X*$Y ]
[student@localhost ~]$ echo Area: $[$X*$Y]
Na kraju, operandi koji se mogu koristiti su:
+ sabiranje / deljenje
- oduzimanje ** eksponent
* množenje % moduo

Upotreba backslash ( \ ) karaktera

Karakter backslash ( \ ) se koristi ukoliko je, prilikom izvršavanja odredjene komande ili pisanja
skripte, potrebno koristiti rezervisane shell karaktere kao regularna slova. Kao primer može da posluži
sledeća find komanda (komanda koja pretražuje fajl sistem za zadatom reči):

[student@localhost ~]$ find / -name foo*

U ovom slučaju, komanda find će pronaći one fajlove koji počinju na reč foo (recimo, foobar ili
foofram) i njene putanje prikazati kao rezultat. Medjutim, ukoliko nam je potreban fajl koji se baš zove
foo*, gornja komanda ga neće prikazati. Zbog toga je potrebno zvezdicu označiti kao regularno slovo, a
ne rezervisani karakter.

[student@localhost ~]$ find / -name foo\*

Jedan od primera može da bude upotreba znaka dolara kao oznake za valutu. Ukoliko bismo u
komandi/skripti napisali

[student@localhost ~]$ echo Cena je: $5.00

shell bi $5.00 tretirao kao promenljivu. Da bi nam navedena komanda ispisala valutu i broj,
potrebno je uraditi:

[student@localhost ~]$ echo Cena je: \$5.00

Upotreba navodnika

Ranije smo rekli da je upotreba backslash korisna tehnika za prikazivanje rezervisanih karaktera.
Medjutim, ukoliko je potrebno istih prikazati više puta, navodnici su daleko korisniji od kose crte.
Postoje dva tipa navodnika – jednostruki ( ' ' ) i dvostruki ( “ “ ). Razlika izmedju njih je u tome što će
jednostruki interpretirati komandu bukvalno, onako kako piše, dok će dvostruki prikazati odredjene
delove. Jasnije će biti uz sledeće primere

[student@localhost ~]$ echo “Danasnji datum je: `date`”


Danasnji datum je: Mon Nov 1 16:46:47 CET 2010

Dakle, komanda echo je na terminalu prikazala dati tekst, tako što je ispisala početni deo
rečenice, a zatim je shell izvršio komandu date i prikazao datum.

[student@localhost ~]$ echo 'Danasnji datum je: `date`'


Danasnji datum je: `date`

Opet, komanda je ispisala prvi deo rečenice, ali kako se koriste jednostruki navodnici shell je to
shvatio kao zahtev da se bukvalno ispišu svi karakteri, bez izvršavanja ugnježdene komande.
Konzolni trikovi

Tokom rada u terminalu mogu se koristiti odredjene kombinacije tastera, u cilju bržeg obavljanja
postavljenih zadataka.
CTRL + a => prebacuje kursor na početak linije
CTRL + e => prebacuje kursor na kraj linije
CTRL + u => briše do početka linije
CTRL + k => briše do kraja linije
CTRL + strelice => premešta kursor levo ili desno, po jednu reč

Standardni ulaz/izlaz i pipe


Linux poseduje tri ulazno-izlazna kanala: standardni ulaz, standardni izlaz i standardnu grešku.
Standardni ulaz je uglavnom tastatura, dok su standardni izlaz i greška terminal. Standardni izlz i
greška mogu se preusmeriti u fajl i to na način:

komanda operator fajl

Podržani operatori su:


> preusmerava standardni izlaz u fajl
2> preusmerava standardnu grešku u fajl
&> preusmerava celokupan izlaz u fajl

Ukoliko se navede dupli znak >>, prosleđeni izlaz se dodaje već postojećem tekstu u tom fajlu.
Karakter pipe (|) koristi se za prosleđivanje standardnog izlaza jedne komande na standardni ulaz
druge . Primeri komandi koje koriste usmerivače i pajp:

[student@localhost ~]$ find /etc -name passwd


[student@localhost ~]$ find /etc -name passwd > find.out
[student@localhost ~]$ find /etc -name passwd 2> /dev/null
[student@localhost ~]$ find /etc -name passwd > find.out 2> find.err
[student@localhost ~]$ cat /etc/services | less
Arhitekture koje podržavaju Linux

Na početku razvoja Linux operativnog sistema, pre instalacije potrebno je bilo da znate koji
hardver podržava Linux, kako biste pripremili računar za instalaciju. Osnovni razlog za to je bila
činjenica da je u začetku razvoja samog operativnog sistema, postojao mali broj onih koji su pisali
potrebne drajvere za najrazličitije uređaje, pa je broj podržanih uređaja bio jako mali.
Danas je situacija skroz drugačija, jer danas Linux podržava najrazličitiji hardver, bilo da su u
pitanju desktop ili prenosivi računari. Naravno, za “egzotični” hardver, koji nije svojstven standardnim
desktop ili konfiguracijama prenosivih računara, ipak je potrebno da prođe neko vreme dok se neko iz
velike zajednice softvera otvorenog koda ne odluči na pisanje neophodnih drajvera.
Ono što je karakteristično za Linux, jeste da će se pokrenuti i na najslabijoj konfiguraciji i da će
na istoj pokazati zadivljujuće performanse. Na primer, Linux je moguće instalirati i na 386 generaciji
računara, gde će sasvim lepo raditi ali uz izvesna ograničenja – na takvom računaru, koji na primer ima
4MB RAM memorije (što je bilo svojstveno, recimo, za tu generaciju računara) neće biti moguće
pokrenuti X, tj. grafičko korisničko okruženje, neće biti moguće pokrenuti istovremeno nekoliko
različitih programa a i takav računar se ne može iskoristiti kao server. Međutim, čak i uz ova
ograničenja, takav računar će moći da se iskoristi kao terminal za drugi Linux računar ili server na
kome se izvršava pregršt aplikacija ili čak i kao server ali za samo jedan servis, kao što je na primer
DNS.
Da bi se mogle iskoristiti sve prednosti Linux operativnog sistema, potrebniji je malo bolji i jači
računar. Minimalna konfiguracija na kojoj je moguće pokrenuti X grafičko okruženje, pristupati
Internetu i otkucati neki tekst u procesoru teksta, jeste 486 procesor na 100MHz i 16MB RAM
memorije. Da biste na raspolaganju ipak imali sve prednosti i specifičnosti Linux operativnog sistema,
potreban vam je Pentium računar, 32MB RAM memorije i 2GB prostora na hard disku. Naravno,
računari i komponente koje su danas deo standardnih kućnih konfiguracija mogu u potpunosti pružiti
korisnicima mogućnost da na najbolji način upoznaju sve prednosti Linuxa u odnosu na druge
operativne sisteme.

Uloga sistem administratora

Svaka mreža koja u svojoj strukturi sadrži i Linux operativni sistem instaliran na nekom
računaru, potrebno je da ima i sistm administratora, tj. osobu koja je zadužena za održavanje sistema i
njegovo pravilno funkcionisanje i izvršavanje svih zadatih obaveza. No, da bi bio u prilici da obezbedi
nesmetan rad svih servisa i funkcionisanje sistema u celini, sistem administratoru je u te svrhe potreban
pristup sa određenim, specijalnim privilegijama.
Sama uloga sistem administratora, pre svega, zavisi i od veličine sistema koji se održava. Imajući
to u vidu, njegova uloga može biti sačinjena u izvršavanju zadatka jednom dnevno do posla sa punim
radnim vremenom. Čak i kada je u pitanju manji sistem, sistem administrator je obavezan da vrši
održavanje sistema, jer nečinjenje toga može ugroziti same performanse sistema.
Pojedini zadaci sistem administratora obuhvataju isključivanje računara iz sistema kako bi se
uklonili nepotrebni fajlovi ili kako bi se instalirao dodatni softver; potom, tu je i potreba za pravljenjem
vekapa, tj. rezervnih kopija postojećih podataka u slučaju većeg otkazivanja opreme ili u slučaju
brisanja ili oštečenja originalnih podataka.
Jedan od najvažnijih zadataka sistem administratora jeste obezbeđivanje integriteta podataka. To
se obezbeđuje kroz postavljanje dozvola nad fajlovima koji se koriste. Dozvolama se vrši kontrola
pristupa fajlovima od strane korisnika.
Kako softver neprestano napreduje i razvija se kroz vreme, jedan je od zadataka sistem
administratora i da instalira, konfiguriše i prilagodi aplikacije korisnicima. To se može postići bilo
instalacijom novih aplikacija ili nadogradnjom postojećih.
Kako je Linux višekorisnički operativni sistem ali i sitem sa mogućnošću da se na njemu u isto
vreme izvršava više zadataka, to dovodi do toga da se korisnici takmiče za ograničene resurse sistema.
Sistem administrator mora zato pribeći finom pdoešavanju sistema kako nijedan korisnik ili proces ne
bi zauzeli više resursa no što im je potrebno za normalan rad i izvršenje zadataka. Optimizacija
sistemskih resursa se postiže ograničavanjem resursa koje koristi korisnik ili proces.
Svaka promena na sistemu, inicijalno postavljanje i konfigurisanje sistema, i događaji koji se
svakodnevno odigravaju na sistemu se čuvaju u zasebnom log fajlu. Ujedno, za svaki događaj vezuju se
i uslovi u vreme nastanka.

Metode instalacije operativnog sistema

Pre instalacije Linux operativnog sistema, neophodno je odrediti da li računar poseduje sve
komponente koju će mu biti neophodne za rad i izvršavanje namenjenih zadataka. To se pre svega
odnosi na utvrđivanje da li računar poseduje zasebnu ili integrisanu grafičku kartu (želi li na računaru
podići X grafički server ili ne), mrežnu kartu (ukoliko namerava da koristi Internet ili pak pokrene
instalaciju sa mreže), itd. Naravno, svaku komponentu je moguće dodati i kasnije, ali je namera
iskoristiti sve prednosti instalacionog procesa koji sve automatski sam detektuje.
Instalaciju je moguće sprovesti na više načina: preko CD ili DVD medija i optičkog uredjaja,
pokretanjem sa USB uređaja ili preko mreže.
Ukoliko se instalacija vrši sa CD/DVD uređaja, program će pokušati da pronađe sam optički
uređaj na računaru i ponuditi opciju provere ispravnosti samog medija sa koga se namerava otpočeti
instalacija. Nakon toga, sledi pitanje da li nameravate da nadogradite postojeći sistem na hard disku ili
da u potpunosti instalirate verziju operativnog sistema sa medija. Osnovna prednost Fedora linux
operativnog sistema jeste što nudi mogućnost nadogradnje sa prethodne na novu verziju. Druge
distribucije, na primer, ipak zahtevaju da se uradi instalacija od početka kada se pojavi nova verzija.
Instalaciju je moguće uraditi i preko mreže. U tom slučaju, neophodno je znati IP adresu FTP ili
NFS servera sa koga se pokreće instalacija kao i direktorijum u kome se nalaze neophodni fajlovi
kojima se instalacija i pokreće.

Postupak instalacije

Pri instalaciji operativnog sistema, postavlja vam se pitanje da li instalirate novi operativni sistem
ili andograđujete stari. Ukoliko nadograđujete, program će za vas srediti sve parametre vezane za
program za učitavanje (LILO ili GRUB) i pritom vam neće dati mogućnost ponovnog particionisanja
hard diska, već će u te svrhe biti iskorišćene prethodno napravljene i postojeće particije.
Ukoliko se instalira novi sistem, potrebno je označiti i definisati neophodne particije. Za pravilno
funkcionisanje Linuxa, potrebne su dve particije - root (/) i swap. Naravno, na korisniku je da odluči
hoće li izdvojiti kao zasebne particije i druge direktorijume, kao što je /home, /usr, /var, /tmp, itd.
Prednosti postojanja zasebnih particija za ove i druge sirektorijume su sledeće:
• vreme potrebno za izvršavanje provere fajlsistema je smanjeno,
• izvršavanje tih provera je daleko lakše pri postojanju višestrukih particija,
• jedna ili više particija se mogu označiti kao “samo za čitanje” tj. read-only,
• veća bezbednost pri greškama u fajlsistemu; u tom slučaju, samo fajlovi na jednom fajlsistemu
će biti ugroženi
Nakon particionisanja, morate se odlučiti za pakete programa koje ćete instalirati i to iz liste
različitih kategorija paketa. Ukoliko niste vični odabiru paketa, dovoljno je odabrati kategoriju i
program će za vas odabrati osnovne pakete iz svake od njih. Naravno, sve programe i pakete je moguće
dodatno menjati i po završenoj instalaciji.
U zavisnosti od odabranih paketa, instalacija može potrajati od 10 do 30 minuta. Nakon završene
instalacije, vrši se prvo konfigurisanje sistema za tu instalaciju - kreiranje korisničkog naloga,
konfigurisanje tačnog vremena i datuma, itd.

Podizanje sistema

Linux boot proces se može konfigurisati na takav način da omogući boot-ovanje u više operativnih
sistema instaliranih na računaru. Linux koristi skup fajlova, koji se jednim imenom zovu LILO ili
Grub, kako bi boot-ovao sistem.
Za bilo koji loader da se odlučite, moguće je konfigurisati ceo proces na način da se uvek jedn
određeni sistem podiže, bez intervencije korisnika, te da je njegova intervencija potrebna samo u
slučaju da se želi podići neki drugi sistem. Pri podizanju sistema, sav kod koji se nalazi u MBR delu
hard diska će izvršiti pregled tabele particija, identifikovati aktivnu particiju, pročitati boot sektor te
particije i pokrenuti kod u tom sektoru. Kod koji se nalazi u tom sektoru čita kernel i pokreće ga.
Pri pokreatanju sistema, dok se korisnik još nalazi u ekranu programa za učitavanje, tzv. loader-a,
moguće je kernelu proslediti najrazličitiji skup instrukcija ukoliko želimo neko njegovo specifično
izvršavanje vezano za rezoluciju ekrana, ispisavanje poruka init-a, promeni runlevel-a, itd.

Program Init

Osnovna namena programa init jeste pokretanje novih procesa i njihovo restartovanje pri
napuštanju istih ili sistema. Init je i prvi proces koji se startuje u Linuxu. Svi procesi koji čine radni
Linux sistem su pokrenuti od strane ovog procesa. To je proces koji se pokreće sa korisničkim ID-jem
root- a.
Skup procesa omogućava virtuelne konzole pod Linuxom. Inicijalno se učitava 6 procesa pri
boot-ovanju većine Linux sistema. Kada se odjavite iz konzole, taj se proces gasi i init pokreće novi
kako bi uvek na raspolaganju korisniku bilo 6 konzola. Kernel sam traži init na nekoliko lokacija koje
se odavno koriste za init, ali nepisano je pravilo da to bude /sbin/init.
Procesi iz skripte koja se nalazi u /etc/inittab takođe bivaju kreirani od strane init-a. Init isprva
proverava da li postoji fajl /etc/init i koristi ovu skriptu kako bi pokrenuo proces. Ovaj fajl ima unose
koji init-ukažu da pokrene konzole u koje se korisnik može ulogovati. Ujedno, u /etc/inittab skripti
se nalazi i početni runlevel u kome će se i sistem podići. Najčešće su to runlevel-i 3 i 5. Jednom rečju,
runlevel predstavlja konfiguraciju samog sistema, čime se kontroliše skup onih procesa koji će biti
pokrenuti. U konkretnom slučaju, ukoliko je u pitanju runlevel 3, sistem se podiže u konzolnom
režimu, a ukoliko je to runlevel 5, podiže se celokupno grafičko okruženje.

Direktorijum rc i prateći fajlovi

U /etc/rc.d/ direktorijumu nalaze se skripte procesa koji se izvršavaju pri boot-ovanju sistema od
strane init programa. Rc je akronim od 'resource configuration' i ovim fajlovi su namenjeni pokretanju
osnovnih demona servisa.
Na primer, rc.local je fajl koji se poslednji izvršava pri podizanju sistema i on se može iskoristiti
u najrazličitije svrhe. Kao jedan od načina na koji je moguće iskoristiti ga, jeste navođenje linije kojom
bi se određenom korisniku na mreži poslala informacija na mail o tome da je taj-i-taj računar završio
svoj boot proces i da je mašina spremna za rad. Kako je rc.local obična shell skripta, sa njom je moguće
uraditi gotovo bilo šta kao i sa svakom drugom shell skriptom, što uključuje i postavljanje određenih
promenljivih okruženja ili pokretanje određenih programa.
Osnovni i najvažniji fajl koji vrši sva podešavanja i inicijalizaciju sistema jeste rc.sysinit.

Korisnici i grupe na sistemu

Svakom korisniku na sistemu se dodeljuje jedinstveni korisnički ID broj koji se naziva UID.
Root korisnik ima UID sa vrednošću 0, dok korisnički nalozi obično kreću sa vrednošću UID od 500.
Sve vrednosti manje od 500 rezervisane su za sistemske korisnike. Kao što postoje korisnički
identifikatori, tako postoje i ID grupe (GID). Grupe na sistemu su mogućnost da jednog ili više
korisnika smestite u jednu celinu, a zatim nad njom primenite odredjena podešavanja.
Sva korisnička imena i njima odgovarajući UID-i se čuvaju u fajlu /etc/passwd. Tu se nalazi
informacija o /home direktorijumu svakog korisnika kao i program koji se pokreće odmah po njihovom
prijavljivanju na sistem, što je obično shell. Fajl koji čuva informacije o grupama je /etc/group, u kom
su definisani naziv grupe, njen GID i lista korisnika koji pripadaju datoj grupi. U primeru je dat
skraćeni sadržaj passwd fajla:

[student@localhost ~]$ cat /etc/passwd


root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
......
student:x:501:501::/home/student:/bin/bash

Kao što se primećuje, fajl je podeljen u nekoliko kolona, odvojene dvotačkom. Prva se odnosi
na korisničko ime, druga označava da je za korisničko ime definisana enkriptovana lozinka. Treća i
četvrta su UID i GID, odnosno korisnički identifikatori. Sledeća kolona je opcionalna, sadrži kratak
komentar o korisniku. Zatim je kolona koja označava home direktorijum korisnika (na primer,
/home/student za korisnika student). Na kraju je kolona koja označava tip korisničkog okruženja koji je
dodeljen korisniku.
Bitna odlika višekorisničkog sistema, kakav je Linux, jeste da korisnici ne mogu čitati, pisati ili
izvršavati fajlove drugih korisnika, osim ukoliko za to nemaju odgovarajuću dozvolu.

Upravljanje korisnicima i grupama

Osnovni rad sa korisnicima podrazumeva dodavanje, brisanje i izmenu određenih podataka


vezanih za korisnike. Za uspešno sprovođenje upravljanja korisnicima postoje i grafički alati i komande
koje se izvršavaju u terminalu. Kao grafički alat, koristi se system-config-users, a za rad u
terminalu koriste se komande useradd, usermod i userdel. Za sve operacije sa korisnicima potrebna
je lozinka root korisnika.

Zapis komande:
useradd [opcije] korisničko_ime

Korisne opcije:
-e => definisanje datuma isticanja korisničkog naloga, nakon čega je pristupanje sistemu
putem tog naloga onemogućeno,
-G => definisanje suplementarnih grupa kojima korisnik pripadanja
-m => kreira home direktorijum korisnika kopirajući fajlove iz direktorijuma /etc/skel
-s => izbor tipa komandnog okruženja

Za izmenu podataka o korisniku koristi se komanda usermod i njeni parametri su potpuno isti
kao i kod komande. Potrebno je pozvati datu komandu, navesti opciju i vrednost koja se menja i, na
kraju, korisničko ime za koje se promene vrše.
Za brisanje korisnika koristi se komanda userdel. Potrebno je pozvati komandu i ukucati
korisničko ime koje se briše. Ova komanda takodje sadrži veliki broj opcija, ali se najčešće koristi bez
njih ili sa opcijom “-r”. Razlika je u:

userdel student => briše korisnika “student”, ali sačuvava njegov home direktorijum i sve
fajlove
userdel -r student => briše korisnika “student” i sve njegove fajlove/direktorijume

Pretraga fajl sistema

Pretragu na sistemu moguće je izvršiti komandama find i locate. Locate šalje upite bazi
putanja ka fajlovima na sistemu, i to samo one direktorijume kojima korisnik ima pravo čitanja i
izvršavanja. Opcija -i omogućava pretragu u zavisnosti od malih i velikih slova, a '-n x' daje listu prvih
x poklapanja.

[student@localhost ~]$ locate passwd


/etc/passwd
/etc/passwd-
/etc/pam.d/passwd
/etc/security/opasswd
/lib/security/pam_passwdqc.so
/lib/security/pam_unix_passwd.so

[student@localhost ~]$ locate -n 2 passwd


/etc/passwd
/etc/passwd-

S druge strane, komanda find vrši pretragu u realnom vremenu kroz stablo direktorijuma na
sistemu. Osnovna karakteristika takve pretrage je da je sporija za razliku od pretrage koju vrši komanda
locate, trenutni direktorijum se koristi kao početni ukoliko kroz opcije nije dat direktorijum od koga
treba krenuti I ukoliko nije dat nikakav kriterijum, biće pronađeni svi fajlovi u direktorijumu, tj. svi će
ispuniti uslove pretrage. Prednost komande find jeste što može, ujedno, da izvrši i komande nad
pronađenim fajlovima. Kao i komanda locate, komanda find može da izvrši pretragu samo nad onim
direktorijumima nad kojima korisnik ima pravo čitanj i pisanja.

[student@localhost ~]$ find /etc -name passwd


/etc/passwd
/etc/pam.d/passwd
Instalacija paketa - RPM i YUM

Jedna od osnovnih karakteristika Fedore i Red Hat distribucije jeste upravo RPM, tj. Red Hat
Package Manager. Osnovni zadatak Packet Manager-a jeste održavanje softvera instaliranog na
sistemu. Sam Package Manager određuje način na koji se paketi softvera kreiraju za sam sistem i
instalaciju, i na koji način oni sakupljaju informacije o svim svojim delovima i instalacionim
metodama.
Zaglavlje svakog paketa sadrži skup podataka, koje govori sistemu adresu paketa, pakete za
podršku neophodne za instalaciju glavnog paketa (engl. dependencies), kao i informaciju o tome da li
su ti paketi već instalirani ili ne. Ujedno, tu se nalazi i informacija o svim zavisnostima paketa o druge
pakete.
Sam naziv RPM paketa je oblika “bash-4.2.2.fc13.i386.rpm” sa sledećim značenjem:
- bash, naziv paketa
- 4.2.2, verzija paketa (glavna verzija, podverzija i dodatne zakrpe, ako su primenjene)
- fc13, linux distribucija kojoj je paket namenjen
- i386, arhitektura kojoj je paket namenjen
- rpm, ekstenzija
Instalacija RPM paketa se obavlja bilo iz grafičkog interfejsa bilo iz terminala. Iz terminala,
instalaciju paketa je moguće izvesti korišćenjem komande rpm i navođenjem naziva paketa. Za ovu
operaciju neophodna je lozinka root korisnika.

[root@localhost ~]# rpm -ivh bash-4.2.2.fc13.i386.rpm

Neke od opcija koje se najčešće koriste su:


-i => instaliraj
-v => ispiši propratne poruke
-h => isprati vreme raspakivanje paketa i grafički prikaži
-U => ažuriraj postojeći paket novom verzijom
-e => obriši postojeći paket

No, za instalaciju odgovarajućih paketa najpogodnije je koristiti komandu yum, iz razloga što će
ona, putem svojih mehanizama, obezbediti da se uz odgovarajući paket instaliraju i sve one zavisnosti
koje taj program traži.
Sama konfiguracija yum-a se nalazi u /etc/yum.conf dok se repozitorijumi, tj. Fajlovi koji
sadrže informaciju o tome gde treba potražiti odgovarajuće pakete na zahtev korisnika, nalaze u
direktorijumu /etc/yum.repos.d/. Najčešće opcije koje se koriste jesu:
yum install naziv_paketa => instalira paket naziv_paketa
yum update naziv_paketa => ažurira paket naziv_paketa
yum remove naziv_paketa => briše paket naziv_paketa
yum list available => lista sve dostupne pakete
yum list installed => lista sve instalirane pakete
yum search naziv_paketa => traži paket naziv_paketa

Ukoliko je korisnik vičniji grafičkim alatima za instalaciju paketa, tu je yumex, grafički


interfejs komande yum.
Gašenje sistema

Gašenje sistema je jako bitan postupak i od velike je važnosti da se sistem ispravno spusti, kako
bi se sačuvao integritet podataka i fajlova na sistemu. Komanda za ispravno spuštanje sistema je
shutdown, mada na sistemu postoje još i halt i poweroff. Jednom kada se ova komanda počne
izvršavati, nikakva dalja prijava na sistem nije moguća. Svi procesi se obaveštavaju da se sistem
sprema za spuštanje i to pomoću signala SIGTERM. Na taj način, init procesu se signalizira da promeni
runlevel i prebaci se u nivo 0 – gašenje.

Zapis komende shutdown je:

shutdown [-t sec] [opcije] [vreme gašenja] [poruka upozorenja]

Argument [-t sec] označava da će komanda sačekati navedeni broj sekundi pre nego što krene sa
izvršavanjem. Opcije koje se mogu koristiti su brojne, a neke od njih su:
-h => pokreni gašenje sistema (halt)
-r => pokreni restartovanje sistema
-F => prilikom sledećeg podizanja pokreni fsck (provera ispravnosti fajl sistema)
-f => prilikom sledećeg podizanja nemoj raditi fsck

Vreme koje se navodi u komandi može biti u formatu sat:minut (na primer, u 13:20) ili u
formatu +m (za “m” minuta počev od sada). Prilikom gašenja sistema potrebno je voditi računa da li
ima prijavljenih korisnika. Ukoliko postoji samo jedan korisnik prijavljen na sistem, komanda koja se
izdaje za spuštanje je:

[root@localhost ~]# shutdown -h now

Ukoliko je više korisnika prijavljeno na sistem, potrebno je navesti i vreme za koje će otpočeti
spuštanje sistema, a za to vreme će se na terminalu svakog korisnika ispisati poruka upozorenja o
spuštanju sistema. Na taj način, ostavlja se dovoljno vremena korisniku da prekine rad, zaustavi sve
programe i sačuva podatke. Primeri rada sa komandom shutdown:

[root@localhost ~]# shutdown -r 13:20


[root@localhost ~]# shutdown -t 10 -h +20 “Paznja: Sistem se gasi”

You might also like