[ BORG @ 19.04.2001. 12:30 ] @
Evo i ja nesto da napisem !
Ovo je samo za pocetnike !

***
Linux za pocetnike + Shell
Sasa Ugrenovic (BORG)
[email protected]
18 Aug 2001
***********************************************************************

1.Uvod

2.Sta je linux

3.Distribucije

4.Direkotoriji

5.Logovi

6.Neke aplikacije za laksi rad(ovo je samo za pocetnike)

7.Fajlovi za osnovnu konfiguraciju mreze i interneta

8.Shell

9.Kraj


-----------------------



1.Uvod

Ovo je prvi text koji sam napisao o linuxu.Za sada je samo za pocetnike koji su tek instalisali linux.Otprilike svaki mjesec cu pisati nove textove !

--

2.Sta je linux

Linux je :

1.Multitasking, visestruki operativni sistem
2.Bogato i otvoreno kompjutersko okruzenje,koje je moguce prosiriti

Nekada su svi znali sta je OS(operativni sistem).To je bio kompleksan softverski proizvod,bez koga drugi programi nisu mogli raditi.On je pokretao diskove,ukljuciovao terminale i,u glavnom, vodio racuna o tome sta hardver radi i zasto to radi.
Danas ove granice vise nisu toliko jasno odredjene.Pojava grafickih interfejsa,makro i script jezika,programskih paketa,u kojima aplikacije mogu da medjusobno transparentno razmjenjuju informacije,kao i uvecana popularnost mreza,i distribuiranih podataka,cinioci koji su doprinjeli da tradicionalne razlike vise ne budu jasne.Danas se okruzenja racunara sastoji od slojeva,odnosno nivoa,hardvera i softvera koji stupaju u medjusobnu interakciju formirajuci neku vrstu organske cjeline.

Da ne duzim,Linux je potpuno besplatni operativni sistem koji se moze prosirivati.

3.Distribucije

Postoji puno distribucija linuxa,kao i BSD ova i ostalix unixa.
Evo neke distribucije:
RedHat distribucija
Debian distribucija
Slackware distribucija
Mandrake distribucija
Turbolinux distribucija
QNX distribucija
SuSe distribucija
Caldera distribucija
i tako dalje.....
Od BSD-ova imate:
FreeBSD , OpenBSD , NetBSD
Svaka distribucija se razlikuje po necemu.
Razlikuju se po verzijama kompajlera i libova(glibc,libc6,gcc,g++,...)
Ali ne samo po tome ima jos nekih razlika.
Najbolje ce te nauciti linux tako da ga sami instalisete,svaki dan nesto isprobavate....Najveci uslov ako ocete da se bavite linuxom je znanje engleskog jezika.To je najosnovnije sto moze biti !
Ja sam kod sebe svaki 3 dan preinstalisao linux,jer sam nonstop mrdao nesto,to savjetujem i vama.Citajte sto vise textova,ucite programirati!

4.Direktoriji

U linux imate nekoliko glavnih direktorija,oni su:
root
dev
etc
home
var
proc
lib
usr
lost+found
bin
boot
mnt
sbin
tmp
initrd

Root direktorij je root-ov home direktorij,kao sto kad napravite korisnika,pa njegov home direktoriji je obicno /home/ime_korisnika
ali ako ocete vi to mozete promjeniti.

Dev direktorij je dir gdje vam se nalaze svi uredjaji i interfejsi.Naprimjer ttyS0 je port misa koji pod dosom se oznacava sa com 1 ,a ttyS2 vam je port com 2 gdje obicno bude modem.

Etc direktorij je dir gdje se nalaze konfiguracioni fajlovi,passwd fajl....U tom direktoriju se namjesta internet i mreza.
Za namjestanje interneta i mreze pogledajte grupu 7

Home dir je dir gdje se nalaze korisnicki direktoriji i fajlovi.

Var dir je dir gdje se nalaze logovi,web direktoriji,tamo se smjestaju mail poruke....

Lib dir je dir gdje se nalaze libovi potrebni za pokretanje aplikacija.
To nije jedini dir gdje imate libove.

Usr dir je dir gdje vam se nalaze razni programi koje instalisete(nije uvjek tako),dokumentacija.....

Bin dir je dir gdje vam se nalaze programi(fajlovi)koje mozete pokrenuti da ne ulazite direktorij gdje vam je program vec odakle ocete.

Boot dir je dir gdje vam se nalazi iskompajliran kernel i ostali programi potrebni za dizanje linux-a

Mnt dir je dir gdje montujete cdrom,win particiju,floppy....
to obicno radite tako da npr.napravite u mnt dir-u jos npr. dir win , cdrom , floppy
Windows particiju ce te montovati pomocu komande mount /dev/hda1 /mnt/win
hda1 je oznaka vase particije gdje se nalazi windows.Kod mene je hda1
win je direktorij koji ste napravili pod mnt-om
umntujete ga pomocu komande umount /dev/hda1
Za cdrom pisacete mount /dev/hdb /mnt/cdrom
Za floppy pisacete mount /dev/fd0 /mnt/floppy

Tmp dir je dir gdje vam se nalaze razni procesi.
Posto je ovo malo komplikovanije necu sada pisati.

Eto to je sve sto trebate znati za linux direktorije za pocetak !

5.Logovi

Logovi se nalaze u direktoriju /var/log
Tamo imate vise logova.Tu vam se nalazi i log od apachea(ili bilo kojeg drugog http servera),tu je i syslog,i logovi od drugih servera...Mada neki serveri koriste svoje direktorije kao mjesto gdje ce biti logovi
Mozete namjestati sta da syslog loguje tako da /etc/syslog.conf prepravite.

6.Neke aplikacije za laksi rad(ovo je samo za pocetnike)

Ako ocete laksi rad pri koriscenu linuxa instalisite ove programe:

Wxftp - Ftp client (graficki)
mc - Nesto poput norton comandera u dos-u (obavezno ga isprobajete)
wvdial - Program za konektovanje na internet
xmysqladmin - Ovo instalisite ako koristite mysql baze (graficki)
linuxconf - Ovo vam je za namjestanje mreze,interneta... (graficki)

Ovo preporucujem pocetnicima i profesionalcima da instalisu jer puno olaksava i ubrzava rad !

7.Fajlovi za osnovnu konfiguraciju mreze i interneta

Svi ovi fajlovi se nalaze u /etc direktoriju.Neki se nalaze u /etc/ppp dir-u.
Pokrenite program pppconfig.Konfigurisite tu sve sto treba.Prije toga instalisite wvdial.
Za mrezu(lan) morate izmjeniti 4 fajla.
1. /etc/resolv.conf
2. /etc/hosts
3. /etc/hostname
4. /etc/host.conf

1. /etc/resolv.conf

primjer :

search borg.borg.net
nameserver 127.0.0.1
nameserver 192.168.1.2
nameserver 195.252.64.2

Ovaj primjer je uzet sa mog comp-a.

ovo 127.0.0.1 je localhost
ovo 192.168.1.2 je ip adresa vaseg compa u mrezi
ovo 195.252.64.2 je ip adresa vaseg provajdera

2. /etc/hosts

Primjer :

127.0.0.1 localhost
192.168.1.2 borg.net borg loghost

3. /etc/hostname

Primjer:

borg.net

4. /etc/host.conf

Primjer :

order bind, hosts
multi on

7.Shell

1.Kako kernel i shell stupaju u interakciju
2.Shell i child procesi
3.Funkcije,osobine shella
4.Odrzavanje variabli
5.Shell startup opcije
6.Opcije pri pozivanju shella
7.Posebni karakteri za imena shell variabli
8.Unosenje komentara u shell programe

---

1.Kada se podize UNIX sistem,program unix (Kernel) ucitava se u glavnu memoriju racunara,gdje ostaje sve dok racunar se ne obori.U toku bootup procesa izvrsava se program init kao background task.On nastavlja da se izvrsava,sve do zarvaranja sistema.Ovaj program skenira fajl /etc/inittab sa portovima na kojima se nalaze terminali i njihove karakteristike.Kada pronadje aktivan,otvoren terminal,init poziva program getty.On na terminalu monitora izdaje login:prompt.Sve dok se ovi procesi tu nalaze i izvrsavaju,korisnik moze da stupa u interakciju sa sistemom.

2.U UNIX sistemu ima mnogo programskih slojeva koji startuju iz kernela.Kada se pozovu iz aplikativnog programa ili kada se izda neka komanda.Kada se zavrsi vase logovanje,sloj shell program je u direktnom kontaktu sa kernelom.Kada otkucate komandu kao sto je $ ls,shell pronalazi fajl koji se odnosi na odgovarajuci program /bin/ls i predaje ga kernelu na izvrsavanje.Kernel kreira novo podrucije za "child" proces,ucitava program i izvodi instrukcije koje se nalaze u /bin/ls.Kada se zavrsi izvrsavanje tog programa,kernel preuzima podrucije procesa i vraca kontrolu "parent" shell programu.Da biste vidjeli primjer ovoga,kucajte sledecu komandu:
$ps
Ova komanda prikazuje listu procesa koji se trenutno izvrsavaju.Vidjecete shell program i ps program.Sada kucajte sledece:
$sleep 10 &
$ps
Prva komanda kreira "child" proces sleep koji se izvodi u backgroundu.Mozete da ga vidite u listi koja se dobija ps komandom.Uvjek kad unesete neku komandu,kreira se "child" proces i izvrsava nezavisno od "parent" procesa ili shella.

3.Svejedno je koji cete od standardnih shellova izabrati,zato sto oni imaju istu svrhu:stvaraju korisnicki interfejs za unix.Da bi obezbedili ovaj interfejl,svi shellovi nude iste osnovne karakteristike:

- intepretaciju komandnog reda
- rezervisane rijeci
- shell meta karaktere
- pristup programskim komandama i rukovanjima komandama
- rukovanje fajlovima:preusmjeravanje input/output i pipeova
- odrzavanje variabli
- kontrolu okruzenja
- shell programiranje

4.Shell je sposoban da odrzava varijable.Variable su mjesta na kojima mozete da smestite podatke,da biste ih kasnije koristili.Varijabli dodjeljujete vrednost znakom jedankosti:
$ LOOKUP=/usr/mydir
Ovde shell uspostavlja LOOKUP kao variable,kojoj dodjeljujete vrijednost /usr/mydir.
Kasniije mozete u komandnom redu da koristite ovu vrijednost,zapamcenu u varijabli LOOKUP,tako sto cete ispred imena varijable staviti dolarski znak ($).Razmislite o ovim primjerima:
$ echo $LOOKUP
/usr/mydir

$echo LOOKUP
LOOKUP

Da biste stavili na raspolaganje "child" procesima,mozete da koristite komandu export:

$LOOKUP=/usr/mydir
$export LOOKUP

Kao kada se radi o zamjeni imena fajla,i zamjena imena varijable odigrava se pre nego sto se pozove program.U drugom primjeru izostavljen je dolarski znak.Zbog toga shell samo predaje echo komandi string kao argumenat.Vrijednost varijable zamjenjuje ime varijable:

$ls $LOOKUP/filename

poziva se ls program sa jednim jedinim argumentom,koji je /usr/mydir/filename.

5.Kada pozivate shell iz /etc/passwd,ili iz komandnog reda,mozete da postavite nekoliko opcija kao argumente za shell programiranje.Na primjer,Bourne shell ima -x opciju,koja prikazuje komande i njihove argumente,pre nego sto se izvrse.Ovo je korisno kad se radi debugging shell programa.

6.Kada se shell poziva,ili izvrsava,mozete da koristite bilo koju od nekoliko opcija koje postoje u Bourne shellu.Da biste testirali sintaksu shell scripta,mozete da koristite -n opciju,koja cita script,ali ga ne izvodi.Ako vrsite debugging scripta,opcija -x ce postaviti trace mode,u kojem ce se prikazivati svaka komanda u toku izvrsavanja.U sledecoj listi prikazane su bourne shell opcije koje postoje u vecini verzija UNIX-a

-a Obiljezava sve varijable za export
-c "string" Komande se citaju iz stringa
-e Mode koji nije interaktivan
-f Iskljucuje generisanje shell imena za fajl
-h Funkcije se smjestaju i pamte onako kako su definisane
-i Interaktivan mode
-k Argumenti se stavljaju u okruzenje za komandu
-n Cita komande ali ih ne izvrsava
-r Ogranicen mode
-s Komande se citaju iz standardnog inputa
-t Izvrsava se jedna komanda i shell izlazi
-u Varijable koje nisu postavljene u toku zamjene predstavljaju gresku
-v Verbose mode,prikazuje shell input redove
-x Trace mode,prikazuje komande u toku izvrsanja

7.Postoje posebni karakteri za oznacavanje posebnih shell varijabli,koje shell automatski postavlja.Kao sto je slucaj sa svim varijablama,i njima prethodi $.Lista ovih varijabli je sledeca:

$# Broj argumenata koji se predaje shellu
$- Indikatori koji se predaju shellu prilikom pozivanja,ili pomocu set
$? Vrijednost za status koja vraca posebna komanda
$$ Broj procesa tekuceg shella
$! Broj procesa poslijednjeg "child" procesa
$@ Svi argumenti,individualno oznaceni dvostrukim znakovima navoda
$* Svi argumenti,oznaceni dvostrukim znakovima navoda
$n Vrednost pozicionih argumenata,gdje 'n' predstavlja poziciju
$0 Ime tekuceg shella

Da biste prikazali broj argumenata koji se predaje shellu,kucajte sledece:

$echo $#

0

Ovo znaci da prilikom pozivanja shella njemu nije predat ni jedan argumenat.Ove varijable posebno su koristene kada se pise shell script.

8.Kada pisete programe,vrlo cesto moze da se dogodi da vam ne bude jasan programsi kod koji vam je pre 6 mjeseci bio logican.Dobri programeri svoje programe obelezavaju komentarima.Komentare unosite u shell programe,umetanjem posebnog karaktera za funtu (#).Kada shell interpreter vidi oznaku za funtu,on sav tekst do kraja linije smatra komentarom

9.Kraj

Ovom prilikom pozdravljam sve u novinama pcchip.Mozete ih naci na adresi www.pcchip.hr posto su mi omogucili da probam moj prvi linux !

Takodje pozdravljam i clanove Serbian Security Team-a (sht ili sst):

**W** , Tazman , Zer0l , BaCkSpAcE , BORG(ja) , Mephist0 , Blue^deamon

Pozdravljam sve sa www.elitesecurity.org

Pozdravljam sve ostale koje nisam nabrojao ovde,a poznajem ih !
[ MoHicAn @ 19.04.2001. 21:26 ] @
E crko da bog da !!!!!! :PPPPPPPPP ))))))))

kako tebi QNX distribucija linxa majke ti
lepo sam naveo na vise mesta da je to unix !!!!!!!!
da si ga ikad video primetio bi da nije ni nalik lindzi uopce
................
npr diskovi mu nisu hda hdb hdc itd itd nego hd0 hd1 itd a particije su istripovane do bola ........
onda ne secam se tacno sad /dev/ser je seriski port ........
dodacu posle jos ...............
itd itd ........
[ @ 19.04.2001. 21:33 ] @
Napravio sam nekih gresaka...jer sam to za 1 h napisao,juce.
[ m r v a @ 19.04.2001. 21:37 ] @
Svakom textu bi dobro doslo par korekcija ...
Eo, ja se stavljam na raspolaganje ... posto u zadnje vreme nemam bas mnogo svojih ideja, mogao bih da radim neciji tudji txt l;)

[ ventura @ 19.04.2001. 21:54 ] @
dovrsi onaj moj o administraciji...
pod uzvolom da si pametan kao ja.. naravno
[ Dusan Marjanovic @ 20.04.2001. 01:39 ] @
Bas me cudi da neko voli da pozdravlja sam sebe..."moderno" :o)
[ m r v a @ 20.04.2001. 08:06 ] @
Citat:
ventura wrote:
dovrsi onaj moj o administraciji...
pod uzvolom da si pametan kao ja.. naravno :)

heh, ventura, svakako ... samo kad bi mi naveo koncept txt-a ...BLAH BLAH ...

a za ove prideve::: NARCISU !!!
[ BORG @ 20.04.2001. 18:16 ] @
Pa eto mrva.Uzmi ovaj moj text pa prepravi ako oces.Dodaj nesto,prepravi gdje sam pogrijesio...naravno ako znas...hehehe...

Pozdrav !
[ m r v a @ 20.04.2001. 19:31 ] @
Citat:
BORG wrote:
Pa eto mrva.Uzmi ovaj moj text pa prepravi ako oces.Dodaj nesto,prepravi gdje sam pogrijesio...naravno ako znas...hehehe...

Pozdrav !


vazi vazi, samo sto sam u nedostatku vremena ovih dana ...
pomocicu txt-ove, pa makar i gramaticki .....ako ne nista drugo ...
btw... nemoj nikad da sumnjas u necije znanje ...

[ BORG @ 21.04.2001. 10:52 ] @
hehe...nisam ja sumnjao u nicije znanje.Nego samo pitam....izvini ako sam te uvrijedio

Pozdrav !
[ m r v a @ 21.04.2001. 11:20 ] @
To sam rekao nevezano za mene,
razmisljaj uopsteno L;))