Slackware Logo
Slackware Logo

Lugons

Info

Prevodioci

Greške

 
  LUGONS Slackbook prevod

Slackware Linux osnove

Alan Hiks

Kris Lumens

Dejvid Kantrel

Logan Džonson

Slackware Linux is a registered trademark of Patrick Volkerding and Slackware Linux, Inc.

Linux is a registered trademark of Linus Torvalds.

FreeBSD is a registered trademark of the FreeBSD Foundation.

America Online and AOL are registered trademarks of America Online, Inc. in the United States and/or other countries.

Apple, FireWire, Mac, Macintosh, Mac OS, Quicktime, and TrueType are trademarks of Apple Computer, Inc., registered in the United States and other countries.

IBM, AIX, EtherJet, Netfinity, OS/2, PowerPC, PS/2, S/390, and ThinkPad are trademarks of International Business Machines Corporation in the United States, other countries, or both.

IEEE, POSIX, and 802 are registered trademarks of Institute of Electrical and Electronics Engineers, Inc. in the United States.

Intel, Celeron, EtherExpress, i386, i486, Itanium, Pentium, and Xeon are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.

Microsoft, IntelliMouse, MS-DOS, Outlook, Windows, Windows Media and Windows NT are either registered trademarks or trademarks of Microsoft Corporation in the United States and/or other countries.

Netscape and the Netscape Navigator are registered trademarks of Netscape Communications Corporation in the U.S. and other countries.

Red Hat, RPM, are trademarks or registered trademarks of Red Hat, Inc. in the United States and other countries.

XFree86 is a trademark of The XFree86 Project, Inc.

Za mnoge oznake ili nazive, koje koriste proizvodjači i prodavci da bi njihove proizvode izdvojili, se tvrdi da su zaštićeni. Tamo gde se takve oznake ili imena budu pojavljivala u ovoj knjizi, a Slackware Linux, Inc. je bio obavešten da jesu, biće praćen sledećim simbolima: “™” ili “®”.

1-57176-338-4

Table of Contents
Predgovor
1 Uvod u Slackware Linux
1.1 Šta je Linux?
1.1.1 Reč o GNU-u
1.2 Šta je Slackware?
1.3 Otvoreni Kod i Slobodni Softver
2 Pomoć
2.1 Sistem pomoći
2.1.1 man
2.1.2 Direktorijum /usr/doc
2.1.3 HOWTOs i mini-HOWTOs
2.2 Pomoć na Internetu
2.2.1 Oficijelni web sajt i help forumi
2.2.2 E-mail podrška
2.2.3 Neoficijelni web sajtovi i forumi za pomoć
3 Instalacija
3.1 Nabavka Slackware-a
3.1.1 Oficijelni diskovi i kutije sa softverom
3.1.2 Preko Interneta
3.2 Zahtevi sistema
3.2.1 Serije softvera
3.2.2 Modovi instalacija
3.2.3 Boot disk
3.2.4 Root disk
3.2.5 Dupunski disk
3.2.6 Pravljenje diskova
3.3 Particionisanje
3.4 Program setup
3.4.1 HELP
3.4.2 KEYMAP
3.4.3 ADDSWAP
3.4.4 TARGET
3.4.5 SOURCE
3.4.6 SELECT
3.4.7 INSTALL
3.4.8 CONFIGURE
4 Konfiguracija sistema
4.1 Opšti pregled sistema
4.1.1 Pregled sistema fajlova
4.1.2 Traženje datoteka
4.1.3 Direktorijum /etc/rc.d
4.2 Izbor kernela
4.2.1 Direktorijum /kernels na Slackware CD-ROM-u
4.2.2 Kompajliranje kernela iz izvornog koda
4.2.3 Upotreba kernel modula
5 Konfiguracija mreže
5.1 Uvod: netconfig je vaš prijatelj
5.2 Podešavanje mrežnog hardvera
5.2.1 Učitavanje mrežnih modula
5.2.2 LAN (10/100/1000Base-T i Base-2) kartice
5.2.3 Modemi
5.2.4 PCMCIA
5.3 TCP/IP podešavanje
5.3.1 DHCP
5.3.2 Statička IP
5.3.3 /etc/rc.d/rc.inet1.conf
5.3.4 /etc/resolv.conf
5.3.5 /etc/hosts
5.4 PPP
5.4.1 pppsetup
5.4.2 /etc/ppp
5.5 Bežično
5.5.1 Hardverska podrška
5.5.2 Podešavanje bežičnih postavki
5.5.3 Podešavanje mreže
5.6 Mrežni sistemi fajlova
5.6.1 SMB/Samba/CIFS
5.6.2 Mrežni sistem fajlova (NFS)
6 Konfiguracija X sistema
6.1 xorgconfig
6.2 xorgsetup
6.3 xinitrc
6.4 xwmconfig
6.5 xdm
7 Pokretanje sistema (booting)
7.1 LILO
7.2 LOADLIN
7.3 Dualno startovanje
7.3.1 Windows
7.3.2 Linux
8 Školjka (shell)
8.1 Korisnici
8.1.1 Prijavljivanje/logovanje
8.1.2 Root: superkorisnik
8.2 Komandna linija
8.2.1 Izvršavanje programa
8.2.2 Zamene slova
8.2.3 Redirekcija ulaza/izlaza i cevovodi
8.3 Bourne Again Shell (bash)
8.3.1 Varijable okruženja
8.3.2 Tab popunjavanje
8.4 Virtuelni terminali
8.4.1 Screen
9 Struktura sistema fajlova
9.1 Fajlovi kao nečije vlasništvo
9.2 Dozvole
9.3 Veze (linkovi)
9.4 Montiranje uređaja
9.4.1 fstab
9.4.2 mount i umount
9.5 NFS montiranja
10 Upravljanje fajlovima i direktorijumima
10.1 Navigacija: ls, cd i pwd
10.1.1 ls
10.1.2 cd
10.1.3 pwd
10.2 Prikazivači: more, less, i most
10.2.1 more
10.2.2 less
10.2.3 most
10.3 cat i echo
10.3.1 cat
10.3.2 Komanda echo
10.4 Kreiranje: touch i mkdir
10.4.1 touch
10.4.2 mkdir
10.5 Kopiranje i premeštanje
10.5.1 cp
10.5.2 mv
10.6 Brisanje: rm i rmdir
10.6.1 rm
10.6.2 rmdir
10.7 Povezivanje fajlova sa ln
11 Kontrola procesa
11.1 Pozadinski procesi
11.2 Procesi u prvom planu
11.3 ps
11.4 kill
11.5 top
12 Osnovna administracija sistema
12.1 Korisnici i grupe
12.1.1 Slackware skripte
12.1.2 Promena lozinki
12.1.3 Promena korisničkih informacija
12.2 Korisnici i grupe, teži način
12.3 Propisno gašenje računara
13 Osnovne mrežne komande
13.1 ping
13.2 traceroute
13.3 DNS alati
13.3.1 host
13.3.2 nslookup
13.3.3 dig
13.4 finger
13.5 telnet
13.5.1 Druge koristi od telneta
13.6 Secure Shell
13.7 e-pošta
13.7.1 pine
13.7.2 elm
13.7.3 mutt
13.7.4 nail
13.8 Brauzeri (pregledači Interneta)
13.8.1 lynx
13.8.2 links
13.8.3 wget
13.9 FTP klijenti
13.9.1 ftp
13.9.2 ncftp
13.10 Pričanje sa drugim ljudima
13.10.1 wall
13.10.2 talk
13.10.3 ytalk
14 Sigurnost
14.1 Isključivanje servisa
14.1.1 Servisi pokrenuti iz inetd
14.1.2 Servisi pokrenuti iz init skripti
14.2 Kontrola pristupa
14.2.1 iptables
14.2.2 tcp omotači
14.3 Ostajanje u toku
14.3.1 slackware-security mejling lista
14.3.2 /patches direktorijum
15 Arhivski fajlovi
15.1 gzip
15.2 bzip2
15.3 tar
15.4 zip
16 Vi
16.1 Pokretanje programa vi
16.2 Modovi
16.2.1 Komandni mod
16.2.2 Insert mod
16.3 Otvaranje fajlova
16.4 Snimanje fajlova
16.5 Gašenje programa vi
16.6 vi postavke
16.7 vi tasteri
17 Emacs
17.1 Pokretanje Emacsa
17.1.1 Komandni tasteri
17.2 Baferi
17.3 Modovi
17.3.1 Otvaranje fajlova
17.4 Osnove uređivanja
17.5 Snimanje fajlova
17.5.1 Gašenje Emacs-a
18 Slackware menadžer paketa
18.1 Format paketa
18.2 Programi za rad sa paketima
18.2.1 pkgtool
18.2.2 installpkg
18.2.3 removepkg
18.2.4 upgradepkg
18.2.5 rpm2tgz/rpm2targz
18.3 Pravljenje slackware paketa
18.3.1 explodepkg
18.3.2 makepkg
18.3.3 SlackBuild skripte
18.4 Postavljanje etiketa (tag) i fajlova sa etiketama (tagfile)
19 ZipSlack
19.1 Šta je ZipSlack?
19.1.1 Prednosti
19.1.2 Nedostaci
19.2 Nabavljanje ZipSlack-a
19.2.1 Instalacija
19.3 Pokretanje ZipSlack-a
Glossary
A. GNU opšta javna licenca
A.1. Predgovor
A.2. TERMINI I USLOVI
A.3. Kako da primenite ove termine na vaše nove programe
List of Examples
8-1. Listanje varijabli okruženja sa set

Predgovor

Ciljna publika

Slackware Linux operativni sistem je moćna platforma za računare bazirane na Intelovim procesorima. Dizajniran je da bude stabilan, siguran i funkcionalan i kao server i kao radna stanica.

Ova knjiga je napisana za početnike na Slackware Linux operativnom sistemu. To ne znači da je napisana da pokrije svaki pojedinačni deo ove distribucije, već prvenstveno da pokaže mogućnosti i da vam pruži osnovna znanja za rad na ovom sistemu.

Kako budete napredovali sa Slackware Linux-om, nadamo se da će vam ova knjiga postati pomoćno sredstvo. Takođe se nadamo da ćete je proslediti svojim prijateljima kada vas pitaju za cool Slackware Linux operativni sistem koji koristite.

Možda ova knjiga nije previše ozbiljna, prvenstveno smo se trudili da je napišemo da bude što zanimljivija. Naravno, takođe se nadamo da ćete moći da učite iz nje i naći je kao korisnu.

A sada, počinje šou!.

Izmene u odnosu na prvu ediciju

Ova druga edicija je kulminirala iz godina napornog rada posvećenih članova 'Slackware Documentation Project'-a. Glavne promene u novoj ediciji su:

  • Chapter 3, Instalacija je modifikovana sa novim snimcima ekrana instalera, i promenama u 'disk-sets' i CD instalaciji.

  • Chapter 4, Konfiguracija sistema je obnovljena sa novim informacijama o Linux 2.6.x kernelima.

  • Chapter 5, Konfiguracija mreže je povećana sa dubljim objašnjenjima Sambe, NFS-a i DHCP-a. A sekcija o bežičnim mrezama je takođe dodata. Ovo poglavlje ima glavne izmene oko Slackware podešavanja mreže.

  • Chapter 6, X Window Sistem je bitno promenjen za sisteme bazirane na Xorg-u. Ovo poglavlje sada takođe pokriva xdm grafički upravljač logovanjem.

  • Chapter 13, Osnovne komande za mrežu su poboljsane sa informacijama o dodatnim mrežnim komunikacijama.

  • Chapter 14, Bezbednost je novo poglavlje u ovoj ediciji. Objašnjava kako da održite Slackware Linux sistem bezbednim.

  • Chapter 17, Emacs je novo poglavlje u ovoj ediciji. Opisuje kako da koristite Emacs, moćni editor za Unix.

  • Chapter 18, Upravljanje paketima je obnovljeno sa informacijama o SlackBuild skriptama.

  • Postoji još mnogo drugih promena, ali ovo su najvažnije, da pokažu promene u Slackware-u od kako se razvio.

Organizacija knjige

Chapter 1, Uvod

Daje uvod u Linux, Slackware, Otvoreni Kod i okretanje ka slobodnom softveru.

Chapter 2, Pomoć

Opisuje resurse pomoći na Slackware Linux sistemu i Internetu.

Chapter 3, Instalacija

Opisuje instalacioni proces korak po korak sa slikama ekrana da vam omogući što bolje razumevanje.

Chapter 4, Konfiguracija sistema

Opisuje važne konfiguracione fajlove i pokriva rekompajliranje kernela.

Chapter 5, Konfigurisanje mreže

Opisuje kako da povežete Slackware Linux mašinu na mrežu. Pokriva TCP/IP, PPP/dial-up, bežične mreže i još.

Chapter 6, X Window Sistem

Opisuje kako da se pokrene i koristi grafički X Window Sistem na Slackware-u.

Chapter 7, Butovanje

Opisuje koje procese računar pokreće na Slackware Linux-u. Takođe pokriva i dualno startovanje sa Microsoft Windows operativnim sistemom.

Chapter 8, Školjka

Opisuje moćnu komandnu liniju za Linux.

Chapter 9, Struktura sistema fajlova

Opisuje strukturu sistema fajlova, uključujući vlasništvo nad fajlovima, dozvole i linkovanje.

Chapter 10, Rukovanje fajlovima i direktorijumima

Opisuje komande za manipulisanje fajlovima i direktorijumima iz komandne linije.

Chapter 11, Kontrola procesa

Opisuje moćne Linux komande za rukovanje procesima za kontrolu pokrenutih aplikacija.

Chapter 12, Osnovna sistem administracija

Opisuje osnovne sistem administrativne poslove, kao što su dodavanje i uklanjanje korisnika, pravilno gašenje računara, i još.

Chapter 13, Osnovne mrežne komande

Opisuje kolekciju mrežnih klijenata koji dolaze sa Slackware-om.

Chapter 14, Bezbednost

Opisuje nekoliko različitih alata koji vam pomažu da održite vaš Slackware sistem bezbednim, uključujući iptables i tcpwrappers.

Chapter 15, Arhiviranje fajlova

Opisuje različite načine kompresije i arhiviranja podataka u Linux-u.

Chapter 16, vi

Opisuje moćni vi uređivač teksta.

Chapter 17, Emacs

Opisuje moćni Emacs uređivač teksta.

Chapter 18, Slackware-ovo manipulisanje paketima

Opisuje manipulisanje paketima i procese koji se koriste za kreiranje posebnih paketa i tag fajlova.

Chapter 19, ZipSlack

Opisuje ZipSlack verziju Linux-a koja se koristi na Windowsu bez prethodne instalacije.

Appendix A, GNU opšta javna licenca

Opisuje licencu i uslove pod kojima Slackware Linux i ova knjiga mogu biti kopirani i distribuirani.

Konvencije korišćene u knjizi

Da bi smo vam omogućili skladan i lak tekst za čitanje, koristili smo neke konvencije u ovoj knjizi.

Pisano-grafičke konvencije

Nakošeno

Nakošeni font je korišćen za komande, tekst koji treba naglasiti i za tehničke termine koji se po prvi put pominju u tekstu.

Široko

Široki font je korišćen za poruke o greškama, komande, varijable, imena portova, imena hostova, korisnička imena, imena grupa, imena uređaja i delove koda.

Podebljano

Podebljani font je korišćen za korisničke unose u primerima.

Korisnički unosi

Slova prikazana podebljano da se razlikuju od ostalog tesksta. Kombinacije tastera koji treba da budu istovremeno pritisnuti prikazane su ovako `+' između znakova kao sto su:

Ctrl+Alt+Del

Smisao je da korisnik treba sa pritisne Ctrl, Alt i Del u isto vreme.

Znakovi koji treba da budu kucani u nizu će biti razdvojeni zapetama, na primer:

Ctrl+X, Ctrl+S

Smisao je da korisnik pritisne Ctrl i X tastere istovremeno, a potom da pritisne Ctrl i S tastere istovremeno.

Primeri

Primeri koji počinju sa E:\> pokazuju MS-DOS® komandu. Osim ukoliko je drugačije naznačeno, ove komande mogu biti izvršene u prozoru “komandnog prompta” u modernom Microsoft® Windows® okruženju.

D:\> rawrite a: bare.i

Primeri koji počinju sa # pokazuju komandu koja mora biti izvršena kao super korisnik u Slackware-u. Možete se ulogovati kao root da biste izvršili komandu, ili kao vaš obican nalog koristeci su(1) da biste dobili superkorisnička odobrenja.

# dd if=bare.i of=/dev/fd0

Primeri koji počinju sa % pokazuju komandu koju treba izvršiti kao običan korisnik. Osim ukoliko je drugačije naznaceno, C-shell sintaksa je korišćena za postavljanje varijabla okruženja i ostalih komandi školjke.

% top

Potvrda

Ovaj projekat je potvrda meseci rada mnogih pojedinačnih korisnika. Ne bi bilo moguće da predstavim ovaj rad u vakuumu. Mnogo ljudi zaslužuje našu zahvalnost za svoje nesebične postupke: Kit Keler za svoj rad na bežičnim mrežama, Džust Kremers za svoj važan rad na Emacs sekciji, Sajmon Vilijams za svoje poglavlje o bezbednosti, Jurgen Filiperts za osnovne komande mreže, Cibao Cu Ali G Colibri za inspiraciju. Nebrojani drugi su poslali sugestije i ispravke. Jedna nekompletna lista sadrži: Džejkob Anhoej, Džon Jast, Seli Velč, Morgan Landri, i Čarli Lou. Takođe bih želeo da se zahvalim Kitu Keleru za hostovanje mejling liste za ovaj projekat, takođe i Karlu Inglisu za početni web hosting. Poslednji, ali ne i najmanje važani, želeo bih da se zahvalim Patriku Dž. Volkerdingu za Slackware Linux, i Dejvidu Kantrelu, Loganu Džonsonu i Krisu Lumensu za Slackware Linux Osnove Prva Edicija. Bez njihove inicijalne pomoći, ništa od ovoga se ne bi desilo. Mnogi koji su doprineli u manjoj ili većoj meri ovom projektu, nisu na listi. Nadam se da će mi oprostiti zbog slabijeg sećanja..

Alan Hiks, maj 2005


Chapter 1 Uvod u Slackware Linux

1.1 Šta je Linux?

Linus Torvalds je započeo Linux, kernel operativnog sistema, kao lični projekat 1991. godine. Počeo je s projektom zato što je hteo da koristi Unix baziran oprerativni sistem bez da troši veliku sumu novca. Takođe je hteo da nauči sve što je moguće o procesoru 386. Linux je izdat javnosti besplatno tako da je svako mogao da ga proučava i pravi poboljšanja pod Opštom Javnom Licencom. (Pogledajte Section 1.3 i Appendix A za objašnjenje licence.) Danas, Linux je izrastao u glavnog igrača na tržištu operativnih sistema. Portovan (prebačen) je na razne sistemske arhitekture, uključujući HP/Compaq-ove Alpha, Sunove SPARC i UltraSPARC mašine i Motoroline PowerPC čipove (uključujući i Apple Macintosh i IBM RS/6000 računare.) Stotine, ako ne hiljade, programera preko celog sveta razvijaju Linux. On izvršava programe kao što je Sendmail, Apache i BIND, koji su veoma popularan softver koji se koristi na Internet serverima. Važno je zapamtiti da se izraz “Linux” stvarno odnosi na kernel - srce operativnog sistema. Ovo srce je odgovorno za kontrolu vašeg procesora u sistemu, memorije, hard diskova i ostalog hardvera. To je zaista sve što Linux radi: on kontroliše operacije vašeg računara i stara se da se svi programi ponašaju kako treba. Razne kompanije i pojedinci spajaju kernel i razne programe zajedno da bi napravili operativni sistem. Ovaj skup mi zovemo Linux distribucija.


1.1.1 Reč o GNU-u

Projekat Linux kernela je započeo kao usamljen trud Linusa Torvalds a 1991. godine, ali Isak Njutn je jednom rekao “Ako sam video dalje, to je samo zato što sam stajao na ramenima džinova.” Kada je Linus Torvalds započeo kernel, Fondacija slobodnog softvera je uspostavila ideju saradničkog softvera. Oni su svom trudu dali ime GNU, kao rekurzivni akronim koji jednostavno znači “GNU Nije Unix”. GNU softver se izvršavao nad Linux kernelom od prvog dana. Njihov kompajler “gcc” se koristio za kompajliranje kernela. Danas su mnoge GNU alatke počev od “gcc”-a do “gnutar”-a i dalje osnova svake velike Linux distribucije. Iz ovog razloga, mnogi od zastupnika Fondacije Slobodnog Softvera izjavljuju da bi njihov rad trebao da dobije priznanje isto kao i Linux kernel. Oni snažno sugeriraju da bi sve Linux distribicije trebale sebe da predstavljaju kao GNU/Linux distribucije.

Ovo je tema mnogih rasprava, koji nadmašuje samo drevni emacs protiv vi-a sveti rat. Namena ove knjige nije da potpomaže ovu uzavrelu temu, već pre da razjasni terminologiju početnicima. Kada neko pročita GNU/Linux, to onda znači Linux distribucija. A kad pročita Linux, onda se to može odnositi ili na kernel ili na distribuciju. To može biti zbunjujuće. Tipično se termin GNU/Linux ne koristi zato što se teško izgovara.


1.2 Šta je Slackware?

Slackware, započet od strane Patrika Volkderinga kasne 1992. godine i inicijalno predat svetu 17. jula 1993., je bio prva Linux distribucija koja je dostigla raširenu upotrebu. Volkdering je prvi put naučio Linux kada mu je bio zatrebao jeftin LISP interpretator za projekat. Jedna od retkih distribucija u to vreme je bio SLS Linux kojeg je izdavao Soft Landing Systems. Volkerding je koristio SLS Linux, ispravljajući greške kad god bi naišao na njih. Na kraju, odlučio je da skupi sve ove ispravke u svoju sopstvenu distribuciju koju će moći koristiti on i njegovi prijatelji. Ova privatna distribucija je ubrzo dobila popularnost, pa je Volkerding odlučio da je nazove Slackware i da je napravi javno dostupnom. Tokom vremena, Patrik je dodavao nove stvari Slackware-u; jednostavni instalacioni program baziran na sistemu menija, kao i koncept upravljanja softverskim paketima koji je dozvoljavao korisnicima da lako dodavaju, brišu ili unapređuju softverske pakete na svojim sistemima.

Postoji mnogo razloga zašto je Slackware najstarija živa Linux distribucija. On ne pokušava da emulira Windows, on pokušava da bude što više nalik Unix-u što je to moguće. On ne želi da sakrije svoje procese sa fensi GUI-ima (grafički korisnički interfejs) po kojima možete da klikćete. Umesto toga, on prepušta kontrolu korisnicima, dozvoljavajući im da vide tačno šta se dešava. Njegov razvoj se ne ubrzava kako bi se dostigli određeni datumi - svaka verzija izlazi kada je spremna.

Slackware je za ljudi koji uživaju u učenju i poboljšavanju svojih sistema kako bi radili tačno ono što oni od njih žele. Slackware-ova stabilnost i jednostavnost su razlog što će ga ljudi nastaviti koristiti i u godinama koje dolaze. Slackware trenutno uživa reputaciju solidnog servera i radne stanice koja nije za šalu. Možete naći Slackware desktop računare kako izvšavaju skoro svaki upravljač prozorima ili desktop okruženje, ili nijedno od njih. Slackware serveri opslužuju kompanije, radeći u svakom kapacitetu u kom može da se koristi taj server. Slackware korisnici su među najzadovoljnijim Linux korisnicima. Naravno, šta bismo drugo mi i rekli. :^)


1.3 Otvoreni Kod i Slobodni Softver

Unutar Linux zajednice postoje dva velika ideološka pokreta koja su na delu. Pokret Slobodnog Softvera (do kojeg ćemo doći za momenat) ima za cilj da načini sav softver slobodnim od restrikcija nametnutih intelektualnim vlasništvom. Sledbenici ovog pokreta veruju da ove restrikcije stavljaju tehnološki napredak i rad protiv dobra društva. Pokret Otvorenog Koda ide ka većini istih ciljeva, ali uzima pragmatičniji pristup prema njima. Sledbenici ovog pokreta više vole da baziraju svoje argumente na ekonomskim i tehničkim prednostima koji dolaze kada se izvorni kod načini potpuno dostupnim, pre nego moralnim i etičkim principima koji pokreću Pokret Slobodnog Softvera.

S druge strane su grupe koje žele da održe čvršću kontrolu nad svojim sofverom.

Pokret Slobodnog Softvera vodi Fondacija Slobodnog Softvera, organizacija koja skuplja prilog za GNU projekat. Slobodni Softver je više ideologija. Često korišćen izraz je “sloboda kao sloboda govora, ne kao besplatno pivo”. U osnovi, slobodni softver je pokušaj da se garantuju određena prava i za korisnike i za programere. Ove slobode uključuju slobodu da se program izvršava iz bilo kojeg razloga, da se proučava i modifikuje izvorni kod, da se redistribuira kod programa i da se dele bilo koje modifikacije koje napravite. Kako bi se zagarantovale ove slobode stvorena je GNU Opšta Javna Licenca (General Public License, GPL). GPL, ukratko, omogućava da svako ko distribuira kompajlirani program koji je pod GPL licencom takođe mora da pruži izvorni kod, i da je slobodan da pravi modifikacije u programu sve dok su ove modifikacije isto dostupne u formi izvornog koda. Ovo garantuje da jednom kada je program “otvoren” za zajednicu, više nikada ne može biti “zatvoren” osim ako se slože svi autori svakog dela koda (čak i modifikacija) unutar njega. Većina Linux programa su licencirana pod GPL-om.

Važno je napomenuti da GPL ne govori ništa u vezi cene. Iako može zvučati čudno, ali vi možete naplatiti slobodan softver. Deo “sloboda” se odnosi na slobode koje imate sa izvornim kodom, ne u ceni koju plaćate za softver. (Međutim, jednom kada vam neko proda, ili pokloni, kompajlirani program pod GPL-om onda je obavezan i da vam pruži izvorni kod.)

Još jedna popularana licenca je BSD licenca. Za razliku od GPL-a, BSD licenca ne zahteva izdavanje izvornog koda programa. Softver izdat pod BSD licencom dozvoljava redistribuciju u izvornoj ili binarnoj formi samo ukoliko je nekoliko zahteva ispunjeno. Informacije o autoru ne mogu biti korišćene za bilo kakvu vrstu reklame za program. Takođe, oslobađa autora od odgovornosti za štete koje mogu nastati korišćenjem softvera. Mnogo softvera koji je uključen u Slackware Linux je licenciran BSD licencom.

Kao predvodnik mlađeg pokreta Otvorenog Koda, Open Source Initiative (Inicijativa Otvorenog Koda) je organizacija koja postoji samo da pruža podršku softveru otvorenog koda, to jest, softvera koji ima dostupan izvorni kod, kao i program koji je spreman za izvršavanje. Oni ne pružaju specifičnu licencu, već umesto toga podržavaju razne vrste dostupnih licenci.

Ideja iza OSI-ja je da se omogući više da više kompanija stanu iza otvorenog koda tako što će im se dozvoljavati da pišu svoje sopstvene licence otvorenog koda i da te licence budu sertifikovane od strane Inicijative Otvorenog Koda. Mnoge kompanije žele da izdaju izvorni kod, ali ne žele da koriste GPL. Pošto ne mogu radikalno da promene GPL, ponuđena im je prilika da pruže svoju sopstvenu licencu i da ona bude sertifikovana od strane ove organizacije.

Iako Fondacija Slobodnog Softvera i Inicijativa Otvorenog Koda rade da pomognu jedni drugima, ipak nisu ista stvar. Fondacija Slobodnog Softvera koristi posebnu licencu i stvara softver pod tom licencom. Inicijativa Otvorenog Koda traži podršku za sve licence otvorenog koda, uključujući i onu od Fondacije Slobodnog Softvera. Osnove zbog kojih svaka strana argumentuje slobodno otvaranje izvornog koda ponekad razdvajaju ova dva pokreta, ali činjenica da dve ideološki različite grupe rade ka istom cilju čini da odajemo poštovanje trudu obe strane.


Chapter 2 Pomoć

Često nam je potrebna pomoć za određenu komandu, za podešavanje programa, ili osposobljavanje neke hardverske komponente da radi. Možda jednostavno želite da bolje razumete komandu koju ste zadali, ili da vidite ostale opcije koje su moguće sa njom. Srećom, postoji više načina da se dođe do pomoći koja vam je potrebna. U toku instalacije Slackware imali ste opciju da li da instalirate pakete iz “F” serije u kojoj se naleze FAQ i HOWTO. Programi takođe dolaze sa pomoći za njihove opcije, za konfigurcione datoteke, a i samo korišćenje.


2.1 Sistem pomoći

2.1.1 man

Komanda man (skraćenica za “manual”) je tradicionalna forma za online dokumentaciju u Unix i Linux operativnim sistemima. “man strane” kao specifično foramtirane datoteke obuhvataju većinu komandi i distribuiraju se samim softverom. Izvršavanjem man neka_komanda dobiće se man strana za komandu koju ste naveli, u našem primeru to bi bilo za naš imaginarni program neka_komanda.

Kao što možete da pretpostavite, broj man starna kako vreme prolazi je sve veći i veći tako da snalaženje u svemu tome postaje ozbiljno kompikovano čak i za naprednije korisnike. Iz tog razloga, man starne su grupisane u numerisane odeljke. Ovakav princip se koristi odavno tako da će man starna za određenu komandu, program ili čak funkciju neke programske biblioteke biti dobijena uz pomoć broja odeljka.

Na primer:

Možda ćete videti referencu na man(1). Ovaj broj govori da je “man” dokumentovana u odeljku 1 (korisničke komande); možete da naglasite da želite odeljak 1 man strane za “man” korišćenjem komande man 1 man. Navođenjem broja odeljka je korisno kada postoje višestruke stavke istog imena.

Table 2-1. Odeljci man starna

Odeljak Sadržaj
Odeljak 1 korističke komande (samo osvrt)
Odeljak 2 sistemski pozivi
Odeljak 3 pozivi ka C bibliotekama
Odeljak 4 uređaji (npr, hd, sd)
Odeljak 5 formati datoteka i protokoli (npr, wtmp, /etc/passwd, nfs)
Odeljak 6 igre (samo osvrt)
Odeljak 7 konvencije, makro paketi, itd. (npr, nroff, ascii)
Odeljak 8 administracija sistema (samo osvrt)

Pored man(1) komadne, postoje i komande whatis(1) i apropos(1) koje nam omogućavaju da lakše dođemo do informacija u man sisetemu.

Komanda whatis daje veoma sažet opis komande sistema, pomalo u stilu beleški.

Primer:

% whatis whatis
whatis (1)  - pretražuje whatis bazu podataka database za kompletnu reč

Komanda apropos se koristi za traženje man strana koje sadrže zadatu reč.

Primer:

% apropos wav
cdda2wav    (1)  - a sampling utility that dumps CD audio data into wav sound files
netwave_cs  (4)  - Xircom Creditcard Netwave device driver
oggdec      (1)  - simple decoder, Ogg Vorbis file to PCM audio file (WAV or RAW)
wavelan     (4)  - AT&T GIS WaveLAN ISA device driver
wavelan_cs  (4)  - AT&T GIS WaveLAN PCMCIA device driver
wvlan_cs    (4)  - Lucent WaveLAN/IEEE 802.11 device driver

Ako želite još inforamcija o tim komandama, pročitajte man strane za detaljniji opis. ;)


2.1.2 Direktorijum /usr/doc

Izovorni kod za većinu paketa koje smo izgradili dolazi sa nekom vrstom dokumentacije: README datoteke, instrukcije za korišćenje, datoteke koje se odnose na licencu, itd. Bilo koja vrsta dokumentacije koja dolazi sa izvornim kodom je instalirana u /usr/doc direktorijum. Svaki program (uglavnom) instalira svoju dokumentaciju u ovom poretku:

/usr/doc/$program-$version

Gde je $program ime programa o kome hoćemo nešto da pročitamo, a $version je (očigledno) odgovorajuća verzija softverskog paketa koje je instaliran na sistem.

Na primer, da biste pročitali dokumentaciju za komandu man(1) trebali biste da sa cd komandom odete na odgovarajuće mesto:

% cd /usr/doc/man-$version

Ako čitanjem ogovarajućih man strana ne dođete do potpunih informacija pretraživanje direktorijuma /usr/doc bi bio sledeći logični korak.


2.1.3 HOWTOs i mini-HOWTOs

U Open Source zajednici vladao je dobar duh koji je sagradio HOWTO/mini-HOWTO kolekciju. Te datoke su baš ono što im i ime govori - dokumenti i vodiči koji objašnjavaju kako da se nešto podesi. Ako ste instalirali HOWTO kolkciju, ona se nalazi u /usr/doc/Linux-HOWTOs a mini-HOWTOs je u /usr/doc/Linux-mini-HOWTOs direktorijumu.

Neki paketi dolaze sa FAQ listom (često postavljenja pitanja i odgovori), što je akronim za

Frequently
Asked
Questions

Ovi dokumenti su napisani u stilu “Pitanje i odgovor.” FAQ liste mogu da budu veoma korisne u situacijama kada želite da brzo “fiksirate” rešenje problema. Ako ste u toku instaliranje sisteme instalirali i FAQ liste naćićete ih u /usr/doc/Linux-FAQs direktorijumu.

Čitanje ovih datoteka je korisno u slučajevima kada nismo sigurni kada dođemo u ćorsokak. One pokrivaju neverovatanu oblast tema, ponekad iznenađujeće detaljno. Dobar materijal!


2.2 Pomoć na Internetu

Pored dokumentacije koja dolazi sa instalacijom Slackware Linux Oprerativnog sistema, postoji bezbroj online resursa koje možete da koristite.


2.2.1 Oficijelni web sajt i help forumi

Oficijelni Slackware web sajt

Oficijelni Slackware Linux web sajt ponekad nije ažuran, ali i pored toga sadrži ralevantne inforamacije vezane za poslednje izdanje Slackwere-a. Nekada je forum pomoćno egzistirao pre nego što na njega nisu navalile horde trolova, kontraša i pametnjakovića. Održavanje takvog foruma je zahtevalo puno rada, i Pat ga je ugasio. Ono što možete naći su stari arhivirani forumi koje možete da pretražujete na http://www.userlocal.com/phorum/.

Posle gašenja foruma na http://slackware.com, nekoliko drugih sajtova je ponudilo da hostuje forum podrške za Slackware. Posle mnogo razmišljanja, Pat je odlučio da www.linuxquestions.org bude oficijelni forum za Slackware Linux.


2.2.2 E-mail podrška

Svakom ko je nabavio oficijelni CD set sleduje besplatna podrška za instaliranje preko e-poruka developera. Imajte na umu da mi, programeri, (i velika većina korisnika) Slackware-a pripadamo “staroj školi ”. To znači da preferiramo da pomognemo svakom ko ima iskrene interese i ko hoće sam sebi da pomogne u procesu rešavanja problema. Uvek ćemo dati sve od sebe da pomognemo svakom ko nam je poslao e-poruku sa pitanjem vezanim za poršku. Ipak, molim vas da pogledate vašu dokumentaciju i web sajt (posebno FAQ liste ili možda neki od foruma izlistanih dole) pre nego što nam pošaljete email. Na taj način možda ćete doći brže do odgovora, a mi na manje e-poruka onda odgovaramo tako da smo onda više raspoloživi za one kome je pomoć neophodna.

Adresa e-pošte za tehničku podršku je: support@slackware.com. Druge adrese e-pošte i kontakti su izlistani na web sajtu.


2.2.2.1 Mejling liste Slackware Linux projekta

Imamo nekoliko mailing lista, u noralnoj i digest formi. Proverite instrukcije kako da se prijavite.

Da biste se prijavili na mejling listu, pošalji te e-poruku na:

majordomo@slackware.com

sa frazom “subscribe [ime liste]” u zaglavju e-poruke. Izbor liste je objašnjen dole (dole navedena imena koristite ko imena listi).

Arhiva mejling liste može da se nađe na Slackware web sajtu na adresi:

http://slackware.com/lists/archive/

slackware-announce

slackware-announce mejling lista se odnosi na proglase o novim verzijama, velikim ažuriranjima i drugim generalnim informacijama.

slackware-security

slackware-security mejling lista sadrži proglase koji se odnose na pitanja vezana za sigurnost. Informacije o bilo kojem exploitu ili o nekim drugi ranjivostma koja se direktno odnose na Slackware biće odmah poslate na ovu listu.

Ove liste su dostupnei u digest formatu. To znači da ćete dnevno dobijati jednu veliku poruku umesto nekoliko kratkih. Pošto slackware mejling lista ne dozvoljava da se šalju postovi, a isto tako ne zauzima veliki mrežni promet, za većinu korisnika je pogodnije da koriste digest listu. Još uvek je dostupna i možete je kristiti ako se prijavite na slackware-announce-digest ili slackware-security-digest.


2.2.3 Neoficijelni web sajtovi i forumi za pomoć

2.2.3.1 Web sajtovi

Google

Kung-Fu majstor mašina za pretraživanje. Kada ste apsoluno sigurni da možete naći krucijalne informacije vezane za subjekt koji tražite: Ne tražite zamenu.

Google:Linux

Linux-svojstveno pretraživanje

Google:BSD

BSD-svojstveno pretraživanje. Slackware kao jedan Unix-oliki operativni sistem je dosta generičan tako da se ponekad dešava da ne nađemo 100% relevantne informacije koje se odnose na njega. Mnogo puta BSD pretraživanje daje više tehničkih informacija nego odgovarajuće PR-related Linux pretraživanje.

Google:Groups

Pretražujte postove ponekad stare i deceniju da nađete vaš biser mudrosti.

http://userlocal.com

Virtualna riznica znanja, dobri saveti, prva iskustva i interesantni članci. Često ćete biti baš u centru zbivanja vezanih za razvoj Slackware-a.


2.2.3.2 Resursi bazirani na web-u

linuxquestions.org

Oficijelno odobreni web forumi za korisnike Slackware-a.

LinuxISO.org Slackware Forum

“Mesto za preuzimanje i dobijanje pomoći za Linux.”

alt.os.linux.slackware FAQ

Drugi FAQ.


2.2.3.3 Usenet grupe (NNTP)

Usenet je odavno bio mesto za skupljane geekova i međusobnu pomoć. Postoji nekoliko news grupa koje su namenjene za Slackware Linux, a vremenom bivaju sve više ispunjene sa ljudima velikog znanja.

alt.os.linux.slackware

alt.os.linux.slackware, poznatija kao aols (nemoj te je zameniti sa AOL®!) je najaktivnije mesto u kome se mogu naći tehnička pomoć za Slackware probleme. Kao svaka Usenet news grupa, nekoliko nesrećnih učesnika (“trollovi”) može da pokvari atmosferu svojom konstantnom potrebom da se dokazuju. Naučiti ljude da ignorišu i identifikuju te trollove je ključ da resursi budu sve veći.


Chapter 3 Instalacija

Pre nego što počnete sa korišćenjem Slackware Linux-a, potrebno je da ga nabavite i instalirate. Nabavka Linux-a je jednostavna, bilo da kupujete diskove ili ga preuzimate sa Interneta. Instalacija je isto tako laka ukoliko imate neko osnovno znanje o računarima i ako ste voljni da naučite još neke stvari. Instalacioni proces je više manje u formi korak po korak. Zbog toga ćete sam proces brzo i efikasno izvoditi. Sam Slackware se može pohvaliti kao distro koga karakteriše vremenski najkraći instalacioni proces (izuzimaju se nepotpune distribucije).


3.1 Nabavka Slackware-a

3.1.1 Oficijelni diskovi i kutije sa softverom

Oficijelni Slackware Linux CD set se može nabaviti kod Slackware Linux, Inc. Set se sastoji od 4 diska. Na prvom disku se nalazi softver koji je potreban za osnovu instalaciju servera i X windows sistema. Drugi disk je “live” cd; što znači da je to butabilni cd koji Slackware instalira u RAM memoriju i takav sistem prestavlja privremenu instalaciju koja se koristi uglavnom za razna isprobavanja i oporavak mašine. Ovaj cd sadrži KDE i GNOME desktop okruženja. Tu se još nalazi nekoliko ne toliko vitalnih paketa u “extra” folderu. Treći i četvrti disk sadrže celokupan izvorni kod Slackware-a, zajedno sa ovom knjigom.

Pojedinci su možda nabavili kutiju sa 4 diska i kopijom ove knjige, kao i sa mnogo razne Slackware opreme da bi pokazali svoju geek prirodu. Moguća ja preplata sa sniženjem na CD-ove.

Priroritetan metod za kupovanje Slackware robe je online ili u Slackware prodavnicama.

http://store.slackware.com

Takođe možete i preko e-poruke da naručite robu.

Table 3-1. Slackware Linux, Inc. informacije za kontakt

Metoda Kontakt detalji
Telefone 1-(925) 674-0783
Web sajt http://store.slackware.com
E-pošta orders@slackware.com
Adresa 1164 Claremont Drive, Brentwood, CA 94513

3.1.2 Preko Interneta

Slackware Linux se isto tako može nabaviti preko Interneta. Možete da pošaljete e-poruku sa pitanjima našoj podršci, ali veći pripritet imaju oni koji su nabavili oficijelni CD set. To govorim pošto dobijamo gomilu e-poruka, a vreme nam je ograničeno. Pre nego što pošaljete e-poruku našoj podršci imajte u vidu da pročitate Chapter 2

Oficijelni sajt Slackware Linux Project-a se nalazi na:

http://www.slackware.com/

Primarna FTP lokacija Slackware Linux-a je:

ftp://ftp.slackware.com/pub/slackware/

Imajte na umu da naš ftp sajt, pošto je otvoren za generalnu upotrebu, nema neograničen protok. Razmotire mogućnost korišćenja najbližeg mirora za preuzimanje Slackware-a. Nepotpuna lista mirirora se može naći na našem sajtu: http://www.slackware.com/getslack.


3.2 Zahtevi sistema

Jedna laka Slackware instalacija zahteva, kao minimum, sledeće:

Table 3-2. Zahtevi sistema

Zahtevi u hardveru
Procesor 586
RAM 32 MB
Prostor na disku 1GB
Uređaj za medije 4x CD-ROM

Ako imate butabilni CD, verovatno vam nije potreban flopi uređaj. Naravno, ako iz nekog razloga nemate CD-ROM uređaj, potreban vam je flopi uređaj da biste mogli da obavite instalaciju preko mreže. Mrežna kartica je potrebna za NFS instalaciju. Za više informacija pogledajte odeljak koji se zove NFS.

Zahtevi koji se tiču izbora prostora na disku su ponekad u uvijenoj formi. Preporuka za veličinu od 1 GB je obično u redu ako se misli na normalnu instalaciju, ali ako želite punu istalaciju, potrebno vam je oko dva gigabajta sa vašeg diska plus dodatni prostor za lične datoteke. Većina korisnika ne obavlja punu instalaciju. Zapravo mnogi pokreću Slackware na manje od 100MB prostora.

Slackware se može instalirati i na sistemima sa manje RAM-a, manjih hard diskova, i slabijih procesora, ali to zahteva više podmazivanja. Ako vas to interesuje, pogledajte LOWMEM.TXT datoteku na disku distribucije.


3.2.1 Serije softvera

Zbog pojednostavljivanja stvari, Slackware je istorijski podeljen na serije softvera. Nekada su se zvale “disk sets” pošto su se distrubuirale preko disketa. Sada se serije softvera koriste prevashodno za kategorizaciju pakata koji dolaze sa Slackware-om. Danas se instalacija sa disketa ne koristi.

Ovo što sledi je kratak opis svake od serija softvera.

Table 3-3. Serija softvera

Serija Sadržaj
A Osnovni sistem. Sadrži onoliko softvera koliko je zaista potrebno za rad, zajedeno sa uređivačima teksta i osnovnim komunikacionim programima.
AP Razne aplikacije koje ne zahtevaju X Window System.
D Alati za razvoj programa. Kompajleri, dibageri, interpreteri, i man strane za sve njih.
E GNU Emacs.
F FAQs, HOWTOs, i druga raznovrsna dokumentacija.
GNOME GNOME desktop okruženje.
K Izvorni kod Linux kernel-a.
KDE K Desktop okruženje. X okruženje koje deli puno stvari što se tiče izgleda i korišćenja sa MacOS i Windows sistemima. Qt biblioteke, koje su potrebne za KDE su isto u ovoj seriji.
KDEI Internacionalni paketi za KDE desktop.
L Biblioteke. Dinamički linkovane biblioteke potrebne mnogim ostalim programima.
N Mrežni programi. Demoni, mail programi, telnet, news čitači, itd.
T teTeX sistem za formatiranje dokumenata.
TCL Tool Command Language. Tk, TclX, i TkDesk.
X Osnovni X Window sistem.
XAP X aplikacije koje nisu sastavni deo glavnih desktop okruženja (na primer, Ghostscript i Netscape).
Y BSD konzolne igre

3.2.2 Modovi instalacija

3.2.2.1 Flopi

Nekada je bilo moguće da se Slackware Linux instalira sa flopi diskova, ali povećavanjem veličine softverskih paketa polako se forsiralo napuštanje takve prakse. Za verzije koje su posle verzije 7.1 delimična instalacija upotrebom disketa je moguća. A i N serija se može skoro potpuno instalirati, i na taj način se obezbeđuje osnovni sisetem sa koga može da se instalira ostatak distribucije. Ako već razmatrate instalaciju sa disketama (uglavnom se misli na stari hardver), obično se preporučije pronalaženje nekog drugog načina, ili upotreba nekog starog izdanja. Slackware 4.0 je još uvek dosta popularan zbog tog razloga, kao i 7.0.

Molim vas da zapamtite da je disketa još potrebna za instalaciju sa CD ROM-a kada ne možete da butujete sa njega, ili kada se koristi NFS instalacija.


3.2.2.2 CD-ROM

Ako imate butabilni CD, koji je u sklopu oficijalnog seta diskova koje je objavio Slackware Linux, Inc. (pogledajte odeljak Nabavka Slackware-a), instalacija bazirana na CD-ima je za vas nejjednostavnija. Ako to nije slučaj, potrebno je da se butujete sa disketa. Takođe, ako imate specifični hardver kod koga se javljaju problemi u korišćenju kernela sa butabilnog CD-a, potrebno je da koristite specifične diskete.

Od 8.1 verzije Slackware-a , koristi se novi metod za kreiranje butabilnih CD-ova, što takođe ne radi dobro na izvesnim problematičnim BIOS čipovima. Ako je to tako, predlažemo da se vrši butovanje sa flopi diskova.

Section 3.2.3 i Section 3.2.5 vam daje informacije o izboru i kreiranju disketa sa kojih se vrši butovanje. Nadamo se da vam to neće biti neophodno.


3.2.2.3 NFS

NFS (Network File System) je način da fajl sistem bude prisutan na udaljenoj mašini. NFS instalacija vam omogućava da instalirate Slackware sa nekog drugog računara na vašoj mreži. Mašina sa koje nameravate da instalirate mora da bude konfigurisana za eksportovanje stabla Slackware distribucije na mašinu na koju se instalira. Ovo naravno podrazumeva neka znanja o NFS-u, što je objašnjeno u Section 5.6.

Moguće je da se NFS instalcija izvrši preko PLIP (parallel port), SLIP, i PPP (ne mora da bude uvek modemska konekcija) metoda. Ipak vam preporučujemo da koristite mrežnu karticu ako je imate. Pored toga, instalacija operativnog sistema preko porta koji koristi štampač je veoma spor proces.


3.2.3 Boot disk

Boot disk je flopi čijim butovanjem započinje instalacija. On sadrži kompresovanu sliku (image) kernela koji se koristi za kontrolu hardvera u toku instalacije. Stoga je veoma bitan (jedino ako butovanje ne vršite sa CD, što je objašnjeno u poglavlju CD-ROM). Boot diskovi su locirani u bootdisks/ direktorijumu u stablu distribucije.

Postoji mnogo Slackware boot diskova koje možete da koristite (oko 16). Kompletna lista boot diskova, sa opisom svakog, se nalazi na stablu Slackware distribucije, tačnije u datoteci bootdisks/README.TXT. Ipak, većina ljudi koriste bare.i (za IDE uređaje) ili scsi.s (za SCSI uređaje) boot disk slike.

Za instrukcije kako se prave diskovi iz slika pogledajte Section 3.2.6.

Posle butovanja, bućete upitani da umetnete root disk. Ako želite malo da se poigrate preporučujemo vam da umetenete boot disk.


3.2.4 Root disk

Root diskovi sadrže setup program i fajl sistem koji se koristi u toku instalacije. Oni su isto tako neophodni. Slike root diskova su locirane u direktorijumu rootdisks stabla distribucije. Potrebno je da napravite dva root diska iz datoteka install.1 i install.2. Isto tako možete pronaći i fajlove network.dsk, pcmcia.dsk, rescue.dsk i sbootmgr.dsk disks.


3.2.5 Dupunski disk

Dopunski disk je potreban u slučaju ako se izvodi NFS instalacija ili instalacija na sistem koji ima PCMCIA uređaje. Dopunski diskovi su u rootdsks direktorijumu stabla distribucije. To su datoteke network.dsk i pcmcia.dsk. Novije distribucije imaju i fajlove rescue.dsk i sbootmgr.dsk. Disk za oporavak sistema (rescue disk) je mala root slika koja se pokreće na RAM disku veličine 4MB. Taj disk sadrži neke osnovne mrežne alate i vi editor za brzo uklanjanje problema na problematičnoj mašini. sbootmgr.dsk disk se koristi za butovanje drugih uređaja. Koristite ovaj disk kada vaš butabilni CD-ROM uređaj neće da butuje Slackware CD-ove. Bićete upitani o različitim stvarima da biste se butovali ili će vam se ponuditi neki drugi pogodniji način da premostite te probleme sa nezgodnim BIOS-om.

Root disk će vam reći kada treba da koristite dopunske diskove.


3.2.6 Pravljenje diskova

Kada ste izabrali boot disk sliku, potrebno je da je prenesete na disketu. Taj proces se pomalo razlikuje u zavisnosti koji se operativni sistem koristi. Ako imate pokernut Linux (ili neki drugi na Unix-u baziran OS) moraćete da koristite dd(1) komandu. Pretpostavimo da je bare.i vaša datoteka sa slikom, a flopi drajv da je /dev/fd0, komanda koja od bare.i slike pravi disk je:

% dd if=bare.i of=/dev/fd0

Ako koristite Microsoft OS, potrebno je da koristite RAWRITE.EXE program, koji se nalazi na stablu distribucije u istom direktorijumu kao i slike disketa. Ponovo pretpostavimo da je bare.i vaša slika diska, a flopi uređaj da je A:, otvorite DOS prompt i otkucajte sledeće:

C:\ rawrite a: bare.i

3.3 Particionisanje

Posle butovanja sa određenog medija, potrebno je da napravite particije na vašem hard disku. Particije hard diska su mesto gde će se sistem fajlova Linux-a smestiti i mesto gde će se Slackware istalirati. Preporučuje se kreiranje, kao minimum, dve particije; jedna za vaš root sistem fajlova (/) a druga za swap prostor.

Posle nego što se root disk učita, prikazaće se prompt za prijavljivanje (logovanje). Logujte se kao root (nema lozinke). U promtu školjke, pokrenite cfdisk(8) ili fdisk(8) komandu. Program cfdisk nudi više korisnički orjentisan (user-friendly) interfejs za razliku od regularnog fdisk programa, ali sa nešto manje mogućnosti. Ukratko ćemo objasniti fdisk program.

Počnite tako što za vaš hard disk pokrenete fdisk program. U Linux-u, hard diskovi nisu obeleženi slovima, već su prikazani preko datoteka. Prvi IDE hard disk (primarni master) je /dev/hda, primarni slejv je /dev/hdb, itd. SCSI diskovi prate sličnu šemu, ali u ovakoj formi: /dev/sdX. Potrebno ja da pokrenete fdisk komandu za vaš hard disk:

# fdisk /dev/hda

Kao i svi dobri Unix programi, komanda fdisk će da da jedan promt (mislili ste da ćete dobiti neki meni, jel tako?). Prvo što ćemo da uradimo je da vidimo naše tekuće particije. To ćemo uraditi ako otkucamo p u fdisk promptu:

Command (m for help): p

Ovako ćete dobiti sve vrste informacija o vašim tekućim paricijama. Dosta ljudi se odlučuje da na prazan disk instalira Linux, a to obavljaju tako što obrišu sve postojeće particije.

Warning

VEOMA JE VAŽNO DA SNIMITE SVE VAŽNE PODATKE PRE NEGO ŠTO UNIŠTITE PARTICIJE.

Ne postoji lak način za oporavak podataka iz obrisanih particija, tako da uvek odradite backup pre igranja sa particijama.

Ako pogledate u tabelu sa informacijama o particijama videćete broj particije, veličinu particije, i njen tip. Ima puno informacija, ali o tome za sada ne trebate da brinete. Idemo da obrišemo sve te particije na tom drajvu da bismo kreirali particije za Linux. Pokrenimo komandu d za brisanje particija:

Command (m for help): d
Partition number (1-4): 1

Ovaj proces treba da se ponovi za svaku particiju. Posle brisanja spremni smo da kreiramo Linux particije. Odlučili smo da kreiramo pariciju za root fajl sistem i swap particiju. Postoji rat argumentima koji se vodi o tome koja je Unix šema za particionisanja najbolja, tako da će vam mnogi korisnici neku preporučiti. Kao minimum treba da kreirate jednu particiju za / i jednu za swap. Vremenom ćete otkriti onaj metod koji vašim potrebama najviše odgovara.

Ja koristim dve osnovne šeme za particionisanje. Prva je za desktop. Tu pravim 4 particije: /, /home, /usr/local, i swap. Na taj način mogu da reinstaliram ili nadogradim celu instalaciju za / a da ne obrišem datoteke sa podacima koji su u /home ili moje kompajlirane aplikacije koje su u /usr/local. Za servere, često menjam /usr/local particiju sa /var particijom. Različiti serveri skladište informacije na tim particijama i na taj način ih odvajaju od / direktorijuma, čime se poboljšavaju neke performanse. Za sada, ostaćemo na samo dve particije: / and swap.

Sada ćemo da kreiramo paricije sa n komandom:

Command (m for help): n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4):1
First cylinder (0-1060, default 0):0
 Last cylinder or +size or +sizeM or +sizeK (0-1060, default 1060):+64M

Morete da budete sigurni da li da kreirate pirmarnu particiju. Prva particija će da bude naš swap particija, fdisk programu ćemo saopštiti da kreira primarnu particiju sa brojem 1. Počećemo od cilindra 0 a za krajnji cilindar otkucaćemo +64M. Na taj način swap pariticiji će biti veličine od 64 megabajta. (Veličina swap particije treba da zavisi od količine RAM memeorije koju imate. Postoji nepisano pravilo da veličina swap-a bude duplo veća od RAM memorije.) Posle toga definišemo primarnu particiju broj 2 počevši od prvog slobodnog cilindra pa do kraja drajva.

Command (m for help):n
Command action
   e   extended
   p   primary partition (1-4)
p
Partition number (1-4):2
First cylinder (124-1060, default 124):124
Last cylinder or +size or +sizeM or +sizeK (124-1060, default 1060):1060

Skoro smo gotovi. Potrebno je da promenimo tip prve particije u 82 (Linux swap). Pritisnite t dabiste promenili tip, odaberite prvu particiju, i pritisnite 82. Pre nego što zapišete promene na disk, pogledajte još jednom na vašu novu tabelu particija. Upotrebite p opciju u fdisk komandi, da se prikaže tabela particija. Ako je sve uredu, otkucajte w da se zapišu promene na disk i završi sa fdisk komandom.


3.4 Program setup

Kada ste kreirali particije, sve je spremno za instalaciju Slackware-a. Naredni korak u instalacionom procesu je pokretanje setup(8) programa. Da biste to i uradili, jednostavno otkucajte setup u promptu školjke. Komanda setup je bazirana na sistemu menija koji omogućava izbor paketa i konfigurisanje vašeg sistema.

Setup proces se odvija ovako: Prelazite kroz sve opcije setup programa, redosledom kakav je u meniju. (Naravno, slobodno možete da primenite i neki drugi redosled, ali su zato male šanse da sve bude dobro.) Stavke u meniju se izabiraju upoterebom strelica za gore i dole na tastaturi, a izbor “Okay” i “Cancel” dugmeta se vrši strelicama za levo i desno. Alternativno, svaka opcije ima odgovarajuće taster, koji odgovara osvetljenom slovu u imenu opcije. Opcije koje mogu da se biraju (obeležene sa [X]) se uključuju pomoću razmaknice.

Naravno, sve je ovo objašnjeno u “help” odeljku setup komande.


3.4.1 HELP

Ako je ovo prvi put da instalirate Slackware, možda ćete pogledati na ekran pomoći. On će vam dati opis svakog dela setup komande (nešto smo i sami napisali, ali ne sa toliko angažovanja) i instrukcije za navigaciju kroz ostatak instaliranja.


3.4.2 KEYMAP

Ako vam je potrebana nekakav drugi raspored tastature (keymap) od “qwerty” rasporeda koji se koristi u Sjedinjenim Državama, nastavite sa ovim odeljkom. U njemu ćete naći jedan broj alternativnih rasporeda.


3.4.3 ADDSWAP

Ako ste kreirali swap particiju (vratite se na Section 3.3), ovaj odeljak vam daje mogućnost da taj swap i omogućite. Swap particija će se automatski detektovati, a vi ćete je selektovati, formirati i omogućiti.


3.4.4 TARGET

Odeljak target (cilj) je mesto gde se vaše druge (ne-swap) particije formatirane i mapirane sa tačkama montiranja sistema fajlova. Lista particija na vašem hard disku će da se prikaže. Za svaku pariticiju, imaćete mogućnost da li da je formatirate ili ne. U zavisnosti koji ste kernel koristili, možete se odlučiti između reiserfs (podrazumevano), ext3, ext2, jfs, i xfs. Većina ljudi koristi ili reiserfs ili ext3. U skorijoj budućnosti možda ćemo videti podršku za reiserfs4 .

Prva opcija u ovom odeljku je izbor paricije na kojoj želite da instalirate vaš root (/) sistem fajlova. Posle toga ste u mogućnosti da mapirate ostale particije sa sistemom fajlova kojeg ste izabrali. (Na primer, možda želite da treća particija, recimo /dev/hda3, bude namenjena za vaš početni (home) direktorijum. Ovo je samo jedan primer; mapirajte particije prema vašim zahtevima.)


3.4.5 SOURCE

Odeljak source (izvor) se odnosi na izbor medija sa koga nameravate da instalirate Slackware. Trenutno ima četiri izvora sa kojih možete izvršiti instalaciju. To su: CD-ROM, hard disk particija, NFS ili već montirani direktorijum.

CD-ROM odeljak omogućava instaliranje sa CD-ROM-a. Ponudiće vam se opcija za skeniranje prisustva CD-ROM drajva ili za izbor iz liste. Budite sigurni da vam se Slackware CD nalazi u uređaju pre nego što počne skeniranje.

NFS odeljak se odnosi na instalaciju na mreži i o mrežnim informacijama vašeg NFS servera. NFS server mora da bude unapred podešen. Takođe imajte na umu da ne možete da koristite imena hostova, već morate da koristite IP adrese i za mašinu na koju trebate da instalirate sistem i za NFS server (ne postoji razrešivač /resolver/ imena na setup disku). Normalno, morate da koristite network.dsk disketu da bi postojala podrška za mrežni kontroler.

Već montirani direktorijumi nudi najviše fleskibilnosti. Taj metod možete da koristite za instalaciju sa stvari kakve su na primer: Jazz diskovi, NFS montiranja preko PLIP-a, ili FAT sistem fajlova. Pre pokretanja setup-a montirajte datotečni sistem na lokaciju koju ste izabrali, i posle koristite tu lokaciju.


3.4.6 SELECT

Opcija select omogućava izbor serije softvera koju želite da instalirate. Te serije su objašnjene u Section 3.2.1. Imajte na umu da morate da instalirate A seriju da biste imali funkcionalni bazni sistem. Sve ostale serije su opcione.


3.4.7 INSTALL

Pretpostavimo da ste prošli kroz “target”, “source”, i “select” opcije. Opcija install vam omogućava da izaberete pakete iz serija koje ste izabrali. Ako to niste uradili bićete upitani da se vratite natrag, da kompletirate ostale sekcije setup programa. Ova opcija vam omogućava izbor između šest različitih metoda za instaliranje: full, newbie, menu, expert, custom i tag path.

Izborom opcije full instaliraće se svaki paket sa svih serija softvera koje ste izabrali u “select” odeljku. Dalje ne morate ništa da odgovarate. Ovo je najlakši instalacioni metod, pošto ne morate da pravite nikakve odluke o tome šta treba da instalirate. Naravno, izborom ove opcije treba vam dosta prostora na hard disku.

Sledeća opcija je newbie. Ovom opcijom se instaliraju svi potrebni paketi iz izabranih serija. Za ostale pakete, javi će se prompt kod koga možete da izaberete “Yes”, “No” ili “Skip”. Izbor Yes ili No je očigledan, dok će izbor Skip (preskoči) odvesti na sledeću seriju softvera. Pored toga videćete opis i potreban prostor za svaki paket, što će vam pomoći u odluci da li vam je dati paket zaista potreban. Preporučujemo izbor te opcije za nove korisnike, što će osigurati da ću svi potrebni paketi biti instalirani. Ipak, ova opcija je malo sporija zbog postavljanja pitanja.

Menu opcija je brža i više naprednija od newbie opcije. Za svaku seriju se prikazuje meni, iz koga se mogu selektovati svi nepotrebni paketi koji se nameravaju instalirati. Potrebni paketi se ne prikazuju u tom meniju.

Za malo naprednije korisnike, postoji i expert opcija. Ovom opcijom imate potpunu kontrolu nad paketima koje nameravate da instalirate. Možete da deselektujete pakete koji vam apsolutno nisu potrebni, i na taj način da imate prilagođen sistem. Na drugu stranu, imate potpunu kontrolu nad onim što treba da bude na vašem sistemu. Jednostavo izaberite pakete iz svake serije koje želite da instalirate. To nije preporučljivo za nove korisnike.

Opcije custom i tag path su isto tako za napredne korisnike. Preko ovih opcija možete da vršite instalaciju koja je bazirana na ličnim tag datotekama koje ste vi kreirali u stablu distribucije. Ovo je korisno kad treba brzo da se vrši instalacija na veliki broj mašina. Za više informacija o korišćenju tag datoteka, pogledajte Section 18.4.

Posle izbora metoda instalacije, jedna od nekoliko stvari će da se dogodi. Ako ste selektovali pun meni, ekran sa menijem će da se pojavi, dozvoljavajući vam da selektujte pakete za instaliranje. Ako ste sve selektovali, paketi ću odmah početi da se instaliraju. Ako ste selektovali newbie, paketi će biti instalirani tek kada bude i jedan opcioni paket spreman.

Imajte na umu da je moguće premašiti slobodan prostor na disku dok instalirate. Ako ste selektovali previše paketa, a da za njih nema mesta, imaćete problema. Najbezbedniji način je da selektujete nešto sofvtera i da ih dodate kasnije, kada se ukaže potreba. To se lako radi kada se koristi Slackware-ov alat za menadžmet sa paketima. Za te informacije, pogledajte Chapter 18.


3.4.8 CONFIGURE

Sada pošto su paketi instalirani odeljak vezan za konfigurisanje vam omogućava osnovno konfigurisanje sistema. Ono što ćete videti dosta zavisi i od softvera koji ste instalirali. Ipak, ćete uvek videti sledeće:


3.4.8.1 Izbor kernela

Ovde ćete biti upitani da izaberete kernel koji želite da instalirate. Možete da instalirate kernel sa boot diska koji koristite, sa Slackware CR-ROM-a, ili sa druge diskete koju ste već ranije pripremili. Ili možete to da presekočite, i u tom slučaju će se instalirati podrazumevani kerenel.


3.4.8.2 Pravljenje boot diska

Pravljenje boot diska za kasniju upotrebu je verovatno dobra ideja. Imaćete opciju za formatiranje diskete, a kasnije i za kreiranje jednog ili dva tipa boot diskova. Prvi tip je opcija simple, jednostavno upisuje kernel na disketu. Više fleksibilna (i veoma preporučljiva) je lilo opcija, koja će, naravno, kreirati LILO boot disk. Pogledajte LILO u Section 7.1 za više informacija. Naravno da možete jednostavno izaberati opciju continue, u tom slučaju se neće napraviti boot disk.


3.4.8.3 Modem

Bićete upitani za informacije o modemu. Morate da odgovorite prilično deteljno na to kakav modem imate i na kome je serijskom portu.

Naredne podsekcije u konfigurisanju se možda neće pojaviti, u zavisnosti da li ste ili ne instalirali odgovarajuće pakete.


3.4.8.4 Vremenka zona

Ovo je stvarno jednostavno: bićete upitani u kojoj se vremenskoj zoni nalazite. Ako radite po Zulu vremenu, stvarno nam je žao. Veoma dugačka lista u abecednom poretku pretstavlja vrmenske zone.


3.4.8.5 Miš

U ovom pododeljku ćete jednostavno biti upitani o vrsti miša kojeg imate, i da li želite da u toku butovanja bude omogućen gpm(8), koji omogućava da miš radi i u konzoli.


3.4.8.6 Hardverski sat

Ovde ćete biti upitani da li da se sat računara podesi na Universal Time Coordinated (UTC ili GMT). Kod većine PC-a to nije slučaj, tako da ćete odgovoriti sa ne.


3.4.8.7 Font

Ovde možete da izaberete font iz odgovarajuće liste konzolnih fontova.


3.4.8.8 LILO

Ovde ste upitani za instalaciju LILO-a ( LInux LOader; za više informacija pogledajte Section 7.1 ).

Ako Slackware treba da bude jedini operativni sistem na vašem računaru, opcija simple će biti dobar izbor. Ako treba da se kroristi dualno startovanje, opcija expert je bolji izbor. Za više informnacija o dualnom startovanju pogledajte Section 7.3. Treća opcija, do not install, se ne preporučuje ukoliko znate šta radite i imate dobar razlog da ne istalirate LILO. Ako ste izabrali expert instaliranje, imaćete mogućnost da izaberete gde da stavite LILO. Možete ga smestiti u MBR (Master Boot Record) vašeg diska, u super blok root particije, ili na disketu.


3.4.8.9 Mreža

Podsekcija vezana za mrežu je u stvari netconfig komanda. Za više informacija pogledajte Section 5.1.


3.4.8.10 X Window menadžer

Ova podsekcija vam daje mogućnost izbora podrazumevanog window menadžera za X. Za detaljnije informacije o X i windows menadžerima pogledajte Chapter 6.

Nebitno koje ste pakte instalirali, zadnja stvar koju morate da konfigurišete je root lozinka. Iz bezbednosnih razloga, to bi bio dobar izbor; mada, kao i za skoro ostale stvari u Slackware-u, na vama je odluka.


Chapter 4 Konfiguracija sistema

Pre nego što budete u mogućnosti da vršite konfiguraciju složenijih delova vašeg sistema, ne bi bila loša ideja da naučite kako je sistem organizovan i koje se komande mogu koristiti za pretragu nad datotekama i programima. Isto je tako dobro znati kako se vrši kompajliranje kernela tako da on odgovara vašim potrebama. Ovo poglavlje će vas upoznati sa organizacijom sistema i njegovim konfiguracionim datotekama. Posle toga ide se dalje ka složenijim aspektima u konfiguraciji sistema.


4.1 Opšti pregled sistema

Bitno je da razumete kako Linux sistem objedinjuje svoje komponente, da biste kasnije prešli na dublje razumevanje raznih aspekata u konfigurisanju. Linux sistem se značajno razlikuje od DOS-a, Windows-a, ili Macintosh sistema (izuzetak je Unix baziran Mac OS X sistem). Pored toga ovi odeljeci će vas upoznati sa suštinom kako da lako konfigurišete sistem prema vašim potrebama.


4.1.1 Pregled sistema fajlova

Prva uočljiva razlika između Slackware Linux-a i DOS odnosno Windows sistema je sistem fajlova. Kao prvo, mi ne koristimo slova za označavanje različitih particija. Pod Linux-om, postoji samo jedan glavni direktorijum. Možete ga poistovetiti sa C: drajvom u DOS-u. Svaka particija vašeg sistema je montirana na taj glavni direktorijum. To je neka vrsta uvek proširivog hard diska.

Glavni direktorijum zvaćemo root (korenski) direktorijum, a on je obeležen kao kosa crta ili slash (/). Ovaj koncept možda izgleda čudno, ali stvarno olakšava život u onim slučajevima kada je potrebno dodati još prostora. Na primer, recimo da smo popunili drajv na kome se nalazi /home direktorijum. Većina ljudi u toku instalacije Slackware-a ostavlja veliki root drajv. Pošto se particija može montirati na bilo koji direktorijum, jednostavno možete da odete u prodavnicu, izaberete novi hard disk i montirate ga kao /home. Na ovaj način dobićete više prostora na vašem sistemu, bez potrebe da radite razna kopiranja.

Dole ćete naći opis Slackware direktorijuma najvišeg nivoa.

bin

Esencijalni korisnički programi se nalaze ovde. Oni predstavljaju minimum programa koji su potrebni korisniku da bi koristio sistem. Stvari kao školjka i komande sistema fajlova (ls, cp, itd.) se nalaze tu. Direktorijum /bin obično ostaje nepromenjen posle instalacije. Ako se i promeni to su uglavnom nadogradnje paketa.

boot

Fajlovi koji se koriste od strane Linux Loader-a (LILO). Taj direktorijum se obično malo menja posle instalacije sistema. Kernel se tu nalazi od Slackware 8.1. U ranijim izdanjima Slackware-a, kerenel se jednostavno nalazio u / direktorijumu, ali sadašnja je praksa da se kernel i njemu pripadajući fajlovi tu stavljaju radi pojednostavljivanja dualnog startovanja.

dev

Sve se u Linux-u tretira kao fajl, čak i hardverski uređaji kao što su serijski portovi, hard diskovi, i skeneri. Da bi se moglo pristupiti tim uređajima, specijalni fajl zvani čvor uređaja (device node) mora da postoji. Svi čvorovi uređaja se nalaze u /dev direktorijumu. Uverićete se da to važi za mnoge na Unix-olike operativne sisteme.

etc

Ovaj direktorijim sadrži konfiguracione fajlove. Sve od X Window konfiguracionih fajlova pa do skripti za pokretanje. Sistemski administrator se povremeno druži sa ovim direkotrijumom .

home

Linux je višekorisnički operativni sistem. Svaki korisnik na sistemu ima svoj nalog i jedinstveni direktorijum za lične fajlove. Taj direktorijum se zove korisnički ili početni (home) direktorijum. Direktorijum /home je podrazumevana lokacija za smeštanje direktorijuma korisnika.

lib

Sistemske biblioteke koje su potrebne za bazičene operacije sistema se nelaze ovde. C bublioteke, dinamički loader, ncurses biblioteka, i moduli kernela pored ostalih stvari se isto ovde nalaze.

mnt

Ovaj direktorijum sadrži privremene tačke montiranje za hard diskove ili promenjive uređaje. Tu se mogu naći tačke montiranja za vaš CD-ROM ili floppy drajv.

opt

Opcioni softrerski paketi. Ideja na kojoj se zasniva koncept /opt direktorijuma leži u tome da se svaki paket softvera instalira u /opt/software-package, i na taj način se pojednostavljuje kasnije deinstaliranje. Slackware distribuira neke stvari u /opt direktorijum (kao što je KDE u /opt/kde), ali i vi ste slobodni da sami dodate ono što želite u taj direktorijum.

proc

Ovo je jedinstveni direktorijum. On nije stvarno sastavni deo sistema fajlova, već je virtualni fajl sistem koji omogućava pristup informacijama kernela. Razne inforamacije koje kernel želi da vi znate se saopštavaju preko fajlova u /proc direktorijumu. Isto tako i sami možete da šaljete informacije kernelu preko nekog od tih fajlova. Pokušajte cat /proc/cpuinfo.

root

Administartor sistema još se zove i root sistema. root-ov početni direktorijum se nalazi na lokaciji /root umesto u /home/root. Razlog za to je jednostavan. Šta ako /home i / nisu na istim particijama i ako se /home ne može montirati? root normalno može da se loguje i da popravi problem. Ako je fajl sistem koji sadrži njegov početni direktorijum oštećen, biće otežano logovanje.

sbin

Esecijalni programi koje pokreće root i koji se izvršavaju u toku butovanja se čuvaju ovde. Obični korisnici ne pokreću programe u tom direktorijumu.

tmp

Privremena lokacija za skladištenje. Svi korisnici imaju pristup kako i za čitanje i pisanje u tom direktorijumu.

usr

Ovo je veliki direktorijum u Linux sistemu. Skoro sve ostalo se nalazi ovde, programi, dokumentacija, izvorni kod kernela i X Windows sistem. Ovo je direktorijum u koji će se najverovatnije instalirati programi.

var

Dnevnik (log) fajlovi sistema, keš podaci i fajlovi zaključavanja programa se ovde čuvaju. Ovaj direktorijum je za često menjanje podataka.

Sada treba da imate dobar osećaj da znate šta se nalazi u kom direktorijmu. Za više informacija o pregledu fajl sistema pogledajte hier(7) man starnu. Sledeći odeljak će vam pomoći u potrazi za određenim datotekama, tako da ne morate to da radite ručno.


4.1.2 Traženje datoteka

Sada znate šta svaki glavni direktorijum sadrži, ali to vam doista ne pomaže u pretrazi. Mislim, trebali biste da pretražujete direktorijume na efikasniji način. Postoje četiri glavna načina za pretraživanje fajlova u Slackware-u.


4.1.2.1 which

Prvi način je korišćenje which(1) komande. which se obično koristi za brzo lociranje programa. Ona jednostavno pretražuje vaš PATH i vraća prvu instancu i njoj odgovarajuću putanju direktorijuma. Evo primera:

%  which bash
/bin/bash

Ovde vidite da se komanda bash nalazi u /bin direktorijumu. Ovo je veoma ograničena komanda pošto pretražuje samo vaš PATH.


4.1.2.2 whereis

whereis(1) komanda radi slično kao i which komanda, ali ona pretražuje i man strane i izvorne fajlove. A whereis koja traži bash bi vratila ovo:

%  whereis bash
bash: /bin/bash /usr/bin/bash /usr/man/man1/bash.1.gz

Ova komanda ne samo da govori gde se nalazi dati program, već i pokazuje gde se nalazi odgovarajuća dokumentacija. Još uvek je ova komanda ograničena. Šta ako hoćete da pronađete određeni konfiguracioni fajl? Komande which ili whereis vam neće pomoći.


4.1.2.3 find

find(1) komanda omogućava pretragu nad fajl sistemom korišćenjem bogate kolekcije izraza za pretragu. Korisnici mogu da specifiraju pretragu datoteka u odnosu na džokere, opseg vremena modifikacije ili kreiranja ili u odnosu na neke druge napredne osobine. Na primer, da bi se pretraživala podrazumevana xinitrc datoteka na sistemu, treba zadati sledeću komandu:

%  find / -name xinitrc
/var/X11R6/lib/xinit/xinitrc

Izvršavanje komande find traje prilično, pošto se prolazi od korena stabla direktorijuma. A ako se ta komanda pokrene pod ovašćenjima običnog korisnika, pojaviće se poruke o greškama zabranjenog pristupa ka diretorijumima koje samo root korisnik može da gleda. Ipak će find komanda pronaći našu datoteku, što je sasvim u redu. Ali bi valjalo to biti malo brže...


4.1.2.4 slocate

Komanda slocate(1) pretražuje čitav datotečni sistem, baš kao što to radi find komanda, ali se ne pretražuje neposredno aktuelni datotečni sistem već odgovarajuća baza podataka. Baza podataka je podešna tako da se automatski ažurira svako jutro, tako da imate donekle svež listing datoteka na vašem sistemu. Možete ručno da pokrenete updatedb(1) da ažurirate slocate bazu podataka (pre pokretanja komande updatedb morate biti root korisnik. Evo primera slocate komande u akciji:

%  slocate xinitrc   # ne moramo biti root
/var/X11R6/lib/xinit/xinitrc
/var/X11R6/lib/xinit/xinitrc.fvwm2
/var/X11R6/lib/xinit/xinitrc.openwin
/var/X11R6/lib/xinit/xinitrc.twm

Dobićete više nego što ste tražili, i isto tako dosta brzo. Sa tim komandama, bićete u stanju da pronađete ono što ste nameravali na vašem Linux sistemu.


4.1.3 Direktorijum /etc/rc.d

Fajlovi za inicijalizaciju sistema se nalaze u /etc/rc.d direkotrijumu. Slackware koristi BSD stil za svoje inicijalne datoteke. Ova BSD šema, za razliku od System V init skripti, teža je za konfigurisanje ukoliko se ne koriste programi dizajnirani za tu namenu. Kod BSD init skripti, svakom runlevel-u odgovara jedan rc fajl. U System V šemi, svaki runlevel ima vlasititi direktorijum koji sadrži brojne init skripte. Na taj način imamo organizovanu strukturu koja se lako održava.

Postoji nekoliko kategorija fajlova za inicijalizaciju. To su fajlovi za podizanje sistema, runlevel-i, fajlovi za pokretanje mreže, i fajlovi koji obezbeđuju System V kompatibilnost. Po tradiciji, nabacaćemo sve ostalo u neku drugu kategoriju.


4.1.3.1 Podizanje sistema

Prvi program na Slackware-u koji se pokreće, ako se izuzme Linux kernel, je init(8). Ovaj program čita /etc/inittab(5) fajl da vidi kako da pokrene sistem. Pokreće skript /etc/rc.d/rc.S da pripremi sistem pre nego što ode u izabran runlevel. Datoteka rc.S omogućava virualnu memoriju, montira fajl sistem, čisti određene log direktorijume, inicira Plug and Play uređaje, učitava module kernela, konfiguriše PCMCIA uređaje, podešava serijske portove i pokreće System V init skriptove (ako ih pronađe). Očigledno, rc.S skript ima puno toga da odradi, ali ima nešto skripti u /etc/rc.d direktorijumu koje rc.S poziva da mu pomognu da obavi posao:

rc.S

Ovo je aktuelni skript za iniciranje sistema.

rc.modules

Učitava module kernela. Stvari kao što su mrežna kartica, PPP podrška i druge stvari se ovde učitavaju. Ako ovaj skript pronađe rc.netdevice, takođe će ga pokrenuti.

rc.pcmcia

Isprobava konfiguracije za sve PCMCIA uređaje koji su možda na vašem sistemu. Ovo je najkorisnije za korisnike laptop računara koji verovatno imaju PCMCIA modeme, odnosno mrežne karte.

rc.serial

Konfiguriše vaš serijski port pokretanjem odgovarajuće setserial komande.

rc.sysvinit

Traži System V init skripte namenjene odgovarajućem runlevel-u i pokreće ih. O tome je detaljnije diskutovano u narednom odeljku.


4.1.3.2 Skripte za iniciranje runlevel-a

Kada je inicijalizacija sistema završena, init prelazi na runlevel inicijalizaciju. Runlevel opisuje stanje u kojem će se vaša mašina naći. Zvuči izlišno? Dakle, runlevel govori init-u da li sistem da prihvati višekorisničko prijavljivanje ili samo jednog korisnika, da li ili ne želite mrežne servise ili ćete koristiti X Window sistem ili agetty(8) da rukuje prijavljivanjima. Dole navedene datoteke definišu različite runlevel-e na Slackware Linux-u.

rc.0

Zaustavljanje sistema (runlevel 0). Podrazumevano, to je link ka rc.6 datoteci.

rc.4

Višekorisničko pokretanje (runlevel 4), ali u X11 sa KDM, GDM, odnosno XDM kao login menadžerom.

rc.6

Restartovanje sistema (runlevel 6).

rc.K

Pokretanje u modu jednog korisnika (runlevel 1).

rc.M

Višekorisnički mod (runlevel-i 2 i 3), ali sa standardnom, tekstualno baziranom, logovanju. Ovo je podrazumevani runlevel u Slackware-u.


4.1.3.3 Inicijalizacije mreže

Runleveli 2, 3 i 4 pokreću mrežne servise. Sledeći fajlovi su odgovorni za inicijalizaciju mreže:

rc.inet1

Kreiran netconfig komandom, ovaj fajl je odgovoran za konfigurisanje aktuelnog mrežnog inerfejsa.

rc.inet2

Pokreće se posle rc.inet1 a startuje osnovne mrežne servise.

rc.atalk

Pokreće AppleTalk servis.

rc.httpd

Pokreće Apache web server. Kao i nekoliko drugih rc skriptova, ovaj skript se može koristiti za stopiranje i ponovno startovanje datog servisa. rc.httpd uzima argumenat za stopiranje, startovanje, odnosno restart.

rc.news

Pokreće news server.


4.1.3.4 System V kompatibilnost

System V init kompatibilnost je uvedena u 7.0 verziji Slackware-a. Mnoge druge Linux distribucije koriste ovaj stil umesto BSD stila. Ukratko, svakom runlevel-u je dodeljen poddirektorijum za odgovarajuće init skripte, za razliku od BSD stila gde ima po jedan skript za svaki runlevel.

rc.sysvinit skipt će da pretražuje /etc/rc.d direktorijum da bi se uverio da li postoje System V init skriptovi i ukoliko su prisutni da ih pokrene u odgovarajućem runlevelu. Ovo može biti od koristi za neke komercijalne softverske pakete koji ga koriste.


4.1.3.5 Ostali fajlovi

Skripte koje su izlistane dole su ostali skripte za inicijalizaciju. Njih uglavnom pokreću neke od onih glavnih skripti koje su malopre opisane. Sve što je potrebno da uradite je da uredite njihov sadržaj.

rc.gpm

Pokreće servis za miša, generalne namene. Dozvoljava da kopirate i prenosite mišem u Linux konzoli. Ponekad, gpm može da pravi probleme kada je pokrenut X windows. Ukoliko iskusite takve probleme sa mišom pod X okruženjem, pokušajte da stopirate gpm server.

rc.font

Učitava vaš izabrani font namenjen za konzolu.

rc.local

Sadrži sve specifične skripte vašeg sistema. Ova datoteka je prazna posle sveže instalacije i namenjena je za lokalno administriranje. Ovaj skript se pokreće na kraju, posle svih ostalih skirpti koji treba da se izvše.

Da biste omogućili skriptu, sve što je potrebno je da dodate dozvolu za izvršavanje sa chmod komandom. Da biste onemogućili skriptu, uklonite dozvolu za izvršavanje sa date datoteke. Za više informacija o chmod komandi, pogledajte Section 9.2.


4.2 Izbor kernela

Kernel je deo operativnog sistema koji omogućava pristup hardveru, koji vrši kontrolu procesa i sveobuhvatnu kontrolu sistema. U kernelu se nalazi podrška za vaš harver, tako da je izbor pravog kernela za vaš sistem važan korak.

Slackware nudi više nego tuce prekompajliranih krenela koje možete da izaberete. Svaki od njih uključuje set standardnih i specifičnih drajvera. Bilo da koristite jedan od prekompajliranih kernela ili da gradite kernel iz izvornog koda, vodite računa da li vaš krenel podržava hardver koji imate.


4.2.1 Direktorijum /kernels na Slackware CD-ROM-u

Prekompajlirani Slackware kerneli se nalaze u /kernels direkotirijumu Slackware CD-ROM-a ili na FTP sajtu u glavnom Slackware direktorijumu. Dostupni kerneli se menjaju kako izlaze nova izdanja, tako da je dokumentacija koja se nalazi u tom direktorijumu adekvatan i merodavan izvor informacija. /kernels direktorijum ima poddirektorijume za svaki postojeći kernel. Ti podirektorijumi imaju isto ime kao i njihovi propratni boot diskovi. U svakom poddirektorijumu ćete naći sledeće datoteke:

Fajl Svrha
System.map Sistemska map datoteka za taj kernel
bzImage Aktuelni kernel (image)
config Konfiguracioni fajl za taj kernel

Da biste koristili kernel, kopirajte System.map i config datoteke u vaš /boot direktorijum, a kernel image kopirajte i preimenujte kao /boot/vmlinuz fajl. Pokrenite /sbin/lilo(8) da instalirate LILO za novi kernel, i na kraju restartujte sistem. To je sve što se tiče instaliranja novog kernela.

Kerneli čije se ime završava sa .i su IDE kerneli. Oni ne sadrže SCSI podršku. Kerneli čije se ime završava sa .s su SCSI kerneli. Oni sadrže obe podrške, IDE podršku kao u .i kerneli, plus SCSI podršku.


4.2.2 Kompajliranje kernela iz izvornog koda

Pitanje “Da li treba da kompajliram krenel za moj sistem?” često postavljaju novi korisnici. Krajnji odgovor je možda. Postoji nekoliko situacija kada se pribegava kompajliranju kernela prema vlastitim potrebama. Većina korisnika koristi prekompajliran kernel sa učitljivim modulima da bi dobili potpun operativan sistem. Možda želite da kompajlirate kernel pošto vršite nadogradnju sa jedne verzije na drugu koja trenutno nije poržana od strane Slackware-a, ili želite da zakrpite izvorni kod kernela da biste omogućili da specijalna hardverska komponeneta proradi, jer nema podršku u kernelu koji je došao. Takođe, mnogi korisnici su primetili da je kernel kompajliran po vlastitim potrebama brži. I za vas će možda biti korisno da kompajlirate kernel sa optimizacijama za specifični procesor na vašoj mašini.

Izgradnja kernela i nije tako teška. Prvi korak je da vidite da li je izvorni kod kernela instaliran. Uverite se da su instalirani svi paketi iz K serije u toku instaliranja sistema. Isto tako osigurajte se da su instalirani paketi iz D serije, posebno C kompajler, GNU make, i GNU binutils. Uopšteno, dobra je ideja da ste instalirali sve pakete iz D serije ako kasnije planirate bilo kakvu vrstu razvoja programa. Isto tako možete da preuzmete poslednji izvorni kod kernela sa http://www.kernel.org/mirrors.


4.2.2.1 Kompajliranje Linux kernela verzije 2.4.x

% su -
Password:
# cd /usr/src/linux

Prvi korak je da dovedete kod kernela u osnovno stanje (base state). Unećete sledeću komandu da to odradi (možete ako želite da napravite kopiju .config fajla pošto će ga navedena komanda obrisati bez upozorenja):

# make mrproper

Sada možete da konfigurišete kernel za vaš sistem. Sadašnji kernel koristi tri načina za svoje konfigurisanje. Prvi način je baziran na tekstu sa sistemom pitanja i odgovora. Odgovara se na gomilu pitanja nakon čega se izgrađuje konfiguraciona datoteka. Problem sa ovim metodom je da ako ste nešto pogrešili morate sve ispočetka. Metod koji većina ljudi preferira se zasniva na korišćenu menija. Na kraju, postoji konfiguracinoni alat koji koristi X sistem. Izaberite onaj koji želite, zadavanjem odgovarajuće komande:

# make config           (tekstualna pitanje&odgovor verzija)
# make menuconfig       (tekstulana verzija sa menijima)
# make xconfig          (X-bazirana verzija, budite sigurni da ste u X-u prvo)

Figure 4-1. Meni za konfigurisanje kernela

Za nove korisnike izbor bi najverovatnije bio menuconfig zbog lakoće korišćenja. Ekrani pomoći objašnjavaju različite oblasti kernela. Posle konfigurisanja kernela, izađite iz programa za konfigurisanje. Na taj način ćete stvoriti konfiguracione fajlove. Sada možemo da pripremimo stablo sa izvornim kodom kernela za izgradnju:

# make dep
# make clean

Sledeći korak je kompajliranje kernela. Prvo pokušajte sa opcijom bzImage:

# make bzImage

To može da potraje, u zavisnosti od brzine procesora. Dok traje kompajliranje, videćete poruke koje šalje kompajler. Posle izgradnje slike kernela, možda ćete želeti da izgađujete svaki deo koji je markiran kao modularan.

# make modules

Sada možemo da instaliramo kernel i module koje ste kompajlirali. Da bi se to uradilo na Slackware sistemu, koriste se sledeće komande:

# mv /boot/vmlinuz /boot/vmlinuz.old
# cat arch/i386/boot/bzImage > /boot/vmlinuz
# mv /boot/System.map /boot/System.map.old
# cp System.map /boot/System.map
# make modules_install

Sada morate da editujete datoteku /etc/lilo.conf tako da u nju dodate stavku koja se odnosi na pokretanje vašeg starog kernela, što je potrebno za slučaj da nešto ne krene dobro. Posle toga, pokrenite /sbin/lilo komandu da instalirate novi boot blok. Sada možete da restartujete sistem.


4.2.2.2 Kompajliranje Linux kernela verzije 2.6.x

Kompajliranje 2.6 kernela se dosta malo razlikuje od kompajliranja 2.4 ili 2.2 kernela, ali je ipak važno da shvatite te razlike pre nego što krenete u posao. Više nije potrebno da pokrećete make dep i make clean komande. Takođe, poruke koje prate proces kompilacije kernela 2.6 serije nisu puno opširne. Na taj način je proces izgradnje lako razumljiv, mada sa pomalo oskudnim propratnim informacijama. Ako se javlja problem u izgradnji kernela, obavezno se preporučuje uključivanje ispisivanja poruka (verbosity). Jednostavno dodajte V=1 opciju kada počnete izgradnju. Na ovaj nači možete da imate opširan dnevnik (log) informacija na osnovu koga programer kernela ili vaš geek prijatelj vam može pomoći u rešavanju problema.

# make bzImage V=1

4.2.3 Upotreba kernel modula

Kernel moduli su drugo ime za upravljače uređaja koji se mogu umetnuti u već pokrenut kerenel. Oni vam omogućavaju da proširite hardversku podršku bez potrebe da vršite izbor novog kerela ili da lično vršite kompajliranje.

Modili se isto tako mogu učitavati ili izbacivati u bilo koje vreme čak i kada je sistem pokrenut. Na ovaj način administrator sistema jednostavo vrši dogradnju određenih drajvera. Novi moduli se mogu kompajlirati, stari ukloniti, i novi učitati bez potreba za restartom mašine.

Moduli su smešteni u datoteci /lib/modules/verzija kernela vašeg sistema. Oni mogu biti učitani u toku pokretanja preko rc.modules datoteke. Ova datoteka je dosta dobro komentarisana i ima primera koji se odnose na važne hardverske komponente. Da biste videli listu modula koji su trenutno aktivni koristite lsmod(1) komandu:

# lsmod
Module                  Size  Used by
parport_pc              7220   0 
parport                 7844   0  [parport_pc]

Možete videti da ovde postoji samo modul za paralelni port. Da biste uklonili modul, koristite komandu rmmod(1). Moduli se mogu učitati komandame modprobe(1) i insmod(1). Korišćenje modprobe komande je bolje pošto pokušava da učitava i module zavisnosti.

Mnogo korisnika nikada nije učitala ili uklonila ručno neki modul. Oni koriste kernelov autoloader za upravljanje modulima. Podrazumevano, Slackware dolazi sa kmod opcijom u svojim kernelima. . kmod je opcija kernela koja omogućava da kernel automatski učitava module onda kada se javlja potreba. Za više informacija o kmod opciji, i tome kako se ona konfiguriše, pogledajte /usr/src/linux/Documentation/kmod.txt fajl. Potrebno je da imate paket sa izvornim kodom kernela, odnosno da ga preuzmete sa http://kernel.org.

Više informacija se može naći u man stranama za svaku od ovih komadi, plus u rc.modules fajlu.


Chapter 5 Konfiguracija mreže

5.1 Uvod: netconfig je vaš prijatelj

Kada prvi put instalirate Slackware, instalacioni program pozove netconfig program. netconfig pokušava da izvrši sledeće funkcije za vas:

  • Pita vas ime vašeg računara i ime domena za vaš računar.

  • Daje vam kratko objašnjenje raznih vrsta šema za adresiranje, kaže kada treba da se koriste i pita vas koju šemu IP adresiranja želite da koristite za podešavanje vaše mrežne kartice:

    • Statička IP

    • DHCP

    • Loopback



  • Onda vam nudi da pronađe mrežne kartice koje će podesiti.

netconfig će uopšteno odraditi 80% posla podešavanja i konfigurisanja vaše LAN mrežne konekcije ako mu dopustite. Obratite pažnju da vam ja jako savetujem da pregledate konfiguracioni fajl iz nekoliko razloga:

  1. Nikada ne biste trebali da verujete programu za podešavanje koji konfiguriše vaš računar. Ako koristite program za podešavanje, trebali biste lično pregledati konfiguraciju.

  2. Ako i dalje učite upravljanje Slackware i Linux sistemom, čitanje ispravne konfiguracije može biti od pomoći. Makar ćete znati kako konfiguracija treba da izgleda. Ovo će vam dozvoliti da ispravite probleme usled pogrešne konfiguracije sistema kasnije u budućnosti.


5.2 Podešavanje mrežnog hardvera

Pošto ste odlučili da želite dovesti svoju Slackware mašinu na neku vrstu mreže, prva stvar koja vam je potrebna jeste Linux kompatabilna mrežna kartica. Moraćete malo da obratite pažnju kako biste bili sigurni da je kartica zaista Linux kompatabilna (molim vas pogledajte Projekat Dokumentacije Linux-a i/ili dokumentaciju kernela radi informacije o trenutnom statusu vaše predložene mrežne kartice). Kao opšto pravilo, verovatno ćete biti prijatno iznenađeni brojem mrežnih kartica koje su podržane pod nešto modernijim kernelima. Pošto smo to naglasili, ipak ću predložiti da se obratite nekoj od mnogih listi hardvera kompatibilnog sa Linux-om (kao što su Linkovi hardverske kompatibilnosti grupe GNU/Linux početnika i Hardverski HOWTO Projekta Dokumentacije Linux-a) koje su dostupne na Internetu pre nego što kupite karticu. Malo vremena provedenog u istraživanju vam može sačuvati dane ili čak nedelje za pokušaje podešavanje kartice koja čak uopšte nije kompatibilna sa Linux-om.

Kada posetite liste Linux hardverske kompatibilnosti koje su dostupne na Internetu ili pogledate dokumentaciju za kernel instaliranu na vašoj mašini, biće mudro da zabeležite koji kernel modul treba da koristite radi podrške vašoj mrežnoj kartici.


5.2.1 Učitavanje mrežnih modula

Kernel moduli koji treba da budu startovani pri startovanju sistema se učitavaju iz fajla rc.modules u /etc/rc.d il pomoću kernelovog automatskog učitavanja modula koje se startuje preko /etc/rc.d/rc.hotplug. Podrazumevani fajl rc.modules uključuje odeljak uređaja za mrežu. Ako otvorite rc.modules i pogledate u tu sekciju, primetićete da ona prvo proverava izvršni fajl rc.netdevice u /etc/rc.d/. Ovu skripta biva napravljena ukoliko setup uspešno pronađe vaše mrežne uređaje tokom instalacije.

Ispod tog “if” bloka se nalazi lista mrežnih uređaja i modprobe linija,sve zakomentarisane. Pronađite vaš uređaj i skinite oznaku za komentar sa odgovarajuće modprobe linije, pa onda snimite fajl. Izvršavanje rc.modules kao root bi sada trebalo da učita drajver za vaš mrežni uređaj (kao i bilo koji drugi modul koji je izlistan, a nije zakomentarisan). Primetite da neki moduli (kao što je ne2000 drajver) zahtevaju parametre; budite sigurni da ste izabrali ispravnu liniju.


5.2.2 LAN (10/100/1000Base-T i Base-2) kartice

Ovaj naslov podrazumeva sve interne PCI i ISA mrežne kartice. Drajveri za ove kartice se pružaju preko kernelovih modula koji mogu da se učitavaju, kao što je objašnjeno u prethodnom pasusu./sbin/netconfig bi trebao da pronađe vašu karticu i uspešno podesi vaš rc.netdevice fajl. Ako se ovo ne desi, najverovatnije modul koji pokušavate da učitate za datu karticu nije odgovarajući (nije nečuveno da različite generacije istog modela kartice od nekih proizvođača zahtevaju različite module). Ukoliko ste sigurni da je modul kojeg pokušavate da učitate onaj pravi, sledeće što treba da razmotrite je dokumentacija za taj modul, kako biste otkrili da se možda ne zahtevaju posebni parametri tokom učitavanja modula.


5.2.3 Modemi

Kao i LAN kartice, modemi mogu doći sa raznim opcijama povezivanja sa računarom. Sve do nedavno, većina modema su bili 8 ili 16-o bitne ISA kartice. Uz trud Intela i skoro svih proizvođača matičnih ploča ISA bas je u potpunosti izbačen, pa je sada normalno da su većina modema ili spoljni (eksterni) koji se povezuju na serijski ili USB port, ili da su interni PCI modemi. Ukoliko želite da vaš modem radi sa Linux-om, VEOMA je važno istražiti kakav je modem kojeg želite da nabavite, posebno ako razmatrate da uzmete PCI modem. Mnogi, ako ne i svi, PCI modemi dostupni na rafovima prodavnica su WinModemi. WinModemu nedostaje nešto osnovnog hardvera na samoj pločici modema: fukncije koje obavlja ovaj hardver se prebacuju na glavni procesor pomoću drajvera za modem i Windows operativnog sistema. Ovo znači da oni nemaju standardni serijski interfejs kojeg PPPD očekuje da vidi kada pokušava da pozove vašeg Internet provajdera.

Ako želite da bude apsolutno sigurni da će modem kojeg ćete kupiti raditi u Linux-u, uzmite spoljni hardverski modem koji se povezuje na serijski port vašeg PC-ja. Ovi garantovano rade bolje i biće manji problem za instaliranje i održavanje, iako im je potrebno spoljno napajanje i često su skuplji.

Postoji nekoliko Internet sajtova koji pružaju drajvere i podršku za podešavanje WinModema. Neki korisnici su prijavili kako su uspešno konfigurisali i instalirali drajvere za razne WinModeme, uključujući tu Lucent, Conexant i Rockwell čipsete. Pošto potreban softver za ove uređaje nije uključen kao deo Slackware-a, i razlikuje se od drajvera do drajvera, nećemo detaljno pričati o njima.


5.2.4 PCMCIA

Kao deo vaše Slackware instalacije ponuđena vam je prilika da instalirate pcmcia paket (u “A” seriji paketa). Ovaj paket u sebi sadrži aplikacije i fajlove koji su podrebni za rad sa PCMCIA karticama pod Slackware-om. Važno je zapamtiti da pcmcia paket instalira samo opšti softver koji je potreban za rad sa PCMCIA karticama pod Slackware-om. On NE instalira nijedan drajver ili modul. Dostupni drajveri i moduli će biti u /lib/modules/`uname -r`/pcmcia direktorijumu. Možda ćete morati malo da eksperimentišete kako biste otkrili koji će modul raditi sa vašom mrežnom kartom.

Moraćete urediti /etc/pcmcia/network.opts (za Ethernet kartice) ili /etc/pcmcia/wireless.opts (ukoliko imate bežičnu mrežnu karticu). Kao i većina Slackware konfiguracionih fajlova, i ova dva imaju dobre komentare i trebalo bi da je lako odrediti koje promene treba da se naprave.


5.3 TCP/IP podešavanje

Do ovog trenutka, vaša mrežna kartica bi trebala biti fizički instalirana u vaš računar i svi potrebni kernelovi moduli bi trebalo da su učitani. Još uvek nećete moći da komunicirate preko vaše mrežne kartice, ali sve informacije o mrežnom uređaju se mogu dobiti pomoću ifconfig -a.

# ifconfig -a
eth0 Link encap:Ethernet HWaddr 00:A0:CC:3C:60:A4
UP BROADCAST NOTRAILERS RUNNING MULTICAST MTU:1500 Metric:1
RX packets:110081 errors:1 dropped:0 overruns:0 frame:0
TX packets:84931 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:100
RX bytes:114824506 (109.5 Mb) TX bytes:9337924 (8.9 Mb)
Interrupt:5 Base address:0x8400

lo Link encap:Local Loopback
inet addr:127.0.0.1 Mask:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:2234 errors:0 dropped:0 overruns:0 frame:0
TX packets:2234 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:168758 (164.8 Kb) TX bytes:168758 (164.8 Kb)

Ako biste samo ukucali /sbin/ifconfig bez sufiksa -a, ne biste videli interfejs eth0, pošto vaša mrežna kartica još uvek nema validnu IP adresu ili rutu.

Iako postoji mnogo različitih načina da se podesi mreža, svi oni se mogu podeliti na dva tipa: statički i dinamički. Statičke mreže se podešavaju tako da svaki nod (geek izraz za stvar sa IP adresom) uvek ima istu IP adresu. Dinamičke mreže se podešavaju tako da se IP adrese nodova kontrolišu od strane jednog servera koji se zove DHCP server.


5.3.1 DHCP

DHCP (akronim od Dynamic Host Configuration Protocol), je način na koji IP adresa može biti određena računaru prilikom startovanja. Kada se pokrene DHCP klijent, on onda šalje zahtev na lokalnu mrežu koji je namenjen DHCP serveru da mu dodeli IP adresu. DHCP server ima skup (ili opseg) IP adresa koje su dostupne. Server će odgovoriti na ovaj zahtev sa IP adresom iz skupa, zajedno sa vremenom izdavanja (lease time). Jednom kada vreme izdavanja za datu IP adresu istekne, klijent mora opet da kontaktira server i da ponovi pregovor.

Klijent će prihvatiti IP adresu od servera i podesiće zahtevani interfejs sa tom IP adresom. Međutim, postoji jedan zgodan trik kojeg DHCP klijenti koriste prilikom pregovora za IP adresu koja će im biti dodeljena. Klijent će zapamtiti poslednju dodeljenu IP adresu, i tražiće da mu server opet dodeli poslednju dodeljivanu IP adresu opet prilikom pregovora. Ako je moguće, server će to uraditi, ali ako nije, dodeljuje se nova adresa. Pa tako, pregovor liči na sledeći razgovor:

Klijent: Ima li DHCP server dostupan na mreži?
    Server: Da, ima. Ovde sam.
    Klijent: Meni treba IP adresa.
    Server: Možeš uzeti 192.168.10.10 na 19200 sekundi.
    Klijent: Hvala.

Klijent: Ima li DHCP server dostupan na mreži?
    Server: Da, ima. Ovde sam.
    Klijent: Meni treba IP adresa. Poslednji put kad smo
    razgovarali, dobio sam 192.168.10.10;
    Mogu li je dobiti opet?
    Server: Da, možeš (ili Ne, ne možeš: uzmi 192.168.10.12 umesto te).
    Klijent: Hvala.

DHCP klijent u Linux-u je /sbin/dhcpcd. Ukoliko otvorite /etc/rc.d/rc.inet1 u vašem omiljenom editoru teksta primetićete da se /sbin/dhcpcd poziva oko sredine skripte. Ovo će imati za rezultat razgovor koji je prikazan gore. dhcpcd će takođe pratiti količinu vremena koja je prošla od izdavanja trenutne IP adrese i automatski će kontaktirati DHCP server sa zahtevom da se izdavanje obnovi kada je neophodno. DHCP takođe može kontrolisati dodatne informacije kao što je ntp server koji treba da se koristi, koja ruta da se uzima, itd.

Podešavanje DHCP-a na Slackware-u je jednostavno. Samo pokrenite netconfig i izaberite DHCP kada vam bude ponuđen. Ako imate više od jednog NIC-a i ne želite da eth0 bude konfigurisan kao DHCP, samo otvorite fajl /etc/rc.d/rc.inet1.conf i promenite potrebnu varijabli za vaš NIC u to “YES”.


5.3.2 Statička IP

Statičke IP adrese su fiksne adrese koje se menjaju samo ukoliko im to ručno naredi. One se koriste u slučajevima kada administrator ne želi da menja IP informaciju, a takvi slučajevi su interni serveri na LAN mreži, bilo koji server koji je povezan na Internet, i mrežni ruteri. Sa statičkim IP adresiranjem vi dodeljujete adresu i ostavljate je takvom. Druge mašine znaju da ste uvek na toj određenoj IP adresi i mogu vas kontaktirati uvek preko te adrese.


5.3.3 /etc/rc.d/rc.inet1.conf

Ako planirate da dodeljujete IP adresu vašoj novoj Slackware mašini, možete to uraditi ili preko netconfig skripte, ili možete upisati u fajl /etc/rc.d/rc.inet1.conf. U /etc/rc.d/rc.inet1.conf , primetićete:

    # Primary network interface card (eth0)
    IPADDR[0]=""
    NETMASK[0]=""
    USE_DHCP[0]=""
    DHCP_HOSTNAME[0]=""

Pa onda dalje na dnu:

    GATEWAY=""

U ovom slučaju, naš zadatak je samo da stavimo ispravne informacije između navodnika. Ove promenjive se pozivaju u /etc/rc.d/rc.inet1 prilikom startovanja kako bi se podesili mrežni interfejsi. Za svaki NIC jednostavno unesite ispravnu IP inforimaciju, ili stavite “YES” za USE_DHCP. Slackware će podešavati interfejse sa infomacijama dostupnim ovde redom kojim su napisane.

DEFAULT_GW promenjiva postavlja podrazumevanu rutu za Slackware. Sva komunikacija izmeđ vašeg i drugih računara na Internetu mora proći kroz taj gateway ukoliko za njih nije specifirana druga ruta. Ako koristite DHCP, najčešće nećete morati ništa da unosite ovde, pošto će DHCP server naznačiti koji gateway treba da se koristi.


5.3.4 /etc/resolv.conf

U redu, znači vi imate IP adresu, imate podrazumevani gateway, možda čak imate i deset miliona dolara (dajte nešto nama) ali čemu sve to ako ne možete prevoditi imena u IP adrese? Niko ne želi da kuca 72.9.234.112 u svoj Internet brauzer kako bi došao do www.slackbook.org. Posle svega, ko bi drugi osim autora zapamtio tu IP adresu? Treba nam da podesimo DNS, ali kako? Tada u igru ulazi /etc/resolv.conf.

Dobre su šanse da već imate dobre opcije u /etc/resolv.conf. Ukoliko podešavate mrežnu konekciju pomoću DHCP-a, DHCP server će podesiti ovaj fajl umesto vas. (Tehnički, DHCP server samo kaže dhcpcd-u šta tu da stavi, a ovaj ga posluša). Ukoliko trebate ručno da podesite listu DNS servera, moraćete urediti fajl /etc/resolv.conf. Ispod je primer:

# cat /etc/resolv.conf
nameserver 192.168.1.254
search lizella.net

Prva linija je jednostavna. Direktiva nameserver govori kojim DNS serverima da se šalju upiti. Zbog potrebe ovo su uvek IP adrese. Tu možete da stavite koliko hoćete server. Slackware će srećno pitati jednog za drugim sve dok jedan ne vrati odgovor.

Druga linija je malo interesantnija. Direktiva search nam daje listu imena domena koji se podrazumevaju svaki put kada se napravi DNS upit. Ovo vam dozvoljava da kontaktirate mašinu samo po prvom delu njenog FQDN (poptuno kvalifikovanog imena domena). Na primer, ukoliko bi “slackware.com” bio u vašoj search stazi, mogli biste doći do http://store.slackware.com tako što biste naredili vašem brauzeru da ide na http://store.

# ping -c 1 store
PING store.slackware.com (69.50.233.153): 56 data bytes
64 bytes from 69.50.233.153 : icmp_seq=0 ttl=64 time=0.251 ms
1 packets transmitted, 1 packets received, 0% packet loss
round-trip min/avg/max = 0.251/0.251/0.251 ms

5.3.5 /etc/hosts

Sada kada imamo DNS koji radi fino, šta ako hoćemo da zaobiđemo naš DNS server, ili da dodamo DNS unos za mašinu koja nije u DNS-u? Slackware koristi često voljeni fajl /etc/hosts u kojem se nalazi lokalna lista DNS imena i IP adresa kojima oni odgovaraju.

# cat /etc/hosts
127.0.0.1           localhost  locahost.localdomain
192.168.1.101       redtail
172.14.66.32        foobar.slackware.com

Ovde možete videti da localhost ima IP adresu 127.0.0.1 (uvek rezervisana za localhost), redtail može biti kontaktiran na 192.168.1.101, i foobar.slackware.com je 172.14.66.32.


5.4 PPP

Mnogi ljudi se i dalje konektuju na Internet preko neke vrste dialup konekcije. Najčešći metod je PPP, iako se povremeno koristi i SLIP. Podešavanje vašeg sistema da priča na PPP-u sa udaljenim serverom je prilično jednostavno. Mi smo uključili nekoliko alata koji će vam pomoći u podešavanju.


5.4.1 pppsetup

U Slackware-u se nalazi program sa imenom pppsetup koji podešava vaš računar da koristi vaš dialup nalog. Izgled mu je sličan našem netconfig programu. Da biste pokrenuli program, budite sigurni da ste ulogovani kao root. Onda ukucajte pppsetup kako biste ga pokrenuli.

Program će vam postaviti seriju pitanja za koje ćete mu vi dati potrebne odgovore. Stvari kao što su vaš modem uređaj, inicijalizaciona komanda za modem, broj telefona Internet provajdera. Neke stavke će imati podrazumevane vrednosti koje možete prihvatiti u većini slučajeva.

Kada se program izvrši, on će napraviti ppp-go program i ppp-off program. Ovi se koriste da pokrenu i zaustave, respektivno, PPP konekciju. Ova dva programa se nalaze u /usr/sbin i potrebne su im root privilegije kako bi se pokrenuli.


5.4.2 /etc/ppp

Za većinu korisnika, pokretanje pppsetup će biti dovoljno. Međutim, mogu se desiti slučajevi da želite promeniti neke vrednosti koje koristi PPP demon. Sve informacije za podešavanje se nalaze u /etc/ppp. Ovo je lista čemu služe ti fajlovi:

ip-down

Ova skripta se izvrši od strane pppd-a posle prekidanja PPP konekcije.

ip-up

Ova skripta se izvrši od strane pppd-a kada se uspešno uspostavi PPP konekcija. U ovaj fajl stavite sve komande koje želite da izvršite posle uspešnog konektovanja.

options

Opšte opcije konfiguracije za pppd.

options.demand

Opšte opcije konfiguracije za pppd kad se pokrene u demand dialing modu.

pppscript

Komande koje se šalju modemu.

pppsetup.txt

Zabeleška šta ste sve uneli kada ste pokrenuli pppsetup.

Note

Većina ovih fajlove neće biti ovde sve dok ne pokrenete pppsetup.


5.5 Bežično

Bežično umrežavanje je i dalje relativno nova stvar u svetu računara, mada brzo napreduje kako mnogi ljudi kupuju laptop računare i žete mrežu u pokretu, bez potrebe da se muče sa nekim starim kablovima. Ovaj trend se ne usporava. Nažalost, bežično umrežavanje još uvek nije jako podržano u Linux-u kao što je tradicionalno umrežavanje žicama.

Postoje tri osnovna koraka da se podesi 802.11 bežična mrežna kartica:

  1. Hardverska podrška za bežičnu karticu

  2. Podešavanje da se kartica konektuje na bežični access point

  3. Podešavanje mreže


5.5.1 Hardverska podrška

Hardverska podršla za bežičnu karticu se pruža preko kernela, bilo u vidu modula ili kao ugrađena u kernel. Uopšteno, većina novijih mrežnih kartica je podržano preko kernel modula, pa ćete hteti da pronađete odgovarajući kernel modul i da ga učitate iz /etc/rc.d/rc.modules. netconfig možda neće detektovati vašu bežičnu karticu, pa ćete verovatno morati da samo znate koja je. Pogledajte http://www.hpl.hp.com/personal/Jean_Tourrilhes/Linux/ za više informacija o kernel modulima za razne bežične kartice.


5.5.2 Podešavanje bežičnih postavki

Većina ovog posla se radi preko iwconfig, pa kao i uvek pročitajte man stranicu za iwconfig ukoliko vam je potrebno još informacija.

Prvo, želećete da podesite vaš bežični access point. Oni se prilično razlikuju u svojoj terminologiji, i načinu podešavanja, tako da ćete možda morati malo da prilagodite svom hardveru. Uopšteno, biće vam potrebne makar sledeće infomacije:

  • Domen ID, ili ime mreže (tzv. ESSID od strane iwconfig)

  • Kanal koji WAP koristi

  • Postavke enkripcije, uključujući sve ključeve koji se koriste (ako može heksadecimalne)

Warning

UPOZORENJE ZA WEP. WEP je prilično nesiguran, ali je mnogo bolji od ničega. Ukoliko želite veću meru sigurnosti vaše bežične mreže, trebali biste istražiti VPN-ove ili IPSec, oboje su izvan opsega ovog dokumenta. Takođe ćete možda želeti da podesite vaš WAP da ne reklamira svoj domen ID / ESSID. Detaljna diskusija o bežičnim pravilima je izvan opsega ove sekcije, ali brza pretraga na Google-u će vam dati više nego što biste želeli da znate.

Jednom kada ste skupili potrebne informacije, i pretpostavljajući da ste koristili modprobe kako biste učitali odgovarajući kernel drajver, možete urediti rc.wireless.conf i dodati vaše postavke. Fajl rc.wireless.conf je malo nesređen. Najlakše je da modifikujete generičku sekciju sa vašim ESSDID, KEY i CHANNEL koje zahteva vaša kartica. (Pokušajte da ne stavite CHANNEL, i ako radi, odlično; ako ne, postavite odgovarajući CHANNEL.) Ukoliko ste hrabri, možete modifikovati fajl tako da su postavljene samo potrebne promenjive. Imena promenjivih u rc.wireless.conf odgovaraju parametrima za iwconfig i čita ih rc.wireless pa ih koristi za odgovarajuće iwconfig komande.

Ako imate heksadecimalni ključ, to je idealno, pošto onda možete biti prilično sigurni da će se vaš WAP i iwconfig složiti oko ključa. Ako imate samo string, ne možete biti sigurni kako će vaš WAP da to prevede u heksadecimalni ključ, pa može biti potrebno nešto nagađanja (ili dobavite ključ vašeg WAP-a u heksadecimalnom formatu).

Kada ste modifikovali rc.wireless.conf, pokrenite rc.wireless kao root, pa onda pokrenite rc.inet1, opet kao root. Možete testirati vašu bežičnu mrežu sa standardnim alatima za testiranje kao što je ping, zajedno sa iwconfig. Ukoliko imate žičani mrežni interfejs možete iskoristiti komandu ifconfig da ga isključite dok testirate vašu bežičnu mrežu kako biste bili sigurni da nema mešanja. Takođe, možete testirati vaše postavke prilikom restartovanja.

Sada kada ste videli kako da uredite /etc/rc.d/rc.wireless za podrazumevanu mrežu, bliže ćemo pogledati iwconfig i način na koji on radi. Ovo će vas naučiti brzi i pokvareni put da se podesi wifi za slučajeve kada se nađete u Internet kafeu, kafiću ili na nekom drugom mestu sa bežičnom mrežom, a želite da se konektujete.

Prvi korak je da kažete vašem bežičnom NIC-u kojoj mreži ćete se priključiti. Budite sigurni da ste zamenili “eth0” sa imenom mrežnog interfejsa koje koristi vaša kartica i “mynetwork” sa essid koji želite da koristite. Da, mi znamo da ste toliko pametni. Sledeće ćete trebati da naznačiti enkripcioni ključ (ako treba) koji se koristi na bežičnoj mreži. Na kraju, naznačite koji kanal da se koristi (ako treba).

# iwconfig eth0 essid "mynetwork"
# iwconfig eth0 key XXXXXXXXXXXXXXXXXXXXXXXXXXX
# iwconfig eth0 channel n

To bi trebalo da je sve što se tiče bežičnog dela.


5.5.3 Podešavanje mreže

Ovo se radi na potpuno isti način kao i kod žičanih mreža. Jednostavno se pozovote na prethodne sekcije ove glave.


5.6 Mrežni sistemi fajlova

Do sada biste trebali da imati funkcionalnu TCP/IP konekciju do vaše mreže. Trebali biste da ste u stanju da pingujete druge računare na vašoj internoj mreži i, ako ste podesili odgovarajući gateway, takođe da pingujete računare na samom Internetu. Kao što znamo, cela poenta dovođenja računara na Internet je pristup informacijama. Dok neki ljudi možda umrežavaju računar iz čistog zadovoljstva, većina ljudi želi da može deliti fajlove i štampače. Oni žele da mogu pristupiti dokumentima na Internetu ili da igraju mrežne igrice. Imanje instaliranog i funkcionalnog TCP/IP na vašem novom Slackware sistemu je korak do tog cilja, ali samo sa instaliranim TCP/IP, funkcionalnost će biti samo osnovna. Da bismo delili fajlove, moraćemo da ih prenosimo tamo i nazad koristeći ili FTP ili SCP. Ne možemo gledati fajlove na našem novom Slackware računaru iz Network Neighborhood ili My Network Places foldera na Windows računarima. Želeli bismo da jednostavno pristupamo fajlovima na drugim Unix mašinama.

Idealno, želeli bismo da možemo koristiti mrežni sistem fajlova radi transparentnog pristupa našim fajlovima na drugim računarima. Programi koje koristimo za interakciju sa informacijama koje se nalaze na našim računarima stvarno nemaju potrebu da znaju na kojem računaru je snimljen dati fajl; oni samo moraju da znaju da postoji i kako da dođu do njega. Onda je obaveza operativnog sistema da obezbedi pristup tom fajlu kroz dostupne sisteme fajlova i mrežne sisteme fajlova. Dva najčešće korišćena mrežna sistema fajlova su SMB (implementiran u Sambi) i NFS.


5.6.1 SMB/Samba/CIFS

SMB (akronim od Server Message Block) je naslednik starijeg NetBIOS protokola koji se na početku koristio u IBM-u na njihovim LAN Menađer proizvodima. Microsoft je uvek bio prilično zainteresovan za NetBIOS i njegove naslednike (NetBEUI, SMB i CIFS). Samba projekat postoji od 1991. godine, kada je napisan da se poveže IBM PC koji je koristio NetBIOS sa Unix serverom. Ovih dana, SMB je preferirani metod za deljenje fajlova i štamparskih servisa preko mreže za doslovno ceo civilizovani svet zato što ga Windows podržava.

Sambin konfiguracioni fajl je /etc/samba/smb.conf; jedan od najbolje komentarisanih i dokumentovanih konfiguracionih fajlova koji ćete ikad sresti. Primeri deljenja su podešeni da vidite i modifikujete prema vašim potrebama. Ukoliko vam je potrebna veća kontrola onda je man stranica na smb.conf nezaobilazna. Pošto je Samba tako dobro dokumentovana, mi nećemo prepisivati ovde dokumentaciju. Ipak ćemo, međutim, brzo pokriti osnove.

smb.conf je podeljen na više sekcija: jedna sekcija po deljenoj stvari, i globalna sekcija za postavljanje opcija koje će biti svuda primenjivane. Neke opcije su validne samo u globalnoj sekciji; neke su validne samo izvan globalne sekcija. Zapamtite da globalna sekcija može biti ignorisana bilo kojom drugom sekcijom. Obratite se man stranicama za više informacija.

Najverovatnije ćete morati urediti vaš smb.conf fajl da bi odgovarao vašim mrežnim postavkama. Savetujem da prepravite stavke navedene ispod:

[global]
# workgroup = NT-Domain-Name or Workgroup-Name, eg: LINUX2
workgroup = MYGROUP

Promenite ime radne grupe (workgoup) da bi bilo isto kao ime radne grupe ili ime domena kojeg koristite lokalno.

# server string is the equivalent of the NT Description field
server string = Samba Server

Ovo će biti ime vašeg Slackware računara prikazano u folderu Network Neighborhood (ili My Network Places).

# Security mode. Most people will want user level security. See
# security_level.txt for details. NOTE: To get the behaviour of
# Samba-1.9.18, you'll need to use "security = share".
security = user

Skoro sigurno ćete hteti da primenite sigurnost na nivou korisnika na vašem Slackware sistemu.

# You may wish to use password encryption. Please read
# ENCRYPTION.txt, Win95.txt and WinNT.txt in the Samba
# documentation.
# Do not enable this option unless you have read those documents
encrypt passwords = yes

Ako enkriptovanje lozinki nije uključeno, nećete moći da koristite Sambu sa sistemima NT 4.0, Win2k, WinXP i Win2003. Prethodne verzije Windows operativnog sistema nisu zahtevale enkripciju za deljenje fajlova.

SMB je autentifikacioni protokol, što znači da morate dati ispravno korisničko ime i lozinku kako biste koristili ovaj servis. Samba serveru govorimo koja su korisnička imena i lozinke ispravni pomoću smbpasswd komande. smbpasswd uzima nekoliko čestih opcija kojim mu govorite da li da doda tradicionalne korisnike ili da doda korisnike mašine (SMB zahteva da dodate računarska NetBIOS imena kao korinike mašine, ograničavajući na kojim se računarima neko može autentifikovati).

Dodavanje korisnika u /etc/samba/private/smbpasswd fajl.
# smbpasswd -a user
Dodavanje imena mašine u /etc/samba/private/smbpasswd fajl.
# smbpasswd -a -m machine

Važno je zapamtiti da dato korisničko ime ili mašina već moraju postojati u /etc/passwd fajlu. Ovo možete postići jednostavno sa adduser komandom. Primetite da kada koristite adduser komandu da dodate ime mašine, morate imenu dodati znak za dolar (“$”). Međutim, ovo se ne treba raditi sa smbpasswd. smbpasswd sam doda znak za dolar. Pogrešno unošenje imena mašine na ovaj način sa adduser komandom će razultovati sa greškama kada pokušate da dodate ime mašine u Sambu.

# adduser machine$

5.6.2 Mrežni sistem fajlova (NFS)

NFS (akronim od Network File System) je originalno napisan u Sun-u za njihov Solaris, implementaciju Unix-a. Dok je značajno jednostavniji za podešavanje u poređenju sa SMB-om, takođe je značajno nesigurniji. Primarna nesigurnost u NFS-u je što je lako otkriti identifikacije korisnika i grupa od jedne mašine ka drugoj. NFS je neautentifikacioni protokol. Buduće verzije NFS protokola se upravo pripremaju sa fokusom na sigurnost, ali to nije slučaj u trenutku pisanja.

Konfiguracijom NFS-a se vlada iz /etc/exports fajla. Kada učitate podrazumevani /etc/exports fajl u editor, videćete prazan fajl sa dve linije komentara na vrhu. Moraćemo dodati po liniju u ovaj fajl za svaki direktorijum kojeg želimo da izvozimo, sa listingom klijentskih radnih stanica kojima će biti dozvoljeno da mu pristupe. Na primer, ukoliko želimo da izvezemo direktorijum /home/foo za radnu stanicu Bar, jednostavno ćemo dodati liniju:

/home/foo Bar(rw)

u naš /etc/exports. Ispod ćete naći primer iz man stranice za exports fajl:

# primer /etc/exports fajla
/               master(rw) trusty(rw,no_root_squash)
/projects       proj*.local.domain(rw)
/usr            *.local.domain(ro) @trusted(rw)
/home/joe       pc001(rw,all_squash,anonuid=150,anongid=100)
/pub            (ro,insecure,all_squash)

Kao što vidite, postoje dostupne razne opcije, ali većina bi trebala biti prilično jasna iz ovog primera.

NFS radi pod pretpostavkom da dati korisnik na jednoj mašini u mreži ima isti ID korisnika (UID) na svim mašinama preko mreže. Kada se napravi pokušaj čitanja ili pisanja sa NFS klijenta na NFS server, UID se šalje kao deo zahteva za čitanje/pisanje. UID se koristi na isti način kao da je čitanje/pisanje došlo sa same lokalne mašine. Kao što vidite, ako bi neko mogao da specifikuje dati UID kada pristupa resursima na udaljenom sistemu, Loše Stvari (tm) bi mogle i sigurno će se desiti. Kao parcijalni štit od ovoga, svaki direktorijum se montira sa root_squash opcijom. Ovo mapira UID svih korisnika koji tvrde da su root na drugačiji UID, time sprečavajući root pristup fajlovima i direktorijumima u izvezenom direktorijumu. Izgleda da je opcija root_squash uključena podrazumevano kao sigurnosna mera, ali autori savetuju da je navedete u vašem /etc/exports fajlu.

Takođe možete izvesti direktorijum direktno sa komandne linije na serveru koristeći exportfs komandu na sledeći način:

# exportfs -o rw,no_root_squash Bar:/home/foo

Ova linija izvozi direkotorijum /home/foo na računar “Bar” i daje računaru Bar dozvole za čitanje i pisanje. Dodatno, NFS server neće pozvati root_squash, što znači da svaki korisnik na Bar računaru sa UID “0” (rootov UID) će imati iste privilegije kao root na serveru. Sintaksa doista izgleda čudno (posebno kada je direktorijum specificiran računar:/direktorijum/fajl sintaksom, pozivate se na fajl u direktorijumu na datom računaru).

Naći ćete više informacija u man stranici za exports fajl.


Chapter 6 Konfiguracija X sistema

U Slackware-10.0, X Window okruženje pruža Xorg. X obezbeđuje grafički korisnički interfejs. Za razliku od Windows-a i MacOS-a, nezavisan je od operativnog sistema.

X Window Sistem je implementiran kroz mnoge programe koji se pokreću u korisničkom okruženju. Dve glavne komponente su server i window menadžer. Server obezbedjuje funkcije niskog nivoa za interakciju sa vašom grafičkom karticom, pa je zbog toga specifičan na svakom sistemu. Window menager je postavljen preko servera i obezbedjuje korisnički interfejs. Prednost ovoga je što možete imati mnoge grafičke interfejse jednostavnim menjanjem window menadžera koji koristite.

Konfiguracija X-a može biti kompleksan zadatak. Razlog je velik broj video kartica na PC arhitekturi, a mnoge od njih koriste različite programerske interfejse. Srećom, većina kartica koje su danas podržane podržavaju VESA standard, i ako je vaša kartica jedna od takvih, moći ćete da startujete X koristeći startx komandu bez teškoća.

Ako ovo ne radi sa vašom karticom, ili biste voleli da iskoristite sve pogodnosti koje vaša kartica pruža, kao na primer 3-D ubrzanje, moraćete da podesite X.

Da biste konfigurisali X, moraćete da napravite /etc/X11/xorg.conf. Ovaj fajl sadrži mnogo detalja o vašem video hardveru, mišu i monitoru. To je veoma kompleksan konfiguracioni fajl, ali, srećom, postoji par programa da vam pomognu u kreiranju ovog fajla. Pa da pomenemo neke od njih.


6.1 xorgconfig

Ovo je jednostavan program sa menijima, po izgledu sličan instalacionom programu Slackware-a. On naređuje X serveru da pogleda vašu karticu i sastavi najbolji mogući inicijalni konfiguracioni fajl na osnovu sakupljenih informacija. Napravljeni /etc/X11/xorg.conf fajl bi trebao da bude dobra polazna osnova za većinu sistema (i trebao bi da radi bez modifikacija).

Ovo je tekstualni program za konfigurisanje X servera namenjen administratorima sistema. Evo i primera korišćenja xorgconfig. Prvo, startujte program:

# xorgconfig

Ovo će izbaciti ekrane pune teksta o xorgconfig. Da biste nastavili, pritisnite ENTER. xorgconfig će vas pitati da potvrdite da li ste ispravno podesili PATH. Trebalo bi da je u redu, pa pritisnite ENTER.

Figure 6-1. xorgconfig konfiguracija miša

Izaberite vašeg miša iz ponuđenog menija. Ako vaš serijski miš nije u listi, izaberite Microsoft protokol, najstandardniji je i verovatno će raditi. Sledeće, xorgconfig će vas pitati da li koristite ChordMiddle i Emulate3Buttons. Videćete detaljan opis ovih opcija na ekranu. Koristite ih ako srednje dugme vašeg miša ne radi pod X-om ili ako vaš miš ima samo 2 dugmeta (Emulate3Buttons dozvoljava simulaciju srednjeg dugmeta pritiskanjem iba dugmeta istovremeno). Zatim, upišite naziv specijalnog fajla preko koga računar komunicira sa mišem. Najčepše je /dev/mouse, što bi trebalo da radi pošto je link napravljen tokom Slackware instalacije. Ako koristite GPM (Linux server za miš) u repeater modu, možete postaviti tip miša na /dev/gpmdata kako bi X dobijao informacije o mišu preko gpm. U nekim slučajevima (posebno sa busmouse miševima) ovo može raditi bolje od prethodne opcije, ali većina korisnika ne bi trebala da koristi ovu opciju.

xorgconfig će vas pitati da li da omogući specijalne tastere. Ako vam je ovo potrebno pritisnite “y”. Većina korisnika može pritisnuti “n” -- uradite to ako niste sigurni.

Figure 6-2. xorgconfig horizontalna sinhronizacija

U sledećoj sekciji ćete uneti opseg sinhronizacija za vaš monitor. Da biste počeli konfiguraciju vašeg monitora pritisnite ENTER. Videćete listu tipova monitora -- izaberite jedan od njih. Budite pažljivi da ne premašite specifikaciju vašeg monitora. U protivnom možete oštetiti vaš monitor.

Figure 6-3. xorgconfig vertikalna sinhronizacija

Odaberite vertikalni opseg sinhronizacije vašeg monitora (trebali biste da nadjeteovu specifikaciju u uputstvu za monitor). xorgconfig će vas pitati da unesete identifikaciju tipa monitora u xorg.conf. Unesite bilo šta za ove 3 linije (možete ostaviti i prazno).

Figure 6-4. xorgconfig video kartica

Sada imate mogućnost da pogledate u bazu video kartica. Ako poželite do da uradite, pritisnite “y” i odaberite karticu iz liste. Ako ne znate tačno koju karticu imate, izaberite onu koja ima isti čip i najverovatnije će raditi.

Sledeće, saopštite programu xorgconfig koliko RAM memorije ima vaša video kartica. xorgconfig će tražiti od vas da unesete opis vaše kartice. Ako želite, možete uneti opis u ove tri linije.

Zatim ćete biti pitani za željenu rezoluciju monitora. Ponovo, ako ostavite ponudjene rezolucije, trebalo bi sve da radi. Kasnije možete editovati /etc/X11/xorg.conf fajl i izmeniti modove tako da je 1024x768 (ili mod koji se vama svidja) podrazumevajući.

Sada će vas xorgconfig program pitati da li želite da sačuvate konfiguracioni fajl. Odgovorite yes i konfiguracioni fajl za X će biti sačuvan, čime je i podešavanje završeno. Sada možete startovati X komandom startx.


6.2 xorgsetup

Drugi načina da podesite X je da korsitite xorgsetup, automatski konfiguracioni program koji dolazi u Slackware-u.

Da biste pokrenuli xorgsetup, ulogujte se kao root i kucajte:

# xorgsetup

Ako već imate /etc/X11/xorg.conf fajl (jer ste već konfigurisali X), bićete pitani da li želite da sačuvate postojeći fajl pre nego što nastavite. Postojeći fajl će biti preimenovan u /etc/X11/xorg.conf.backup.


6.3 xinitrc

xinit(1) je program koji, u stvari, startuje X; njega startuje startx(1), tako da ga možda niste primetili (verovatno ne biste ni trebali). Njegov konfiguracioni fajl, međutim, određuje koji programi (uključujući i window menadžer) će biti pokrenuti kada se startuje X. xinit traži fajl .xinitrc u korisničkom direktorijumu. Ako ga pronađe, pokreće ga; inače /var/X11R6/lib/xinit/xinitrc (sistemski podrazumevane postavke) se koristi. Evo i jednostavnog xinitrc fajla:

#!/bin/sh
# $XConsortium: xinitrc.cpp,v 1.4 91/08/22 11:41:34 rws Exp $

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

# ubaci podrazumevane vrednosti i raspored tastera

if [ -f $sysresources ]; then
    xrdb -merge $sysresources
fi

if [ -f $sysmodmap ]; then
    xmodmap $sysmodmap
fi

if [ -f $userresources ]; then
    xrdb -merge $userresources
fi

if [ -f $usermodmap ]; then
    xmodmap $usermodmap
fi

# pokreni neke fine programe

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &
exec xterm -geometry 80x66+0+0 -name login

Svi “if” blokovi postoje da bi učitali različite konfiguracione opcije iz drugih fajlova. Interesantan deo fajla je pri kraju gde su različiti programi pokrenuti. Ova X sesija će pokrenuti twm(1) window menadžer, sat i tri terminala. Zapazite exec pre zadnje xterm komande. To će zameniti školjku koja je trenutno pokrenuta (ona koja izvršava ovu xinitrc skriptu) sa xterm(1) komandom. Kada korisnik ugasi taj xterm, X sesija će se prekinuti.

Da biste podesili podizanje X-a po svom ukusu, prekopirajte /var/X11R6/lib/xinit/xinitrc u ~/.xinitrc i editujte ga, zamenjujući programe sa onim koji se vama sviđaju. Kraj mog ~/.xinitrc fajla je jednostavna linija:

# pokreni window menadžer:
exec startkde

Primetite da ima nekoliko xinitrc.* fajlova u /var/X11R6/lib/xinit koji odgovaraju različitim window menadžerima i GUI-ima. Možete koristiti bilo koji od tih ako želite.


6.4 xwmconfig

Godinama je Unix isključivo bio korišćen za servere, sa izuzecima profesionalnih radnih stanica. Samo tehnički potkovani ljudi su koristili Unix operativne sisteme, dok je korisnički interfejs odražavao ovu činjenicu. GUI-i teže da pruže samo osnovno, dizajnirani da pokrenu par nužno grafičkih aplikacija, kao što su CAD programi i programi za renderovanje. Većina operacija sa fajlovima i sistemom je izvođena iz komandne linije. Mnogi proizvođači (Sun Microsystems, Silicon Graphics, itd) su prodavali radne stanice pokušavajući da pruže kohezivni izgled, ali različiti GUI-i korišćeni od strane programera su vodili do neuniformnosti. Meniji su se pojavljivali na različitim mestima kod različitih aplikacija. Programi su imali različite dugmiće. Boje su varirale i bile su unete u svaki GUI bez mogućnosti menjanja. Dok god su korisnici primarno bili tehnički profesionalci, ništa od ovoga nije predstavljalo problem.

Sa napretkom slobodnih Unix operativnih sistema i rastućim brojem grafičkih aplikacija, X je nedavno dobio veliku bazu desktop programa. Većina korisnika, naravno, je naviknuta na konzistentan izgled Microsoft Windows-a ili Apple-ovog MacOS-a; nedostatak takve konzistencije kod aplikacija baziranih na X-u je postala prepreka širem prihvatanju. Kao odgovor, nastala su dva projekta. K Desktop Environment, ili KDE i GNU Network Object Model Environment, poznat kao GNOME. Svaki ima široku paletu aplikacija, od taskbar-a i fajl menadžera do igrica i programa za kancelariju (office alata), napisanih u istom GUI-u i usko povezanim kako bi pružili uniformni, konzistenti desktop.

Razlike izmedju KDE-a i GNOME-a su generalno suptilne. Svaki izgleda drugačije, jer svaki koristi drugu GUI biblioteku. KDE je baziran na Qt biblioteci od Troll Tech AS, dok GNOME koristi GTK, biblioteku razvijenu za GNU Image Manipulation Program (ili skraćeno GIMP). Kao odvojeni projekti, KDE i GNOME imaju svoj dizajn i programere sa različitim stilom razvijanja i filozofijom. Rezultat u oba slučaja je, međutim, u osnovi isti: konzistentno, usko povezano dekstop okruženje i skup aplikacija. Funkcionalnost, korisnost i 'lepota' oba, KDE-a i GNOME-a, su rival bilo kom drugom okruženju na bilo kom operativnom sistemu.

Najbolje od svega je, ipak, to što su ova napredna desktop orkuženja slobodna. To znači da možete imati bilo koji od njih ili oba (da, u isto vreme). Izbor je vaš.

Pored GNOME-a i KDE-a, Slackware dolazi sa velikom kolekcijom window menadžera. Neki su dizajnirani da oponašaju druge operativne sisteme, neki za podešavanja, drugi za brzinu. Postoji velika raznolikost. Naravno, možete instalirati koliko želite okruženja, igrati se sa njima i odlučiti koji vam se najviše svidja.

Da biste lako mogli napraviti selekciju desktop-a, Slackware dolazi sa programom xwmconfig koji može biti korišćen za izbor desktopa ili window menadžera. Pokreće se na sledeći način:

% xwmconfig

Figure 6-5. Desktop konfiguracija pomoću xorgconfig

Dobićete listu svih instaliranih desktopa i window menadžera. Samo izaberite one koji želite iz liste. Svaki korisnik na vašem sistemu će morati da pokrene ovaj program pošto različiti korisnici mogu koristiti različite desktope.

Nakon toga, pokrenite X i sve je spremno.


6.5 xdm

Kako Linux postaje sve više koristan kao desktop operativni sistem, mnogi korisnici smatraju poželjnim da se mašina podigne odmah u grafičko okruženje. Zbog ovoga, moraćete narediti Slackware-u da se diže odmah u X i dodeliti grafički login menadžer. Slackware dolazi sa tri grafička alata za login, xdm(1), kdm i gdm(1).

xdm je grafički login menadžer koji dolazi sa X.org sistemom. On je jednostavan i nema tako puno opcija kao alternative. kdm je grafički login menadžer koji dolazi sa KDE-om. Konačno, gdm je grafički menadžer koji dolazi sa GNOME-om. Svaki od njih će vam omogućiti da se ulogujete kao bilo koji korisnik i izaberete koji desktop želite da koristite.

Na nesreću, Slackware ne uključuje neki lep program kao što je xwmconfig za odabir login menadžera, pa ako su sva tri instalirana možda ćete morati da uradite malo uređivanja da biste izabrali onaj koji se vama svidja. Ali prvo ćemo pričati o tome kako da namestite da se sistem odmah diže u grafičko okruženje.

Da biste pokrenuli X pri podizanju sistema, morate ga pokrenuti u runlevel 4. Runleveli su samo način da kažete init(8) komandi da uradi različite stvari kad startuje OS. Ovo se postiže uređivanjem konfiguracionog fajla /etc/inittab.

# These are the default runlevels in Slackware:
#   0 = halt
#   1 = single user mode
#   2 = unused (but configured the same as runlevel 3)
#   3 = multiuser mode (default Slackware runlevel)
#   4 = X11 with KDM/GDM/XDM (session managers)
#   5 = unused (but configured the same as runlevel 3)
#   6 = reboot

# Default runlevel. (Do not set to 0 or 6)
id:3:initdefault:

Da biste namestili da se Slackware podiže u grafičko okruženje samo treba da promenite 3 u 4.

  # Default runlevel. (Do not set to 0 or 6)
  id:4:initdefault:

Sada će se Slackware dizati u runlevel 4 i pokrenuti /etc/rc.d/rc.4. Ovo će pokrenuti X i pozvati login menadžer koji ste izabrali. Pa, kako biramo login menadžer? Postoji par načina da se ovo uradi, i objasnićemo ih nakon što pogledamo rc.4.

  # Pokušaj da koristiš GNOME-ov gdm:
  if [ -x /usr/bin/gdm ]; then
    exec /usr/bin/gdm -nodaemon
  fi

  # Nije tu?  OK, probaj da koristiš KDE-ov kdm:
  if [ -x /opt/kde/bin/kdm ]; then
    exec /opt/kde/bin/kdm -nodaemon
  fi

  # Ako je sve što želite da imate XDM, pretpostavljam da će morati da vas zadovolji:
  if [ -x /usr/X11R6/bin/xdm ]; then
    exec /usr/X11R6/bin/xdm -nodaemon
  fi

Kao što možete da vidite, rc.4 prvo proverava da li gdm može da se pokrene, i ako može startuje ga. Drugi u listi je kdm, i konačno xdm. Jedan način da izaberete login menadžer je da jednostavno izbacite one koje ne želite, koristeći removepkg. Možete naći više o removepkg u Chapter 18.

Opciono, možete ukloniti dozvolu za startovanje onim fajlovima koje ne želite da koristite. Pričali smo o chmod u Chapter 9.

# chmod -x /usr/bin/gdm

Konačno, možete samo zakomentarisati linije za login menadžer koji ne želite da korisite.

  # Try to use GNOME's gdm session manager:
  # if [ -x /usr/bin/gdm ]; then
  #   exec /usr/bin/gdm -nodaemon
  # fi

  # Not there?  OK, try to use KDE's kdm session manager:
  if [ -x /opt/kde/bin/kdm ]; then
    exec /opt/kde/bin/kdm -nodaemon
  fi

  # If all you have is XDM, I guess it will have to do:
  if [ -x /usr/X11R6/bin/xdm ]; then
    exec /usr/X11R6/bin/xdm -nodaemon
  fi

Sve linije kojima prethodi znak taraba (#) se smatraju komentarima i tiho budu preskočene. Stoga, čak iako je gdm instaliran i izvršan, školjka (u ovom slučaju bash) se neće zamarati tim da ga traži.


Chapter 7 Pokretanje sistema (booting)

Proces startovanja vašeg Linux sistema nekada može biti lak a nekada može biti težak. Mnogi korisnici instaliraju Slackware na svojim računarima i to je to. Samo ga uključe i spreman je za korišćenje. Drugih puta, jednostavno startovanje mašine može biti rutina. Za većinu korisnika, LILO radi najbolje. U Slackware je uključen LILO i Loadlin za startovanje Slackware Linuxa. LILO će raditi sa hard disk particije, hard diskovog glavnog boot zapisa (MBR) ili flopi diska, što ga čini veoma raznovrsnom alatkom. Loadlin radi iz DOS komandne linije, ubijajući DOS i prizivajući Linux.

Još jedan popularan alat za startovanje Linuxa je GRUB. GRUB nije uključen niti zvanično podržan od Slackware-a. Slackware se drži “pokušano i radi” standarda pri odlučivanju šta će biti uključeno u distribuciju. Iako GRUB radi dobro i sadrži neke osobine koje LILO nema, LILO vrši esencijalni zadatak startovanja sa dokazanom pouzdanošću. Pošto je mlađi, GRUB nije još doživeo takvu zaostavštinu. Pošto nije uključen u Slackware, nećemo ovde diskutovati o njemu. Ako želite da koristite GRUB (možda je došao sa nekim drugim Linux operativnim sistemom ili želite da ga koristite za dvojno startovanje) konsultujte GRUB-ovu dokumentaciju.

Ova sekcija pokriva korišćenje LILO-a i Loadlin-a, dva pokretača koji su uključeni u Slackware. Takođe objašnjava neke tipične scenarije sa dvojnim startovanjem i kako bi ste mogli to podesiti.


7.1 LILO

Linux Loader, ili LILO, je najpopularniji program za startovanje koji se koristi na Linux sistemima. Veoma je konfigurabilan i lako se može koristiti za startovanje drugih sistema.

Slackware Linux dolazi sa alatom kontrolisanim putem menija a koji se zove liloconfig. Ovaj program se prvi put pokreće tokom procesa instaliranja, ali ga možete pozvati kasnije tako što kucate liloconfig u promptu.

LILO čita svoje postavke iz /etc/lilo.conf(5) fajla. Taj fajl se ne čita svaki put kada pokrećete računar, već se čita svaki put kada instalirate LILO. LILO mora biti reinstaliran u boot sektor svaki put kad napravite promenu u konfiguraciji. Mnoge LILO greške nastaju od pravljenja promena u lilo.conf fajlu, pa posle zaboravljanja startovanja liloa kako bi se instalirale ove promene. liloconfig će vam pomoći da napravite konfiguracioni fajl tako da možete instalirati LILO za vaš sistem. Ako više volite da ručno uređujete /etc/lilo.conf, onda je za reinstaliranje programa LILO dovoljno da ukucate /sbin/lilo (kao root) u promptu.

Kada prvi put pozovete liloconfig, on će izgledati ovako:

Figure 7-1. liloconfig

Ako vam je ovo prvi put da podešavate LILO, bilo bi dobro da izaberete simple. Ako ne, možete naći kako je expert način brži ukoliko ste upoznati sa Linuxom i programom LILO. Biranje simple načina će započeti LILO konfiguraciju.

Ako je podrška za frejm-bafer (frame buffer) ugrađena u vaš kernel, liloconfig će pitati koju video rezoluciju želite da koristite. Ovo je rezolucija koju takođe koristi XFree86 frejm-bafer server. Ako ne želite da se konzola startuje u specijalnom video modu, biranjem stavke normal će zadržati standardni 80x25 mod.

Sledeći deo LILO konfiguracije je biranje gde želite da ga instalirate. Ovo je verovatno najvažniji korak. Lista ispod objašnjava mesta za instaliranje:

Root

Ova opcija instalira LILO na početku vaše Linux root particije. Ovo je najsigurnija opcija ako imate drugi operativni sistem na vašem računaru. Ona osigurava da drugi programi za pokretanje ne budu prepisani. Nedostatak je to što će se LILO učitati odatle samo ako je vaš Linux disk prvi disk u sistemu. Zbog toga mnogi ljudi izaberu da naprave veoma malu /boot particiju kao prvu u svojim sistemima. Ovo dozvoljava kernelu i LILO programu da budu instalirani na početak diska gde ih LILO može naći. Prethodne verzije LILO-a su imale čuvenu grešku poznatiju kao “limit od 1024 cilindra”. LILO nije bio u mogućnosti da startuje kernel na particijama preko 1024. cilindra. Poslednje verzije LILO-a su uklonile ovaj problem.

Floppy

Ovaj metod je čak siguriji od prethodnog. On stvara boot flopi koji možete koristiti za pokretanje vašeg Linux sistema. Tako je program sasvim izvan hard diska, pa ćete ubacivati flopi samo kad želite da koristite Slackware. Nedostaci ovog metoda su očigledni. Flopiji su po zlu poznati i često se kvare. Drugo, boot program se ne nalazi u računaru. Ako izgubite vaš flopi disk, moraćete napraviti novi kako bi pokrenuli vaš sistem.

MBR

Želećete da koristite ovu metodu ako je Slackware jedini operativni sistem na vašem računaru, ili ako ćete koristiti LILO za odabir između više operativnih sistema na vašem računaru. Ovo je najčešće korišćen metod za instaliranje LILO-a i radiće sa skoro bilo kojim računarskim sistemom.

Warning

Ova opcija će prepisati bilo koji drugi boot program kojeg imate u MBR-u.

Posle biranja mesta za instaliranje, liloconfig će napisati konfiguracioni fajl i instalirati LILO. To je to. Ako izaberete expert mod dobićete specijalan meni. Ovaj meni vam omogućuje da podešavate /etc/lilo.conf fajl, dodate drugi operativni sistem u vaš izbornik pri startovanju i da podesite LILO da prenosi specijalne kernel parametre pri startovanju. Expert meni izgleda ovako:

Figure 7-2. liloconfig expert meni

Bez obzira kakva je konfiguracija vašeg sistema, postavljanje boot programa je lako. liloconfig veoma olakšava podešavanje.


7.2 LOADLIN

Druga opcija za startovanje koja dolazi sa Slackware Linuxom je LOADLIN. LOADLIN je DOS izvršni fajl koji se može koristiti za startovanje Linuxa iz DOS sistema. Zahteva da Linux kernel bude na DOS particiji kako bi ga LOADLIN mogao učitati i ispravno pokrenuti sistem.

Tokom procesa instalacije, LOADLIN će biti iskopiran u root-ov početni direktorijum kao .ZIP fajl. Ne postoji automatski proces podešavanja za LOADLIN. Moraćete da kopirate Linux kernel (najčešće /boot/vmlinuz) i LOADLIN fajl iz root-ovog početnog direktorijuma na DOS particiju.

LOADLIN je koristan ako želite da napravite boot meni na vašoj DOS particiji. Meni može da se stavi u vaš AUTOEXEC.BAT fajl koji će vam dozvoliti da birate između Linuxa i DOS-a. Izbor Linuxa će pokrenuti LOADLIN, i time startovati Slackware sistem. Ovaj AUTOEXEC.BAT fajl pod Windows 95 sistemom će vam pružiti dovoljan boot meni:

   @ECHO OFF
   SET PROMPT=$P$G
   SET PATH=C:\WINDOWS;C:\WINDOWS\COMMAND;C:\
   CLS
   ECHO Molim vas izaberite vas operativni sistem:
   ECHO.
   ECHO [1] Slackware Linux
   ECHO [2] Windows 95
   ECHO.
   CHOICE /C:12 "Izbor? -> "
   IF ERRORLEVEL 2 GOTO WIN
   IF ERRORLEVEL 1 GOTO LINUX
   :WIN
   CLS
   ECHO Pokrecem Windows 95...
   WIN
   GOTO END
   :LINUX
   ECHO Pokrecem Slackware Linux...
   CD \LINUX
   LOADLIN C:\LINUX\VMLINUZ ROOT=<uređaj root particije> RO
   GOTO END
   :END

Moraćete da naznačite vašu root particiju kao ime Linux uređaja, npr. /dev/hda2 ili nešto drugo. Uvek možete koristiti LOADLIN iz komandne linije. Možete ga koristiti na isti način kao što je prikazano gore. LOADLIN dokumentacija dolazi sa mnogo primera njegovog korišćenja.


7.3 Dualno startovanje

Mnogi korisnici podešavaju svoje računare da startuju Slackware Linux i drugi operativni sistem. Mi smo opisali nekoliko tipičnih scenarija startovanja ispod, u slučaju da imate poteškoća pri podešavanju vašeg sistema.


7.3.1 Windows

Podešavanje računara sa zajedno MS Windowsom i Linuxom je verovatno najčešći scenario dualnog startovanja. Postoje brojni načini na koje možete podesiti startovanje, ali ova sekcija će pokriti samo dva.

Često puta se desi prilikom podešavanja dualnog startovanja da osoba napravi savršen plan gde će šta ići, ali upropasti redosled instaliranja. Veoma je važno razumeti da operativni sistemi moraju biti instalirani po određenom redu kako bi dualno startovanje funkcionisalo. Linux uvek nudi kontrolu nad stvarima koje se, ako uopšte, upisuju u glavni boot zapis hard diska (MBR). Stoga, uvek se savetuje da Linux instalirate poslednjeg. Windows treba da se instalira prvi, pošto će uvek upisati svoj boot program u glavni boot zapis hard diska, prepisujući bilo koji unos što ga je Linux tamo stavio.


7.3.1.1 Korišćenje programa LILO

Većina ljudi će želeti da koristi LILO za izbor između Linuxa i Windowsa. Kao što je navedeno gore, treba prvo da instalirate Windows, pa onda Linux.

Recimo da imate 40GB IDE hard disk kao jedini disk uređaj u vašem sistemu. Takođe recimo da želite dati pola tog prostora Windowsu, a pola prostora Linuxu. Ovo će nam napraviti problem kada pokušavamo da startujemo Linux.

   20GB   Windows boot (C:)
   1GB   Linux root (/)
   19GB  Linux /usr (/usr)

Pored toga trebali bi odrediti adekvatnu količinu prostora za Linux swap particiju. Nepisano pravilo je da se koristi duplo veća količina prostora na hard disku od količine RAM-a. Sistem sa 64MB će imati 128MB swap particiju, i tako dalje. Adekvatni swap prostor je diskusija mnogih svađa na IRC-u i Usenetu. Ne postoji istinito “ispravan” način da se to uradi, ali držanje gore navedenog pravila bi trebalo biti dovoljno.

Sa napravljenim particijama, treba da instalirate Windows. Kada je to postavljeno i radi, treba da instalirate Linux. LILO instalacija traži posebnu pažnju. Moraćete da izaberete expert mod za instaliranje LILO-a.

Počnite novu LILO konfiguraciju. Želećete da ga instalirate na glavni boot zapis kako bi mogao da se koristi za izbor između dva operativna sistema. Iz menija, dodajte vašu Linux particiju i dodajte vašu Windows (ili DOS) particiju. Kad je to završeno možete instalirati LILO.

Restartujte računar. LILO bi trebao da se učita i prikazaće meni dajući vam da izaberete između operativnih sistema koje ste instalirali. Izaberite ime operativnog sistema kojeg želite da učitate (ova imena se biraju pri podešavanju LILO-a).

LILO je prilično podesiv. Nije ograničen samo na startovanje Linuxa ili DOS-a. Može da pokrene skoro pa sve. Man stranice za lilo(8) i lilo.conf(5) pružaju detaljnije informacije.

Šta ako LILO ne radi? Postoje primeri u kojima LILO jednostavno neće da radi na datoj mašini. Srećom, postoji drugi način da se dualno startuje Linux i Windows.


7.3.1.2 Korišćenje programa LOADLIN

Ovaj metod može da se koristi ako LILO neće da radi na vašem sistemu ili ako baš ne želite da podesite LILO-a. Takođe je idealan za korisnike koji često reinstaliraju Windows. Svaki put kad ponovo instalirate Windows, on će prepisati glavni boot zapis, time uništavajući svaku LILO instalaciju. Sa LOADLIN programom, niste žrtva tog problema. Najveći nedostatak je to što možete koristiti samo LOADLIN da pokrenete Linux.

Sa LOADLIN-om, možete instalirati operativne sisteme proizvoljnim redosledom. Budite pažljivi kada instalirate stvari u glavni boot zapis, to ne želite da radite. LOADLIN se oslanja na to da je Windows particija sposobna da pokrene sistem. Tako prilikom instalacije Slackware-a, preskočite podešavanje LILO-a.

Posle instaliranja operativnih sistema, kopirajte loadlinX.zip (gde je X broj verzije, kao što je 16a) fajl iz root-ovog početnog direktorijuma na vašu Windows particiju. Takođe iskopirajte fajl sa kernelom na Windows particiju. Moraćete biti u Linuxu da bi ste mogli ovo da odradite. Ovaj primer pokazuje kako se to radi:

# mkdir /win
# mount -t vfat /dev/hda1 /win
# mkdir /win/linux
# cd /root
# cp loadlin* /win/linux
# cp /boot/vmlinuz /win/linux
# cd /win/linuz
# unzip loadlin16a.zip

To će napraviti C:\LINUX direktorijum na vašoj Windows particiji (predpostavljajući da je ona /dev/hda1) i kopirati potrebne stvari koje su potrebne programu LOADLIN. Posle ovoga, treba da pokrenete Windows kako bi postavili meni za izbor prilikom startovanja.

Kada ste u Windowsu, dođite do DOS prompta. Prvo, trebamo postaviti da se sistem ne startuje u grafičkom interfejsu.

C:\> cd \
C:\> attrib -r -a -s -h MSDOS.SYS
C:\> edit MSDOS.SYS

Dodajte ovu liniju u fajl:

BootGUI=0

Sada snimite fajl i izađite iz editora. Sada uredite C:\AUTOEXEC.BAT kako bi smo mogli dodati meni za startovanje. Sledi primer kako bi blok za meni pri startovanju mogao da izgleda u fajlu C:\AUTOEXEC.BAT:

cls
echo Meni za startovanje sistema
echo.
echo 1 - Linux
echo 2 - Windows
echo.
choice /c:12 "Izbor? -> "
if errorlevel 2 goto WIN
if errorlevel 1 goto LINUX
:LINUX
cls
echo "Pokrecem Linux..."
cd \linux
loadlin c:\linux\vmlinuz root=/dev/hda2 ro
goto END
:WIN
cls
echo "Pokrecem Windows..."
win
goto END
:END

Ključna linija je ona koja pokreće LOADLIN. Kažemo mu koji kernel da učita, Linux root particiju i da želimo u početku da mu pristupimo samo za čitanje.

Alati za ove dve metode se dobijaju sa Slackware Linuxom. Postoje brojni drugi boot programi na tržištu, ali ovi bi trebali da rade za najveći broj postavki dualnog startovanja.


7.3.1.3 Zastareli Windows NT hak

Ovo je najređa situacija dulanog startovanja. U starim danima, LILO nije bio u stanju da pokrene Windows NT, što je zahtevalo da Linux korisnici hakuju NTLDR, dobijajući time nekoliko problema više nego prilikom dualnog startovanja između Windowsa 9x i Linuxa. Razumite da su sledeće instrukcije zastarele. LILO je već mnogo godina u stanju da startuje Windows NT/2000/XP/2003. Međutim, ako koristite staru mašinu, možda ćete morati koristiti baš ovakav hak.

  1. Instalirajte Windows NT

  2. Instalirajte Linux, s tim da se LILO instalira u superblok Linux particije

  3. Uzmite prvih 512 bajtova Linux root particije i snimite ih na Windows NT particiju

  4. Uredite C:\BOOT.INI pod Windowsom NT i dodajte Linux opciju

Instaliranje Windowsa NT bi trebalo biti vrlo jednostavno, kao i Linuxa. Posle toga, postaje malo čupavo. Vađenje prvih 512 bajtova Linux particije je lakše nego što zvuči. Moraćete biti u Linuxu kako bi ovo izveli. Predpostavimo da je vaša Linux particija /dev/hda2, izdajete ovu komandu:

# dd if=/dev/hda2 of=/tmp/bootsect.lnx bs=1 count=512

To je to. Sada ćete trebati kopirati bootsect.lnx na Windows NT particiju. Ovde dolazimo do drugog problema. Linux nema stabilnu podršku za pisanje po NTFS fajl sistemu. Ako ste instalirali Windows NT i formatirali vaš disk kao NTFS, moraćete kopirati ovaj fajl na FAT flopi i onda ga očitati pod Windowsom NT. Ako ste formatirali Windows NT disk kao FAT, možete ga prosto montirati pod Linuxom i kopirati fajl. U svakom slučaju, treba da prebacite /tmp/bootsect.lnx sa Linux diska u C:\BOOTSECT.LNX na Windows NT disku.

Poslednji korak je dodavanje meni opcije u Windows NT meniju za startovanje. Pod Windowsom NT otvorite komandni prompt.

C:\WINNT> cd \
C:\> attrib -r -a -s -h boot.ini
C:\> edit boot.ini

Dodajte ovu liniju na kraj fajla:

C:\bootsect.lnx="Slackware Linux"

Snimite promene i izađite iz editora. Kada ponovo startujete Windows NT, imaćete Linux opciju u meniju. Kad je izaberete, startovaćete Linux.


7.3.2 Linux

Da, ljudi ovo zaista rade. Ovo je definitivno najlakši scenario dualnog startovanja. Možete jednostavno koristiti LILO i dodati još unosa u /etc/lilo.conf fajl. To je sve što je potrebno.


Chapter 8 Školjka (shell)

U grafičkom okruženju, interfejs pruža program koji stvara prozore, menije, pokazivače, itd. U okruženju komandne linije korisnički interfejs pruža školjka (shell na engleskom, ali i na srpskom se često koristi termin šel), koja interpretira komande i uopšte čini stvari upotrebljivim. Odmah nakon što se uloguju (što je pokriveno u ovoj glavi), korisnici budu stavljeni u školjku i bude im dozvoljeno da rade svoj posao. Ova glava služi kao uvod u školjku i to u najčešću školjku među Linux korisnicima - Bourne Again Shell (skraćeno Bash). Ukoliko vam treba više informacija nego što je ovde pruženo, pogledajte man stranicu za bash(1).


8.1 Korisnici

8.1.1 Prijavljivanje/logovanje

Pokrenuli ste računar i gledate u nešto što liči na ovo:

Welcome to Linux 2.4.18
Last login: Wed Jan   1 15:59:14 -0500 2005 on tty6.
darkstar login:

Hmm.. niko nije ništa rekao o loginu. I šta je darkstar? Ne brinite; verovatno niste slučajno uključili hiperspejs komlink to veštačkog meseca Imperije. (Plašim se da hiperspejs komlink protokol trenutno nije podržan u Linux kernelu. Možda će verzija 2.8 konačno pružiti ovu često zahtevanu opciju.) Ne, darkstar je samo ime jednog od naših računara i njegovo ime se koristi kao podrazumevano. Ukoliko ste naznačili ime računara pri instaliranju, videćete njega umesto darkstar.

A što se tiče ulogovanja... Ukoliko vam je ovo prvi put, želećete da se ulogujete kao root. Bićete upitani za lozinku; ukoliko ste je postavili tokom instalacije, to je ta koja vam treba. Ako niste, samo pritisnite enter. To je to - unutra ste!


8.1.2 Root: superkorisnik

U redu, ko ili šta je root? I šta će njemu nalog na vašem sistemu?

Pa, u svetu Unix i sličnih operativnih sistema (kao što je Linux), postoje korisnici i postoji druga vrsta korisnika. Ući ćemo u ovo detaljno kasnije, ali važno je da znate da je root kornisnik iznad svih korisnika; root je svemoćan i sveznajući, i svako sluša root-a. Ne može drugačije. root je ono što zovemo “superkorisnikom”, i to sa pravom. I što je najbolje od svega, root ste vi.

Super, zar ne?

Ukoliko niste sigurni: da, to je jako super. Caka je, međutim, što je root-u dozvoljeno da pokvari bilo šta što poželi. Ako hoćete možete preskočiti dole na Section 12.1.1 i pogledati kako da dodate korisnika; onda se ulogujte kao taj korisnik i radite odatle. Tradicionalna mudrost kaže da je najbolje postati superkorisnik samo kada je apsolutno neophodno, čisto da se minimizira mogućnost slučajnog kvarenja sistema.

Kad smo već tu, ukoliko odlučite da želite da postanete root dok ste ulogovani kao neko drugi, nema problema. Samo iskoristite su(1) komandu. Bićete upitani za root-ovu lozinku i onda ćete biti root sve dok ne ukucate exit ili logout. Takođe možete postati bilo koji drugi korisnik koristeći su, ukoliko znate lozinku tog korisnika: su logan, na primer, će napravite mene od vas.

Note

root-u je dozvoljeno da koristi su i postane bilo koji korisnik, bez potrebe da zna njihove loznike.


8.2 Komandna linija

8.2.1 Izvršavanje programa

Teško da je moguće nešto uraditi, a da se ne pokreću programi; možda ćete moći nešto da pritisnete svojim računarom ili da držite vrata otvorenim, a neki će praviti najdivniji brujeći zvuk kada su uključeni, ali to je otprilike sve. Mada ja mislim da ćemo se složiti kako njegova uloga kao brujećeg držača za vrata nije to što je dovelo lične računare do popularnosti u kojoj sad uživaju.

Pa, sećate se kako je skoro sve u Linux-u fajl? Pa, to važi i za programe. Svaka komanda koju izvršavate (koja nije ugrađena u školjku) negde počiva kao fajl. Pokrećete program tako što jednostavno naznačite punu putanju do njega.

Na primer, sećate se su komande iz prethodne sekcije? Pa, ona je u stvari u /bin direktorijumu: /bin/su će je lepo pokrenuti.

Pa zašto onda kucanje samo su radi? Posle svega, niste rekli da je u /bin. Mogao je lako biti i u /usr/local/share, zar ne? Kako je to on znao? Odgovor na to leži u PATH varijabli okruženja; većina školjki imaju ili PATH ili nešto veoma slično varijabli PATH. U osnovi ona sadrži listu direktorijuma u koje se traže programi koje pokušavate da izvršite. Pa kada ste pokrenuli su, vaša školjka je protrčala kroz svoju listu direktorijuma, tražeći prvi izvršni fajl sa imenom su kojeg može da izvrši. Ovo se dešava uvek kada pokrenete program, a da niste naznačili punu putanju do njega; ako dobijete ““Command not found”” grešku, to samo znači da program kojeg ste pokušali da pokrenete nije u vašoj PATH varijabli (path na engleskom znači staza). (Naravno, ovo bi bilo tačno ukoliko program uopšte ne postoji...). Razmotrićemo varijable okruženja detaljnije u Section 8.3.1.

Takođe se setite kako je “.” prečica za trenutni direktorijum, pa ukoliko se desi da ste u /bin, ./su će raditi isto kao i eksplicitna puna putanja.


8.2.2 Zamene slova

Skoro svaka školjka prepoznaje neke znakove kao zamene ili skraćenice koje znače: ovde ide bilo šta. Takvi znaci se zgodno zovu džokeri, ili na engleskom wildcards; najčešći su * i ?. Po konvenciji, ?obično znači bilo koji jedan znak. Na primer, pretpostavimo da ste u direktorijumu sa tri fajla: ex1.txt, ex2.txt i ex3.txt. Želite da kopirate sve ove fajlove (koristeći cp komandu koju smo opisali u Section 10.5.1) u neki drugi direktorijum, recimo /tmp. Pa, kucanje cp ex1.txt ex2.txt ex3.txt /tmp je totalno puno posla. Mnogo je lakše ukucati cp ex?.txt /tmp; znak ? će se poklopiti sa svakim od znakova “1”, “2” i “3”, i svaki od njih će biti redom zamenjen.

Šta kažete? To je još uvek previše posla? U pravu ste. Naporno je; imamo zakone o radu koji nas štite od takvih stvari. Srećom, takođe imamo i *. Kao što sam već pomenuo * će se poklopiti sa “bilo kojim brojem znakova”, ukljućujuči i nijedan. Pa ako su ova tri fajla jedina u direkotorijumu, mogli bismo jednostanvo reći cp * /tmp i obuhvatiti ih sve u jednom zamašaju. Pretpostavimo, ipak, da postoji i fajl sa imenom ex.txt i neki sa imenom hejaz.txt. Želimo da iskopiramo ex.txt, ali ne i hejaz.txt; cp ex* /tmp će uraditi to za nas.

cp ex?.txt /tmp, će, naravno, obuhvatiti samo naša tri početna fjla; ne postoji znaku u ex.txt kojeg će zameniti ?, pa će on biti izostavljen.

Još jedan čest džoker je par uglastih zagrada [ ]. Bilo koji znak unutar zagrada će biti zamenjen na mestu [ ] kako bi se našli fajlovi koji se poklapaju. Zvuči zbunjujuće? Nije jako teško. Pretpostavimo za primer, imamo direktorijum koji sadrži sledećih 8 fajlova: a1, a2, a3, a4, aA, aB, aCi aD . Želimo da nađemo samo fajlove koji se završavaju sa brojem; [ ] će uraditi ovo za nas.

% ls a[1-4]
a1 a2 a3 a4

Ali šta ako želimo samo a1, a2 i a4? U prethodnom primeru smo koristili - da znači sve vrednosti između 1 i 4. Možemo, takođe, odvojiti pojedine znakove sa zarezima.

% ls a[1,2,4]
a1 a2 a4

Znam šta sada mislite, “A šta je sa slovima?” Linux razlikuje velika i mala slova, što znači da su a i A različita slova koja su povezana samo u vašoj glavi. Velika slova uvek idu ispred malih, pa A i B dolaze pre a i b. Nastavljajući sa našim prethodnim primerom, ukoliko želimo fajlove a1 i A1, možemo ih brzo pronaći pomoću [ ].

% ls [A,a]1
A1 a1

Primetite da bismo dobili pogrešne rezultate ukoliko bismo upotrebili crticu umesto zareza.

% ls [A-a]1
A1 B1 C1 D1 a1

Takođe možete kombinovati crticu i zarez.

% ls [A,a-d]
A1 a1 b1 c1 d1

8.2.3 Redirekcija ulaza/izlaza i cevovodi

(Sada sledi nešto cool.)

% ps > blargh

Znate šta je to? To sam ja kako izvršavam ps kako bih video koji se procesi izvršavaju; ps je opisana u Section 11.3. Taj deo nije cool, cool deo je > blargh, koji znači, grubo rečeno, uzmi izlaz iz ps i upiši ga u fajl sa imenom blargh. Ali sačekajte, postaje još više cool.

% ps | less

Ova linija uzima izlaz iz ps i sprovodi ga kroz less, pa tako mogu pomerati kako mi se hoće.

% ps >> blargh

Ovaj treći je načešće korišćen preusmerivač; on radi istu stvar kao i “>”, osim što će “>>” dodati izlaz iz ps u fajl blargh, ukoliko takav fajl već postoji. Ako ne, isto kao i sa “>”, on će biti napravljen. (“>” će uništiti trenutni sadržaj fajla blargh.)

Takođe postoji i “<” operator, koji znači uzmi vaš unos iz sledećeg, ali ni blizu korišćen kao ostali.

% fromdos < dosfile.txt > unixfile.txt

Preusmeravanje postaje stvarno zabavno jednom kada se počnete s njime igrati:

% ps | tac >> blargh

To će pokrenuti ps, obrnuti linije koje on napiše i dodati ih u fajl blargh. Možete naređati koliko god hoćete ovih; samo budite oprezni i pamtite da se izvršavaju s leva na desno.

Pogledajte man stranicu za bash(1) za detaljnije informacije o preusmeravanju.


8.3 Bourne Again Shell (bash)

8.3.1 Varijable okruženja

Linux sistem je komplikovana životinja, i postoji mnogo toga što se treba pamtiti, mnogo sitnih detalja koji ulaze u igru prilikom normalnih interakcija sa raznim programima (ne morate ni biti svesni nekih od njih). Niko ne želi da daje gomilu opcija svakom programu kojeg izvršava, govoreći mu koju vrstu terminala koristi, ime računara, kako prompt treba da izgleda...

Pa, kao mehanizam preživljavanja, korisnici imaju nešto što se zove okruženje. Okruženje definiše uslove pod kojima se izvršavaju programi, a neke od ovih definicija su varijable; korsnik ih može promeniti i igrati se njima, što je dobro samo u Linux sistemu. Skoro svaka školjka ima varijable okruženja (ako ne, onda to verovatno i nije korisna školjka). Ovde ćemo dati pregled komandi koje pruža bash za manipulaciju svojih varijabli okruženja.

set pozvan tako će vam pokazati sve varijable okruženja koje su trenutno definisane, kao i njihove vrednosti. Kao i većina komandi ugrađenih u bash on može uraditi još nekoliko stvari (sa parametrima); ipak ćemo to ostaviti bash(1) man stranici da objasni. Example 8-1 prikazuje isečak iz set komande pokrenute na jednom od autorovih računara. Primetite u ovom primeru PATH varijablu o kojoj je pre diskutovano. Programi u bilo kojem od ovih direktorijuma se mogu pokrenuti ako ukucate samo njihovo ime.

Example 8-1. Listanje varijabli okruženja sa set

% set
PATH=/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin
PIPESTATUS=([0]="0")
PPID=4978
PS1='\h:\w\$ '
PS2='> '
PS4='+ '
PWD=/home/logan
QTDIR=/usr/local/lib/qt
REMOTEHOST=ninja.tdn
SHELL=/bin/bash
% unset VARIJABLA

unset će ukloniti svaku varijablu koju mu date, brišući i varijablu i njenu vrednost; bash će zaboraviti da je varijabla ikada postojala. (Ne brinite. Ukoliko nije nešto što ste eksplicitno definisali u sesiji školjke, verovatno će biti opet definisana u svakoj drugoj sesiji.)

% export VARIJABLA=neka_vrednost

Sad, export je istinski zgodan. Koristeći ga, dajete varijabli okruženja VARIJABLA vrednost “neka_vrednost”; ukoliko VARIJABLA nije postojala, sada postoji. Ukoliko je VARIJABLA već imala vrednost, pa, nema je više. To nije baš najbolje ukoliko pokušavate da dodate direktorijum u vaš PATH. U tom slučaju, verovatno želite da koristite nešto kao ovo:

% export PATH=$PATH:/neki/nov/direktorijum

Primetite kako koristimo $PATH ovde: kada želite da bash interpretira varijablu (zameni je s njenom vrednošću), ubacite $ pred početak imena varijable. Na primer, echo $PATH će napisati vrednost varijable PATH, u mom slučaju:

% echo $PATH
/usr/local/lib/qt/bin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:
/usr/openwin/bin:/usr/games:.:/usr/local/ssh2/bin:/usr/local/ssh1/bin:
/usr/share/texmf/bin:/usr/local/sbin:/usr/sbin:/home/logan/bin

8.3.2 Tab popunjavanje

(Ovde opet sledi nešto cool.)

  1. Interfejs komandne linije znači mnogo kucanja.

  2. Kucanje je posao.

  3. Niko ne voli posao.

Iz 3 i 2, možemo zaključiti da (4) niko ne voli kucanje. Srećom, bash nas čuva od (5) (niko ne voli interfejs komandne linije).

Kako bash postiže ovaj divni zadatak, pitate vi? U dodatak džokerima koje smo prodiskutovali pre, bash ima osobinu tab popunjavanja

Tab popunjavanje radi nešto slično ovome: Vi kucate ime fajla. Može je on u vašoj varijabli PATH, možda ga kucate eksplicitno. Sve što treba da uradite je da ukucate dovoljno od imena da fajl bude jedinstven sa tim slovima. Onda pritisnite taster tab. bash će razumeti šta želite i završiti kucanje umesto vas!

Vreme je za primer. /usr/src ima dva poddirektorijuma: /usr/src/linux i /usr/src/sendmail. Ja želim da vidim šta je u /usr/src/linux. Stoga samo kucam ls /usr/src/l, pritisnem TAB taster i bash mi daje ls /usr/src/linux.

Sada, pretpostavimo da postoje dva direktorijuma /usr/src/linux i /usr/src/linux-old; ukoliko ukucam /usr/src/l i pritisnuo TAB, bash će popuniti koliko god može, i ja ću dobiti /usr/src/linux. Mogu tu stati, ili mogu pritisnuti TAB opet i bash će pokazati listu direktorijuma koji se poklapaju sa tim što sam do sad ukucao.

Time manje kucanja (i samim tim, ljudima se mogu sviđati interfejsi komandne linije). Rekao sam vam da je cool.


8.4 Virtuelni terminali

Recimo, u sred ste rada na nečemu i odlučite da trebate uraditi nešto drugo. Možete prestati s tim što radite trenutno i prebaciti se na drugi zadatak, ali ovo je višekorisnički sistem, zar ne? I možete se ulogovati istovremeno koliko god puta želite, jeli tako? Pa zašto biste onda morali raditi jednu po jednu stvar?

Ne morate. Ne možemo svi imati više tastatura, miševa i monitora za jednom mašinom; šanse su da većina nas to ni ne želi. Jasno je, hardver nije rešenje. To onda ostavlja softver i Linux ovde stupa na scenu, pružajući “virtuelne terminale”, ili “VT”-ove.

Pritiskajući Alt i funkcijski taster, možete se prebacivati između virtuelnih terminala; svaki funkcijski taster odgovara jednom. Slackware ima loginove za 6 VT-ja, podrazumevano. Alt+F2 će vas prebaciti u drugi, Alt+F3 u treći, itd.

Ostali funkcijski taster su rezervisani za X sesije. Svaka X sesija koristi svoj VT, počev od sedmog (Alt+F7) i naviše. Kada ste u X-u, Alt+Funkcijski taster kombinacija je zamenjena sa Ctrl+Alt+Funkcijski taster; pa ako ste u X-u i želite da se vratite u tekstualno logovanje (bez izlaska iz X sesije), Ctrl+Alt+F3 će vas prebaciti u trećo. (Alt+F7 će vas vratiti nazad, pod pretpostavkom da koristite prvu X sesiju.)


8.4.1 Screen

Ali šta je sa situacijama u kojima nema virtuelnih terminala? Šta onda? Srećom, Slackware uključuje prelepi menadžer ekrana prigodno nazvan screen. screen je emulator terminala koji ima mogućnosti virtuelnih terminala. Pokretanje screen-a prikazuje kratki uvod, i onda vas baca u terminal. Za razliku od standardnih virtuelnih terminala, screen ima sopstvene komande. Sve screen komande imaju prefiks Crtl+A tastere. Na primer, Ctrl+A+C će otvoriti novu sesiju terminala. Ctrl+A+N će prebaciti u sledeći terminal. Ctrl+A+P prebacuje na prethodni terminal.

screen takođe podržava otkačivanje i ponovno kačenje na screen sesije što je posebno korisno za udaljene sesije preko ssh i telnet komandi, (više o njima kasnije). Ctrl+A+D će otkačiti trenutno pokrenut screen. Izvršavanje screen -r će izlistati sve trenutno pokrenute screen sesije na koje možete da se zakačite.

% screen -r
There are several suitable screens on:
     1212.pts-1.redtail      (Detached)
     1195.pts-1.redtail      (Detached)
     1225.pts-1.redtail      (Detached)
     17146.pts-1.sanctuary   (Dead ???)
Remove dead screens with 'screen -wipe'.
Type "screen [-d] -r [pid.]tty.host" to resume one of them. 

Pokretanjem screen -r 1212 ćete se ponovo zakačiti na prvi screen koji je izlistan. Prethodno sam pomenuo koliko je ovo korisno za udaljene sesije. Ukoliko bih bio ulogovan na udaljeni Slackware server preko ssh, a desi se nekim slučajem nestanak struje gde se nalazim, šta god da sam radio bi trenutno isparilo, što može biti užasna stvar za vaš server. Korišćenje screen komande sprečava ovo tako što otkači moju sesiju ukoliko se prekine veza. Kada povratim svoju konekciju, mogu ponovo zakačiti svoju screen sesiju i nastaviti tačno tamo gde sam stao.


Chapter 9 Struktura sistema fajlova

Već smo govorili o strukturi direktorijuma u Slackware Linux-u. Do sada bi trebalo da možete da pronađete ono što vam je potrebno na disku. Ali, sistem fajlova je nešto više od strukture direktorijuma.

Linux je višekorisnički operativni sistem u svakom pogledu, što se odrazilo i na sistem fajlova. Sistem čuva informacije kao što su pripadnost fajlova i dozvole za čitanje. Postoje i druge jedinstvenosti sistema fajlova kao što su linkovi i NFS montiranja. U ovom poglavlju će biti objašnjeni i višekorisnički aspekti sistema fajlova.


9.1 Fajlovi kao nečije vlasništvo

Sistem fajlova sadrži podatke o vlasništvu za svaki fajl i direktorijum na disku. Ovde su uključene informacije koji korisnik i grupa poseduje određeni fajl. Najlakši način da ovo vidite je sa komandom ls:

% ls -l /usr/bin/wc
-rwxr-xr-x   1 root     bin    7368 Jul 30  1999 /usr/bin/wc

Nas interesuju treća i četvrta kolona. One sadrže ime korisnika i grupe čiji je fajl. Vidimo da fajl pripada korisniku “root” i grupi “bin”.

Možemo lako promeniti vlasnika fajla sa: chown(1) (što je skraćenica od: “change owner”) i chgrp(1) (što je skraćenica od: “change group”). Ako želimo da za vlasnika fajla postavimo daemon onda koristimo chown:

# chown daemon /usr/bin/wc

Da bi promenili grupu kojoj pripada fajl u “root”, koristimo chgrp:

# chgrp root /usr/bin/wc

Takođe možemo koristiti chown da bi smo promenuli i korisnika i grupu čiji je fajl:

# chown daemon:root /usr/bin/wc

U prethodnom primeru smo korisnika i grupu mogli razdvojiti sa “.” a ne sa “:”. U suštini efekat je isti ali je korišćenje “:” pravilnije. “.” treba izbegavati i možda će biti uklonjena u sledećim verzijama chown da bi se omogućilo korišćenje korisničkih imena koja sadrže “.”. Ova imena su veoma popularna kod Windows Exchange servera i često se susreću u e-mail adresama kao na primer: mr.jones@example.com. U Slackware Linuxu, administratori su savetovani da se takva korisnička imena izbegnu jer su u upotrebi skripte koje koriste “.” da odvoje ime korisnika od naziva grupe kojoj pripada fajl ili direktorijum. U našem primeru komanda chmod bi protumačila mr.jones kao korisnik “mr” i grupa “jones”.

Posedovanje fajlova je veoma važan deo korišćenja Linuxa čak i kada ste jedini korisnik. Nekada ćete morati da popravite pripadanje fajla ili uređaja.


9.2 Dozvole

Dozvole su druga važna stavka višekorisničkog sistema fajlova. Njima se određuje ko može da čita, piše i izvršava fajlove.

Postoje četitri skupa dozvola. Svakom skupu odgovara određena pozicija oktalne cifre koja može imati različite vrednosti. Prve tri pozicije su za skupove dozvola koje se odnose na vlasnika, grupu kojoj pripada vlasnik i sve ostale. Pozicije su dodeljene respektivno. Četvrta oktalna cifra se koristi za postavljanje ID korisnika, ID grupe i lepljivi (sticky) bit. Oktalne vrednosti koje se odnose na dozvole su (takođe postoje i odgovarajuća slova koja su prikazana programima kao ls a može ih koristiti sa chmod):

Table 9-1. Oktalne vrednosti dozvola

Tip dozvole Oktalna vrednost Slovo dozvole
“sticky” bit 1 t
postavi ID korisnika 4 s
postavi ID grupe 2 s
čitanje 4 r
pisanje 2 w
izvršavanje 1 x

Da biste dobili oktalan broj koji reprezentuje skup dozvola, sabirate pojedinačne vrednosti dozvola u skupu (pojedinačne vrednosti dozvola vidimo iz gornje tabele). Recimo za “čitanje” i “pisanje”, bi bilo “6”.

bash-ove podrazumevane dozvole su:

% ls -l /bin/bash
-rwxr-xr-x   1 root     bin  477692 Mar 21 19:57 /bin/bash

Prva crtica bi bila zamenjena sa “d” da se radi o direktorijumu. Zatim su prikazane tri grupe dozvola (dozvole vlasnika, grupe kojoj vlasnik pripada, i svih ostalih). Vidimo da vlasnik ima dozvolu da čita, piše i izvršava (rwx), grupi je dozvoljeno samo da čita i izvršava (r-x), kao i svim ostalima (r-x).

Kako bismo postavili dozvole drugog, proizvoljnog fajla iste kao u predhodnom primeru? Prvo, napravimo neki fajl koji će nam poslužiti kao primer:

% touch /tmp/example
% ls -l /tmp/example
-rw-rw-r---  1 david    users    0 Apr 19 11:21 /tmp/example

Koristićemo chmod(1) (što je skraćenica od “change mode”) da postavimo dozvole na naš primer. Saberite oktalne brojeve za dozvole koje želite. Ako vlasnik treba da čita, piše i izvršava, onda imamo vrednost 7. Čitanje i izvršavanje je 5. Ovo lepo uklopljeno sa chmod bi izgledalo ovako:

% chmod 755 /tmp/example
% ls -l /tmp/example
-rwxr-xr-x   1 david    users    0 Apr 19 11:21 /tmp/example

Sada se verovatno pitate: “A čime su određene dozvole koje se postavljaju na novi fajl?” Odgovor je jednostavan. bash ima ugrađen programčić nazvan umask, koji se inače nalazi u većini Unix školjki. I on kontroliše koje će se dozvole postaviti na novi fajl. Već je bilo reči o bash-ovim ugrađenim programima do nekog nivoa u Section 8.3.1. Na umask se treba malo navići. Funkcioniše slično kao chmod, samo obrnuto. Vi postavite oktalne vrednost akcija (dozvola) koje ne želite da budu dozvoljene u novo-kreiranim fajlovima. Podrazumevana vrednost za umask je 0022.

% umask
0022
% umask 0077
% touch tempfile
% ls -l tempfile
-rw--------  1 david    users    0 Apr 19 11:21 tempfile

Za više informacija o bash-u pogledajte man stranice.

Za postavljanje specijalnih dozvola sa chmod saberite oktalne vrednosti dozvola koje postavljate i smestite ih u prvu kolonu. Na primer, za postavljanje dozvola korisnika i grupe ( eng. “set user ID” i “set group ID”) postavimo “6”. Dakle:

% chmod 6755 /tmp/example
% ls -l /tmp/example
-rwsr-sr-x   1 david    users    0 Apr 19 11:21 /tmp/example


Ako vas ovi brojevi zbunjuju, uz chmodmožete koristiti slova. A šta koje slovo predstavlja se vidi iz sledećeg primera:

Vlasnik u
Grupa g
Ostali o
Svi gore navedeni a

Da bi smo prethodni primer uradili na ovaj način potrebno je nešto više kucanja:

% chmod a+rx /tmp/example
% chmod u+w /tmp/example
% chmod ug+s /tmp/example

Neko preferira slova, a neko brojeve, sve u svemu rezultat je uvek isti.

Oktalni format je obično brži i češće se koristi u skriptama. Mada su slova u nekim situacijama moćnije sredstvo. Na primer, koristeći brojeve je teže promeniti jednu grupu dozvola a da se ostale očuvaju, što je veoma lako sa slovima.

% ls -l /tmp/
-rwxr-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
-rwxr-x---   1 alan    users    0 Apr 19 11:21 /tmp/example1
----r-xr-x   1 alan    users    0 Apr 19 11:21 /tmp/example2
% chmod g-rwx /tmp/example?
-rwx---r-x   1 alan    users    0 Apr 19 11:21 /tmp/example0
-rwx------   1 alan    users    0 Apr 19 11:21 /tmp/example1
-------r-x   1 alan    users    0 Apr 19 11:21 /tmp/example2

Spominjali smo postavljanje dozvola vezane za korisnike i grupe na nekoliko mesta. Možda se pitate šta je ovo. Obično, kada pokrenete program, on se izvršava pod vašim korisničkim imenom sa dozvolama koje vi posedujete. Isto važi i za vašu grupu. Kada ga pokrenete, izvršava se pod grupom kojoj vi pripadate. Sa “set user ID” možete podesiti da se program uvek pokreće sa pravima jednog istog korisnika (kao na primer “root”). “Set group ID” je slično kao za korsnika, samo što se odnosi na grupu.

Dobro pazite sa ovim, jer možete otvoriti velike bezbednosne rupe na vašem sistemu. Ako često korsitite “set user ID ” i “set group ID” koje poseduje korisnik root, dozvoljavate da svako pokreće taj program kao root. Kako root nema nikakvih ograničenja na sistemu, vidite da ovo može biti velik bezbednosni problem. Ukratko, nije loše dozvoliti programu ono što može određeni korisnik ili grupa, ali samo za neke obične stvari.


9.3 Veze (linkovi)

Linkovi su pokazivači između fajlova. Sa njima je moguće da fajlovi postoje na više mesta i da im se može pristupati sa više imena. Postoje dve vrste linkova (veza): hard (kruti) i soft (slabi).

Krute veze su imena za određene fajlove. Mogu da postoje samo na jednom sistemu fajlova i uklanjaju se samo kada se pravo ime uklanja sa sistema. Veoma su korisni u nekim slučajevima, mada se mnogim korisnicima slabe veze čine primenjivijim.

Slabe veze, takođe zvane i simboličke veze (eng. “symbolic link”) mogu da pokazuju na fajl koji se nalazi van sistema fajlova. To je mali fajl koji sadrži samo najnužnije informacije. Simboličke linkove možete dodavati ili uklanjati bez uticaja na fajl na koji se odnose. Simbolički linkovi mogu da pokazuju i na direktorijume. Na primer, često je /var/tmp simbolički link ka /tmp.

Linkovi nemaju svoj skup dozvola, već se na njih odnose dozvole fajla ili direktorijuma na koji pokazuju. Slackware obično koristi simboličke veze. Evo jednog primera:

% ls -l /bin/sh
lrwxrwxrwx   1 root     root     4 Apr  6 12:34 /bin/sh -> bash

sh školjka pod Slackware-om je praktično bash. Uklanjanje linkova se obavlja komandom rm, a kreiranje sa ln. O ovim komandama će biti više reči u Chapter 10.

U pojedinim situacijama je važno obraćati pažnju na simboličke veze. Jednom sam radio na kompjuteru koji nikako nije mogao da snimi podatke na disketu. Postojale su dve pokvarene simboličke veze. Obično bi se ovo temeljnom proverom otkrilo ranije.


9.4 Montiranje uređaja

Kao što je već bilo reči u Section 4.1.1, svi uređaji u vašem kompjuteru čine jedan veliki sistem fajlova. Različite particije na hard disku, optički uređaji, disketna jedinica su smešteni u jednom istom drvetu. Da bi smo ove uređaje pripojili fajl sistemu kako bi smo im mogli pristupati, moramo koristiti komande: mount(1) i umount(1).

Neki su uređaji automatski montirani kada upalite kompjuter, i oni se nalaze u fajlu /etc/fstab. Sve što želite da bude automatski montirano, mora biti ovde navedeno. Ostale uređaje će te morati manualno montirati svaki put kada želite da ih koristite.


9.4.1 fstab

Pogledajmo primer fajla /etc/fstab:

% cat /etc/fstab
/dev/sda1       /               ext2        defaults        1   1
/dev/sda2       /usr/local      ext2        defaults        1   1
/dev/sda4       /home           ext2        defaults        1   1
/dev/sdb1       swap            swap        defaults        0   0
/dev/sdb3       /export         ext2        defaults        1   1
none            /dev/pts        devpts      gid=5,mode=620  0   0
none            /proc           proc        defaults        0   0
/dev/fd0        /mnt            ext2        defaults        0   0
/dev/cdrom      /mnt/cdrom      iso9660     ro              0   0

U prvoj koloni su imena uređaja. U ovom slučaju su to pet particija na dva hard diska, dva posebna sistema fajlova kojima nije potreban uređaj, floppy i CD-ROM. U drugoj koloni je mesto gde će uređaj biti montiran. Ovo je naziv i putanja direktorijuma sem u slučaju swap particije. Treća kolona je tip sistema fajlova. Obično je za linux ext2 (second extended filesystem), za CD-ROM uređaj je iso9660, a za Windows-bazirane particije su msdos ili vfat.

Četvrta kolona je niz opcija koje se odnose na montirani fajl sistem. Podrazumevane opcije su sasvim dovoljne. Uređaji koji su predviđenji samo za čitanje bi trebali da imaju ro opciju. Ima veoma mnogo opcija koje se mogu koristiti. Vidite man stranicu za fstab(5) za više informacija. Poslednje dve kolone koristi fsck i druge komande koje rukuju uređajima. Ovo takođe možete detaljnije pročitati na man stranicama.

Kada instalirate Slackware Linux, program za podešavanje će sam kreirati veći deo fajla fstab.


9.4.2 mount i umount

Povezati neki uređaj za vaš fajl sistem je lako. Potrebno je samo koristiti mount komandu, sa još nekim opcijama. Ovo može biti uprošteno ako je uređaj naveden u fajlu /etc/fstab. Na primer, recimo da da ja želim da montiram moj CD-ROM uređaj i da moj fstab fajl izgleda kao gore naveden, mount bih koristio ovako:

% mount /cdrom

Kako se gore navedena putanja već nalazi u fajlu fstab, mount koristi opcije tamo navedene. Da uređaj nije bio naveden u fajlu fstab, uz mount bih trebao da navedem još neke opcije:

% mount -t iso9660 -o ro /dev/cdrom /cdrom

Gornja komanda sadrži iste informacije kao i primer u fajlu fstab, ali će mo se ipak ovde malo zadržati. -t iso9660 je tip fajl sistema uređaja koji se montira. U našem slučaju je to iso9660 sistem fajlova koji CD-ROM uređaji najčešće koriste.-o ro govori da je uređaj samo za čitanje. /dev/cdrom je ime uređaja koji se montira a /cdrom je lokacija gde se uređaj montira.

Pre nego što izvadite CD, disketu ili drugi slični uređaj koji je trenutno montiran, morate da ga demontirate. Ovo se obavlja sa umount komandom. Nemojte pitati gde nestade ono “n” jer vam nebismo mogli reći. Kao argument za umount se može koristiti ili putanja uređaja ili lokacija montiranja. Za demontiranje CD-ROM-a bi obe sledeće komande isto radile:

# umount /dev/cdrom
# umount /cdrom

9.5 NFS montiranja

NFS je skraćenica za “Network Filesystem”, ili Mrežni fajl sistemi. Oni nisu deo stvarnog fajl sistema, ali se mogu dodavati na montirani fajl sistem.

Veliki Unix sistemi često dele iste programe ili direktorijume. Problem kopiranja fajlova na svaki pojednačni kompjuter u sistemu je rešen sa NFS. Fajl ili direktorijum koji je potreban se nalazi na jednom kompjuteru a drugi ga samo montiraju na svoj kompjuter i koriste kao da je baš kod njih.

Pogledajte Section 5.6.2 i man stranice: exports(5), nfsd(8) i mountd(8) za više informacija.


Chapter 10 Upravljanje fajlovima i direktorijumima

Linuks operativni sistem najviše liči na Unix. Tradicionalno, Unix sistemi su orjentisani za rad iz komandne linije. Mi naravno da imamo grafički interfejs u Slackware-u, ali komandna linija je i dalje osnovni nivo kontrole sistema. Zbog toga je neophodno da se poznaju neke od osnovnih komandi za upravljanje fajlovima.

Sledeće poglavlje, uz pomoć primera, objašnjava uobičajene komande za manipulaciju sa fajlovima. Postoji mnogo drugih komandi, ali ove će vam za početak biti dovoljne. Komande su ovde samo kratko opisane, dok ćete detaljnije informacije dobiti iz njihovih man strana.


10.1 Navigacija: ls, cd i pwd

10.1.1 ls

Ova komanda prikazuje (lista) fajlove u direktorijumu. Windows i Dos korisnici primetiće sličnost sa dir komandom. Samo, ls(1) će prikazti fajlove u tekućem direktorijumu. Da biste videli šta je u root direktorijumu, izvršite ove komande:

% cd /
% ls
bin   cdr    dev  home  lost+found  proc  sbin   tmp  var
boot  cdrom  etc  lib   mnt         root  suncd  usr  vmlinuz

Problem koji ima većina ljudi sa ovom komandom je što se na osnovu izlaza ne može lako odrediti šta je direktorijum a šta fajl. Neki korisnici više vole da na komandu ls dodaju opcije listinga, kao na primer:

% ls -FC
bin/   cdr/    dev/  home/  lost+found/  proc/  sbin/   tmp/  var/
boot/  cdrom/  etc/  lib/   mnt/         root/  suncd/  usr/  vmlinuz

Direktorijumi dobijaju znak deljenje, eng. slash (/), na kraju imena, izvršni fajlovi dobijaju zvezdicu, eng. asterisk, na kraju imena, itd.

ls se takođe može koristiti za dobijanje drugih informacija o fajlu. Na primer, da biste videli vreme kreiranja, vlasništva i dozvole, trebali biste da pogledate detaljniji prikaz:

% ls -l
drwxr-xr-x   2 root     bin          4096 May  7 09:11 bin/
drwxr-xr-x   2 root     root         4096 Feb 24 03:55 boot/
drwxr-xr-x   2 root     root         4096 Feb 18 01:10 cdr/
drwxr-xr-x  14 root     root         6144 Oct 23 18:37 cdrom/
drwxr-xr-x   4 root     root        28672 Mar  5 18:01 dev/
drwxr-xr-x  10 root     root         4096 Mar  8 03:32 etc/
drwxr-xr-x   8 root     root         4096 Mar  8 03:31 home/
drwxr-xr-x   3 root     root         4096 Jan 23 21:29 lib/
drwxr-xr-x   2 root     root        16384 Nov  1 08:53 lost+found/
drwxr-xr-x   2 root     root         4096 Oct  6 12:47 mnt/
dr-xr-xr-x  62 root     root            0 Mar  4 15:32 proc/
drwxr-x--x  12 root     root         4096 Feb 26 02:06 root/
drwxr-xr-x   2 root     bin          4096 Feb 17 02:02 sbin/
drwxr-xr-x   5 root     root         2048 Oct 25 10:51 suncd/
drwxrwxrwt   4 root     root       487424 Mar  7 20:42 tmp/
drwxr-xr-x  21 root     root         4096 Aug 24 03:04 usr/
drwxr-xr-x  18 root     root         4096 Mar  8 03:32 var/

Da biste mogli da vidite skrivene fajlove u direktorijumu ova komanda će vam to omogućiti:

% ls -a
.              bin   cdrom  home        mnt   sbin   usr
..             boot  dev    lib         proc  suncd  var
.pwrchute_tmp  cdr   etc    lost+found  root  tmp    vmlinuz

Fajlovi koji počinu sa tačkom (tzv. tačka fajlovi, dot fajlovi) su skriveni kada se pokrene samo ls. Možete ih videti samo ako prosledite -a opciju.

Ova komanda ima mnogo opcija koje se mogu naći u man stranici. Ne zaboravite da opcije možete kombinovati tako da dobijete izlaz koji vama odgovara.


10.1.2 cd

cd komanda se koristi da se promeni radni direktorijum. Samo kucajte cd i nakon toga putanju do direktorijuma u koji hoćete da se prebacite. Evo nekih primera:

darkstar:~$ cd /bin
darkstar:/bin$ cd usr
bash: cd: usr: No such file or directory
darkstar:/bin$ cd /usr
darkstar:/usr$ ls
bin
darkstar:/usr$ cd bin
darkstar:/usr/bin$

Primetite da ako ne stavimo kosu crtu na početku to znači da hoćemo da pređemo u poddirektorijum. Ako izvršite samo cd bez ikakve opcije tada prelazite u vaš korisnički, početni, direktorijum.

Komanda cd nije kao druge komande. Ona je ugrađena u školjku. Komande ugrađene u školjku su obrađene u Section 8.3.1. U suštini to znači da ova komanda nema man stranicu. Umesto toga možete koristiti pomoć iz školjke. Na primer:

% help cd

će prikazati opcije za cd i kako da ih koristite.


10.1.3 pwd

Komanda pwd se koristi da bi se prikazala vaša trenutna lokacija. Da biste to videli samo kucajte pwd . Na primer:

% cd /bin
% pwd
/bin
% cd /usr
% cd bin
% pwd
/usr/bin

10.2 Prikazivači: more, less, i most

10.2.1 more

more(1) je alat za prikazivanje. Često je izlaz nekih komandi toliko velik da ne može da stane na jedan ekran. Pojedinačne komande ne vode brigu kako da prikažu podatke koje izlaze na ekran nego se to prepušta prikazivačima.

Komanda more prelama izlaz na pojedinačne ekrane i čeka da se pritisne razmaknica (space bar) pre nego što prikaže sledeći ekran. Pritiskanjem Entera pomera se za po jedan red. Evo dobrog primera:

% cd /usr/bin
% ls -l

Ovo bi trebalo da prikaže podužu listu. Da biste prikazali ekran po po ekran samo izlaz preusmerite na more:

% ls -l | more

Uspravna crta predstavlja uputstvo komandnom okruženju da izlaz ls komande preusmeri na ulaz komandi more. Možete skoro sve preusmeravati na komandu more, ne samo ls. Preusmerivanje je takođe obrađeno u Section 8.2.3.


10.2.2 less

Komanda more je veoma zgodna, ali niste u mogućnosti da se vraćate na predhodne ekrane. Takvu funkcionalnost vam omogućuje komanda less. Koristi se na isti način kao i more komanda, tako da ćemo predhodni primer i ovde iskoristiti. Kao što vidite, less je više nego more. Džust Kremers je to ovako rekao: way:

less is more, but more more than more is, so more is less less, so use more less if you want less more.


10.2.3 most

Gde su more i less nemoćni, most(1) preuzima stvar. Ako je less više od more, tada je most više od less. Dok ostali prikazivači prikazuju samo jedan fajl, u isto vreme komanda most je u stanju da prikazuje neograničen broj fajlova, sve dok je svaki prozor za prikazivanje najmanje 2 reda velik. Komanda most ima mnogo opcija pa pogledajte u njenu man stranicu.


10.3 cat i echo

10.3.1 cat

cat(1) je skraćeno od “concatenate”. U početku je bila napravljena za spajanje tekst fajlova u jedan, ali se sada može koristiti za mnoge druge stvari.

Da biste spojili jedan ili više fajlova , samo nabrojite fajlove posle cat komande i preusmerite izlaz u novi fajl. Komanda cat radi sa standardnim ulazom i izlazom, tako da treba da koristite standardne karaktera školjke za redirekciju. Na primer:

% cat file1 file2 file3 > bigfile

Komanda uzima sadržaje iz file1, file2, i file3 i spaja ih sve zajedno. Rezultat komande se šalje na standardni izlaz.

Komandu cat možete da koristite za prikazivanje fajlova. Dosta ljudi cat-uje tekst fajlove kroz more ili less komande, kao na primer:

% cat file1 | more

Ovo će prikazati file1 fajl preusmeravanjem preko komandamore tako da ćete imati prikaz ekran po ekran.

Jedna od čestih primena komande cat je za kopiranje fajlova. Možete kopirati bilo koji fajl sa cat, kao na primer:

% cat /bin/bash > ~/mybash

/bin/bash program se kopira u vaš home direktorijum i naziva se mybash.

Komanda cat ima mnogo upotreba i ovde smo obradili samo nekoliko njih. Obzirom da cat daje standardne ulaze i izlaze, ona je idealna za upotrebu u skriptama školjke ili kao deo drugih kompleksnijih komandi.


10.3.2 Komanda echo

Komanda echo prikazuje navedeni tekst na ekran. Samo treba da navedete tekst koji želite da se ispiše posle komande echo . Podrazumevano echo ispisuje string i prelazi u novi red. Ako prosledite opciju -n, ona će sprečiti prelazak u novi red. Opcija-e će prouzrokovati da echo komanda traži escape znak u stringu i da ga izvrši.


10.4 Kreiranje: touch i mkdir

10.4.1 touch

Komanda touch se koristi da bi se promenilo vreme kreiranje fajla. Ako navedeni fajl ne postoji, touch će kreirati fajl nulte dužine sa navedenim imenom. Ako hoćete da obeležite navedeni fajl sa sistemskim vremenom potrebno je da izvršite sledeću komandu:

% ls -al file1
-rw-r--r--    1 root     root        9779 Feb  7 21:41 file1
% touch file1
% ls -al file1
-rw-r--r--    1 root     root        9779 Feb  8 09:17 file1

Postoji nekoliko opcija za touch komandu, uključujući opcije za modifikovanje vremena, vremena pristupa fajlu i dr. Pogledajte man stranicu.


10.4.2 mkdir

mkdir(1) će kreirati direktorijum. Prilikom pokretanja komande samo navedite ime direktorijuma kojeg hoćete da kreirate. U ovom primeru kreiramo hejaz direktorijum u tekućem direktorijumu.:

% mkdir hejaz

Takođe možete navesti i putanju, kao na primer:

% mkdir /usr/local/hejaz

Opcija -p navodi da se kreira roditeljski direktorijum, ukoliko on ne postoji komanda mkdir će napraviti roditeljski direktorijum. Predhodni primer neće uspeti ako ne postoji /usr/local.Opcija -pnapraviće i /usr/local i /usr/local/hejaz:

% mkdir -p /usr/local/hejaz

10.5 Kopiranje i premeštanje

10.5.1 cp

cp kopira fajlove. DOS korisnici primetiće sličnost sa copy komandom. Postoji mnogo opcija za cp komandu, pa bi trebalo da pogledate man stranicu pre nego što je počnete koristiti.

Najčešća upotreba komande cp je da kopira fajl sa jedne lokacije na drugu. Kao u primeru:

% cp hejaz /tmp

Ovo kopira fajl hejaz iz tekućeg direktorijuma u /tmp direktorijum.

Mnogi korisnici žele da sačuvaju vremenske atribute fajla netaknute prilikom kopiranja, kao u primeru koji sledi:

% cp -a hejaz /tmp

Sa ovom opcijom obezbeđujemo da vremenski atributi ostanu nepromenjeni.

Rekruzivno kopiranje sadržaja direktorijuma, sa svim njegovim poddirektorijumima i fajlovima, vrši se na sledeći način:

% cp -R mydir /tmp

Ovo će kopirati direktorijum mydir u /tmp direktorijum.

Takođe ako želimo da kopiramo direktorijum ili fajl, a da nam ostanu nepromenjena prava pristupa i vremenski atributi, potrebno je da koristimo komandu cp -p.

% ls -l file
-rw-r--r--    1 root     vlad            4 Jan  1 15:27 file
% cp -p file /tmp
% ls -l /tmp/file
-rw-r--r--    1 root     vlad            4 Jan  1 15:27 file

cp ima još mnogo drugih opcija koje su obajašnjene u okviru man strana.


10.5.2 mv

mv(1) premešta fajl sa jednog mesta na drugo.

% mv oldfile /tmp/newfile

mv ima nekoliko korisnih opcija koje su objašnjene u man stranici. U praksi, mv se gotovo nikada ne koristi sa opcijama.


10.6 Brisanje: rm i rmdir

10.6.1 rm

rm(1) uklanja fajlove i stabla direktorijuma. DOS korisnici će primetiti sličnost sa del i deltree komandama. rm može biti veoma opasan ukoliko čovek nije oprezan. Iako je ponekad moguće povratiti obrisane fajlove, to može biti komplikovano (i potencijalno skupo) i izlazi van tema koje se obrađuju u ovoj knjizi.

Da biste uklonili jedan fajl, navedite njegovo ime kada pokrenete rm:

% rm file1

Ako je dozvola za upis u fajl uklonjena, dobićete "permission denied" poruku greške. Da biste obrisali fajl bez obzira na sve dozvole, prosledite -f opciju, kao na primer:

% rm -f file1

Da biste obrisali ceo direktorijum, koristite zajedno -r i -f opcije. Ovo je dobar primer kako obrisati ceo sadržaj hard diska. Ovo stvarno ne biste želeli, ali evo komande :

# rm -rf /

Budite veoma oprezni sa rm; možete sami sebi zagorčati život... Postoji nekoliko opcija u komadnoj liniji koje su detaljno opisane u man stranici.


10.6.2 rmdir

rmdir(1) uklanja direktorijume sistema fajlova. Direktorijum mora biti prazan pre nego što će biti uklonjen. Sintaksa je jednostavna:

% rmdir <direktorijum>

Ovaj primer uklanjanja hejaz poddirektorijum iz radnog direktorijuma:

% rmdir hejaz

Ako direktorijum ne postoji, rmdir će vam to reći. Takođe možete navesti i punu putanju do direktorijuma kojeg hoćete da uklonite, kao što je prikazano u sledećem primeru:

% rmdir /tmp/hejaz

Sledeći primer uklanja hejaz direktorijum unutar /tmp direktorijuma.

Takođe možete ukloniti direktorijum i njegove poddirektorijume ako prosledite -p opciju.

% rmdir -p /tmp/hejaz

Ovo prvo pokušava da ukloni hejaz direktorijum unutar /tmp. Ako je to uspešno urađeno, tada pokušava da ukloni /tmp. rmdir će nastaviti tako sve dok se ne pojavi greška ili dok se ne obriše celo stablo direktorijuma.


10.7 Povezivanje fajlova sa ln

ln(1) se koristi da se kreira vezu (link) između fajlova. Te veze mogu da budu čvrste (hard) ili simbolične (soft). Razlike između te dve vrste veza su obrađene u Section 9.3. Ukoliko hoćete da napravite simboličnu vezu na direktorijum /var/media/mp3 i postavite taj link u vaš korisnički direktorijum, trebali biste da uradite sledeće:

% ln -s /var/media/mp3 ~/mp3

Opcija -s govori ln da napravi simbolični link. Sledeća opcija je meta (direktorijum na koji treba da napravimo link), a poslednja opcija nam definiše ime linka koji kreiramo. U ovom slučaju, fajl možemo nazvati mp3 u vašem home direktorijumu koji će pokazivati na /var/media/mp3.

Pravljenje črvste (krute, eng. hard) veze je veoma jednostavno. Sve što treba da uradite je da ne stavite -s opciju. Čvrste veze se ne koriste da ukazuju na direktorijume ili fajlove u drugim sistemima fajlova. Da biste kreirali čvrstu vezu /usr/bin/email na /usr/bin/mutt, samo kucajte sledeće:

# ln /usr/bin/mutt /usr/bin/email

Chapter 11 Kontrola procesa

Svaki program koji je pokrenut zove se proces. Pod procesom se mogu podrazumevati sve one stvari od X Window sistema, pa do sistemskih programa (demona) koji se pokreću kada se računar uključi. Svaki proces kada se pokrene je u vlasništvu korisnika koji ga je pokrenuo. Procesi koji su pokrenuti u toku butovanja obično su u vlasništvu root ili nobody korisnika. Procesi koje ste vi startovali biće pokrenuti u vaše ime. Procese koje su pokrenuli drugi korisnici biće njihovi.

Vi kontrolišete sve procese koje ste pokrenuli. Uz to, root korisnik ima kontrolu nad svim procesima na sistemu, uključujući i one koje su pokrenuli drugi korisnici. Procesi se mogu kontrolisati i pregledavati preko dosta programa i komandi školjke.


11.1 Pozadinski procesi

Programi koji su pokrenuti iz komadne linije izvršavaju se u prvom planu ili pročelju (foreground). Na taj način se može videti izlaz programa i vršiti interakcija sa programom. Međutim, postoje situacije kada ne želimo da izvršavanje programa zauzima naš ekran. To se zove pokretanje programa u pozadini, i to možemo uraditi na više načina.

Prvi način da stavimo proces u pozadinu je da dodamo ampersand (znak &) posle komande koju pokrećemo. Na primer, pretpostavimo da hoćemo da koristimo konzolni mp3 player amp koji bi trebao da reprodukuje muziku iz direktorijuma ispunjenog sa mp3 datotekama, a u istovreme trebamo nešto drugo da radimo na istom terminalu. Sledeća komanda trebala bi da pokrene amp u pozadini:

% amp *.mp3 &

Program će se pokrenuti uobičajno, i vratiće prompt.

Drugi način da se stavi program u pozadinu je da to uradimo dok je on pokrenut. Prvo, pokrenite program. Dok je pokrenut, pritisnite Control+z. To će suspendovati proces. Suspendovan proces je jednostavno pauziran. On se momentalno zaustavio, ali se može pokrenuti ponovo u bilo koje vreme. Onda kada je proces suspendovan, imaćete ponovo prompt. Proces možete staviti u pozadinu ako otkucate:

% bg

Sada se suspendovan proces pokreće u pozadini.


11.2 Procesi u prvom planu

Ako trebate da stupite u interakciju sa pozadinskim procesom, možete da ga vratite u prvi plan. Ako imate samo jedan pozadinski proces, vratićete ga u prvi plan ako otkucate:

% fg

Ako se program nije završio, on će uzeti kontrolu nad vašim terminalom tako da vam se neće vratiti prompt. Ponekad, programi se i završe dok su pokrenuti u pozadini. U toj prilici, dobićete poruku sličnu ovoj:

[1]+  Done              /bin/ls $LS_OPTIONS

Ona vam govori da je pozadinski proces (u ovom slučaju ls - nije nešto interesantan) komplentiran.

Moguće je imati više pozadinskih procesa u isto vreme. U tom slučaju, potrebno je da znate koji proces treba da vratite u prvi plan. Ako otkucate samo fg u prvi plan ćete staviti onaj proces je zadnji stavljen u pozadinu. Šta ako imate masu pozadinskih procesa? Na sreću, u bash-u postoji komanda za izlistavanje svih procesa. Ona se zove jobs i izlaz joj je otprilike ovakav:

% jobs
[1]   Stopped                 vim
[2]-  Stopped                 amp
[3]+  Stopped                 man ps

Ovde vidimo listu svih procesa koji su u pozadini. I kao što vidite, svi su stopirani. Što znači da su procesi suspendovani. Brojevi su sortiranu u odnosu na ID svih pozadinskih procesa. ID sa znakom za plus (man ps) je proces koji će biti u prvom planu ako otkucate fg.

Ako hoćete da stavite u prvi plan vim, trebali biste da otkucate:

% fg 1

i na taj način bićete ponovo na konzoli. Pozadinski procesi mogu da budu od velike koristi ako imate otvoren samo jedan terminal preko dialup konekcije. Možete da imate nekolicinu programa pokrenutih na jednom terminalu, i da prelazite sa jednog na drugi.


11.3 ps

Sada znate kako da prelazite sa jednog procesa na drugi ukoliko ste ih pokrenuli iz komadne linije. Isto tako znate da se mnogo procesa sve vreme odvija. Pa kako onda da se izlistaju svi ti programi? Dobro, koristićemo ps(1) komandu. Ova komanda ima tuce opcija, tako da ćemo ovde pokriti samo one najvažnije. Za kompletnu listu, pogledaj te man stranu za ps. Korišćenje man strana je do tančina objašnjeno u Section 2.1.1.

Jednostavno otkucajte ps i imaćete listing svih programa pokrenutih na vašem terminalu. Tu se ubrajaju procesi koji su u prvom planu (tu spada i školjka koju koristite, i naravno, ps lično). Takođe su izlistani pozadinski procesi. Mnogo puta, to će biti veoma kratka lista:

Figure 11-1. Osnovni izlaz ps komande

% ps
   PID TTY          TIME CMD
  7923 ttyp0    00:00:00 bash
  8059 ttyp0    00:00:00 ps

Čak i ako ovde nemamo puno procesa, informacije su veoma uobičajne. Imaće te iste kolone ako koristite ps komandu nebitno koliko je procesa pokrenuto. Pa da vidimo šta sve to znači?

Dakle, PID je ID procesa. Svim pokrenutim procesima je dat jedinstven identifikator koji je u rangu od 1 do 32767. Svakom procesu je dodeljen sledeći slobodan PID. Kada se proces završi (ili se ubije, što ćete videti u sledećem poglavlju), on predaje svoj PID. Kada se dosegne do maksimalnog PID-a vraće se najmanjem slobododnom PID-u.

TTY kolona se odnosi na terminal na kome je pokrenut proces. Pokretanjem ps komande bez ikakvih opcija imaćete listu procesa tekućeg terminala, tako da ću svi procesi dati iste informacije u TTY koloni. Kao što vidite, oba izlistana procesa su pokrenuta na ttyp0. To nam govori da su procesi ili pokrenuti sa udaljene lokacije ili sa X terminala i slično.

TIME kolona određuje koliko se CPU vremena proces izvršava. Ovo vreme ne treba mešati sa vremenom izvršavanja procesa. Zapamtite da je Linux višekorisnički operativni sistem i da se više procesa izvršava u isto vreme, i da ti procesi uzimaju malu porciju procesorskog vremena. Tako da TIME kolona pokazuje vreme koje je nešto menje od aktuelnog vremena izvršavanja procesa. Ako vidite vrednost veću od nekoliko minuta u TIME koloni, znači da nešto nije u redu.

Konačno, CMD kolona govori o kom programu je reč. Ona samo prikazuje osnovni program, i nikakve opcije komande ili slične informacije. Da biste dobili takve informacije, potrebno je da koristite jednu od mnogih opcija ps komande. O njima ćemo prodiskutovati ukratko.

Kompletnu listu svih procesa koji se izvršavaju na vašem sistemu možete dobiti pravilnom upotrebom ovih opcija. To će verovatno dati veliki listing procesa (pedeset pet na mom laptopu u trenutku kada unosim ovu rečenicu), tako da ću skratiti izlaz:

% ps -ax
 PID TTY      STAT   TIME COMMAND
   1 ?        S      0:03 init [3]
   2 ?        SW     0:13 [kflushd]
   3 ?        SW     0:14 [kupdate]
   4 ?        SW     0:00 [kpiod]
   5 ?        SW     0:17 [kswapd]
  11 ?        S      0:00 /sbin/kerneld
  30 ?        SW     0:01 [cardmgr]
  50 ?        S      0:00 /sbin/rpc.portmap
  54 ?        S      0:00 /usr/sbin/syslogd
  57 ?        S      0:00 /usr/sbin/klogd -c 3
  59 ?        S      0:00 /usr/sbin/inetd
  61 ?        S      0:04 /usr/local/sbin/sshd
  63 ?        S      0:00 /usr/sbin/rpc.mountd
  65 ?        S      0:00 /usr/sbin/rpc.nfsd
  67 ?        S      0:00 /usr/sbin/crond -l10
  69 ?        S      0:00 /usr/sbin/atd -b 15 -l 1
  77 ?        S      0:00 /usr/sbin/apmd
  79 ?        S      0:01 gpm -m /dev/mouse -t ps2
  94 ?        S      0:00 /usr/sbin/automount /auto file /etc/auto.misc
 106 tty1     S      0:08 -bash
 108 tty3     SW     0:00 [agetty]
 109 tty4     SW     0:00 [agetty]
 110 tty5     SW     0:00 [agetty]
 111 tty6     SW     0:00 [agetty]
 [izlaz skraćen]

Većina ovih procesa se pokreće u toku butovanja na većini sistema. Ja sam napravio nešto modifikacija na svom sistemu, tako da na vašem sistemu može biti malo drugačije. Ipak većina tih procesa su pokrenuti i na vašem sistemu. Kao što ste zapazili, ako ste ovako koristili ovu komandu, u listingu ćete imati i opcije komandi koje su kreirale procese. U skorašenje vreme, ranjivost kernela u ptrace je nametnula to da se ps komanda malo izmenila tako da ne prikazuje baš sve opcije sa kojim je pokrenuta neka komanda. Te komande su sada prikazane kao uokvirene u srednje zagrade kao u gore navedemom listigu za procese sa PID brojevima od 108 do 110. Isto tako su dodate još neke kolone i još neki ineresantni izlazi.

Prvo, većina ovih izlistanih procesa je pokrenuto na tty “?”. Oni nisu dodeljeni ni jednom određenom terminalu. Ovo uglavnom važi za demone, koji su primer procesa koji nisu zakačeni ni za jedan terminal. Značajniji demoni su sendmail, BIND, apache i NFS. Oni osluškuju zahteve koji dolaze od strane klijenata i i na te zahteve vraćaju ono što su klijenti zahtevali.

Drugo, postoji nova kolona: STAT. Ona pokazuje status procesa. S znači sleeping: taj proces čeka da se nešto dogodi. Z znači zombi proces. Zombi su oni procesi kod kojih je roditelj proces umro, i tako ostavo dete proces iza sebe. To nije dobro. D se odnosi na procese koji su u neprekidnom spavanju (uninterruptible sleep). Često ti procesi odbijaju da umru čak i kada im je predat SIGKILL signal. Više o SIGKILL možete da saznate u sledećem odeljku vezanom za kill komandu. W znači straničenje (paging). Mrtvi procesi su označeni sa X. Procesi označeni sa T su trasirani (traced), ili stopirani. R znači da su procesi pokrenuti.

Ako hoćete još informacija o pokrenutim procesima pokušajte ovako:

% ps -aux
 USER       PID %CPU %MEM   VSZ  RSS TTY      STAT START   TIME COMMAND
 root         1  0.0  0.0   344   80 ?        S    Mar02   0:03 init [3]
 root         2  0.0  0.0     0    0 ?        SW   Mar02   0:13 [kflushd]
 root         3  0.0  0.0     0    0 ?        SW   Mar02   0:14 [kupdate]
 root         4  0.0  0.0     0    0 ?        SW   Mar02   0:00 [kpiod]
 root         5  0.0  0.0     0    0 ?        SW   Mar02   0:17 [kswapd]
 root        11  0.0  0.0  1044   44 ?        S    Mar02   0:00 /sbin/kerneld
 root        30  0.0  0.0  1160    0 ?        SW   Mar02   0:01 [cardmgr]
 bin         50  0.0  0.0  1076  120 ?        S    Mar02   0:00 /sbin/rpc.port
 root        54  0.0  0.1  1360  192 ?        S    Mar02   0:00 /usr/sbin/sysl
 root        57  0.0  0.1  1276  152 ?        S    Mar02   0:00 /usr/sbin/klog
 root        59  0.0  0.0  1332   60 ?        S    Mar02   0:00 /usr/sbin/inet
 root        61  0.0  0.2  1540  312 ?        S    Mar02   0:04 /usr/local/sbi
 root        63  0.0  0.0  1796   72 ?        S    Mar02   0:00 /usr/sbin/rpc.
 root        65  0.0  0.0  1812   68 ?        S    Mar02   0:00 /usr/sbin/rpc.
 root        67  0.0  0.2  1172  260 ?        S    Mar02   0:00 /usr/sbin/cron
 root        77  0.0  0.2  1048  316 ?        S    Mar02   0:00 /usr/sbin/apmd
 root        79  0.0  0.1  1100  152 ?        S    Mar02   0:01 gpm
 root        94  0.0  0.2  1396  280 ?        S    Mar02   0:00 /usr/sbin/auto
 chris      106  0.0  0.5  1820  680 tty1     S    Mar02   0:08 -bash
 root       108  0.0  0.0  1048    0 tty3     SW   Mar02   0:00 [agetty]
 root       109  0.0  0.0  1048    0 tty4     SW   Mar02   0:00 [agetty]
 root       110  0.0  0.0  1048    0 tty5     SW   Mar02   0:00 [agetty]
 root       111  0.0  0.0  1048    0 tty6     SW   Mar02   0:00 [agetty]
 [izlaz skraćen]

Ovde imamo gomilu informacija. Prvo, imamo informacije koje se odnose na korisnike koji su pokrenuli procese, koliko sistemskih resurasa proces koristi ( %CPU, %MEM, VSZ i RSS kolone) i kojeg datuma je proces startovan. Očigledno je da ima puno informacija koje bi bile od koristi sistem adminstratoru. Postoji još nešto: informacije sada prelaze preko ivica ekrana i tako se ne vide u potpunosti. Opcija -w će forsirati ps komandu da prelama (wrap) duge linije.

Ovo nije baš preterano jednostavno, ali radi posao. Sada znate kako da dobijete kompletan listing svih procesa. Nisu sve to informacije koje možete dobiti o procesima. Pogledajte za više detalja man stranu za ps komandu. Ipak, opcije koji su navedene gore su najpopularnije i njih ćete najčešće koristiti.


11.4 kill

Dešava se da se program loše ponaša i da je potrebno ponovo da se pokrene. Program koji radi taj administrativni zadatak se zove kill(1) i koristi se za manipulaciju procesima na nekoliko načina. Najočigledniji način korišćenja je kada izdamo samo kill komandu i tako ubijemo proces. To je potrebno da uradite ako program koristi dosta resurasa sistema, ili vam je muka od toga šta on radi.

Da biste ubili proces, potrebno je znate njegov PID ili njegovo ime. Da biste dobili PID procesa , koristite ps komandu onako kako je objašnjeno u zadnjem odeljku. Na primer, za ubijanje procesa 4747, izdaćete sledeću komadnu:

% kill 4747

Zapazite da morate da budete vlasnik procesa da biste mogli da ga ubijete. To je tako zbog sigunosti. Da bi vam bilo dozvoljeno da ubijete procese koje su startovali drugi korisnici, bili biste u mogućnosti da radite dosta malicioznih stvari. Naravno, root može da ubije svaki proces na sistemu.

Postoji jedna varijacija kill komande koja se zove killall(1). Ovaj program radi baš ono što mu i ime govori: ubija sve pokrenute procese određenog naziva. Ako želite da ubijete sve pokrenute vim procese, trebali biste da otkucate sledeću komandu:

% killall vim

Jedan jedini, ili svi pokrenuti vim procesi će biti ubijeni. Ako to uradite kao root ubićete sve vim procese svih korisnika. Evo zanimljivog načina da uklonite svakog korisnika (uključujući i sebe) sa sistema:

# killall bash

Ponekad regularan kill ne odradi svoj posao. Određeni procesi neću da umru sa kill. Stoga je potrebno da koristite moćniju formu kill komande. Oko ovaj bezobrazni PID 4747 ne odgovara na vaš kill zahtev, trebali biste ovako :

% kill -9 4747

Na ovaj način zasigurno će proces 4747 umreti. Sličnu stvar možete da uradite i sa killall komandom. Sve ovo je odraz toga što šaljemo različite signale procesima. Regularan kill šalje SIGTERM (terminate) signal ka procesima, što govori da oni treba da završe ono što su započeli, očiste se, i izađu. kill -9 šalje SIGKILL (kill) signal procesima, i na taj način se proces obara. Na ovaj način procesu nije dozvoljno čišćenje, tako da ponekad može doći do toga da se podaci pokvare. Ovde imate na raspolaganju kompletnu listu signala. Listig signala možete dobiti ako otkucate sledeće:

% kill -l
  1) SIGHUP     2) SIGINT    3) SIGQUIT   4) SIGILL
  5) SIGTRAP    6) SIGABRT   7) SIGBUS    8) SIGFPE
  9) SIGKILL   10) SIGUSR1  11) SIGSEGV  12) SIGUSR2
 13) SIGPIPE   14) SIGALRM  15) SIGTERM  17) SIGCHLD
 18) SIGCONT   19) SIGSTOP  20) SIGTSTP  21) SIGTTIN
 22) SIGTTOU   23) SIGURG   24) SIGXCPU  25) SIGXFSZ
 26) SIGVTALRM 27) SIGPROF  28) SIGWINCH 29) SIGIO
 30) SIGPWR

Sa komandom kill treba da se koristi broj, dok ime signala (uz odbacicanje “SIG” prefiksa) treba da se koristi sa killall komandom. Evo još jednog primera:

% killall -KILL vim

Zadnja upotreba kill komande je restarovanje procesa. Slanjem SIGHUP omogućava da većina procesa ponovo pročita svoje konfiguracione fajlove. Ovo je od esecijalne koristi kada je potrebno da sistem ponovo učita konfiguracione fajlove nakon njihovog uređivanja.


11.5 top

Na kraju, postoji komadna koja prikazuje ažurirane inofrmacije o pokrenutim procesima na sistemu. Ta komanda se zove top(1), i ovako se pokreće:

% top

Ona će pokazati pun ekran informacija o procesima pokrenutim na sistemu, kao i sveobuhvatne informacije o sistemu. Tu spada prosečno opterećenje, broj procesa, CPU status, informacije o slobodnoj memoriji i detalji o procesima, uključujući PID, korisnike, prioritete, procesorsko i memorijsko zauzeće, vremena izvršavanja i ime programa.

 6:47pm  up 1 day,  18:01,  1 user,  load average: 0.02, 0.07, 0.02
61 processes: 59 sleeping, 2 running, 0 zombie, 0 stopped
CPU states:  2.8% user,  3.1% system,  0.0% nice, 93.9% idle
Mem:   257992K av,  249672K used,    8320K free,   51628K shrd,  78248K buff
Swap:   32764K av,     136K used,   32628K free,                 82600K cached

PID USER    PRI  NI  SIZE  RSS  SHARE  STAT  LIB %CPU %MEM  TIME COMMAND
 112 root     12   0 19376  18M   2468  R       0  3.7  7.5 55:53 X
4947 david    15   0  2136 2136   1748  S       0  2.3  0.8  0:00 screenshot
3398 david     7   0 20544  20M   3000  S       0  1.5  7.9  0:14 gimp
4946 root     12   0  1040 1040    836  R       0  1.5  0.4  0:00 top
 121 david     4   0   796  796    644  S       0  1.1  0.3 25:37 wmSMPmon
 115 david     3   0  2180 2180   1452  S       0  0.3  0.8  1:35 wmaker
4948 david    16   0   776  776    648  S       0  0.3  0.3  0:00 xwd
   1 root      1   0   176  176    148  S       0  0.1  0.0  0:13 init
 189 david     1   0  6256 6156   4352  S       0  0.1  2.4  3:16 licq
4734 david     0   0  1164 1164    916  S       0  0.1  0.4  0:00 rxvt
   2 root      0   0     0    0      0  SW      0  0.0  0.0  0:08 kflushd
   3 root      0   0     0    0      0  SW      0  0.0  0.0  0:06 kupdate
   4 root      0   0     0    0      0  SW      0  0.0  0.0  0:00 kpiod
   5 root      0   0     0    0      0  SW      0  0.0  0.0  0:04 kswapd
  31 root      0   0   340  340    248  S       0  0.0  0.1  0:00 kerneld
  51 root      0   0    48   48     32  S       0  0.0  0.0  0:00 dhcpcd
  53 bin       0   0   316  316    236  S       0  0.0  0.1  0:00 rpc.portmap
  57 root      0   0   588  588    488  S       0  0.0  0.2  0:01 syslogd

Komanda se zove top zato što su procesorski najintezivniji procesi izlistani na vrhu. Jedno interesatno zapažanje je da će top prvo izlistati samog sebe na manje aktivnim (i malo aktivnim) sistemima s obzirom na njegovo zauzeće CPU-a, tj. procesora. Međutim, top je dosta jednostavan za određivanje programa koji se loše izvršava i stoga je potrebno njegovo ubijanje.

Pretpostavimo da nam treba listing samo naših procesa, ili procesa određenog korisnika. Može se desiti da ti procesi ne budu u listingu procesorski najintezivnijih procesa. Opcija -u omogućava da navedete korisničko ime ili UID i tako da posmatrate samo procese tog korisnika.

% top -u alan
 PID USER      PR  NI  VIRT RES   SHR S %CPU %MEM   TIME+   COMMAND
3622 alan      13   0 11012  10m 6956 S  1.0  2.1   0:03.66 gnome-terminal
3739 alan      13   0  1012 1012  804 R  0.3  0.2   0:00.06 top
3518 alan       9   0  1312 1312 1032 S  0.0  0.3   0:00.09 bash
3529 alan       9   0   984  984  848 S  0.0  0.2   0:00.00 startx
3544 alan       9   0   640  640  568 S  0.0  0.1   0:00.00 xinit
3548 alan       9   0  8324 8320 6044 S  0.0  1.6   0:00.30 gnome-session
3551 alan       9   0  7084 7084 1968 S  0.0  1.4   0:00.50 gconfd-2
3553 alan       9   0  2232 2232  380 S  0.0  0.4   0:00.05 esd
3555 alan       9   0  2552 2552 1948 S  0.0  0.5   0:00.10 bonobo-activati
3557 alan       9   0  2740 2740 2224 S  0.0  0.5   0:00.05 gnome-smproxy
3559 alan       9   0  6496 6492 5004 S  0.0  1.3   0:00.31 gnome-settings-
3565 alan       9   0  1740 1740 1440 S  0.0  0.3   0:00.28 xscreensaver
3568 alan       9   0  7052 7052 4960 S  0.0  1.4   0:02.28 metacity
3572 alan       9   0 11412  11m 7992 S  0.0  2.2   0:01.58 gnome-panel
3574 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.64 nautilus
3575 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus
3576 alan       9   0 12148  11m 8780 S  0.0  2.4   0:00.00 nautilus

Kao što se vidi, u ovom trenutku je pokrenut X, top, jedan gnome-terminal (u kome ovo kucam) i dosta drugih X-baziranih procesa koji zazuimaju većinu CPU vremena. Ovo je dobar način da se vidi koliko naporno rade korisnici na vašem systemu.

top isto tako podržava pregled procesa na osnovu njihovog PID-a, ignorišući procese u praznom hodu i zombi procese, i mnoge druge opcije. Najbolje mesto da vidite kako se rukuje sa tim opcijama je da koristite man stranu za top.


Chapter 12 Osnovna administracija sistema

Opa... Znam da sada mislite: “Ja nisam administrator sistema! Ja čak i neću da budem administrator sistema!”

Činjenica je da ste administrator na bilo kom računaru ako imate lozinku root korisnika. To može da bude desktop sa jednim ili dva korisnika, a može da bude i server sa nekoliko hiljada. Bez obzira na sve to, potrebno je da znate kako se upravlja sa korisnicima i kako se sistem bezbedno isključuje. Ti zadaci izgledaju prosto, ali ima nekoliko caka koje biste trebali da znate.


12.1 Korisnici i grupe

Kao što je objašnjeno u Chapter 8, ne biste trebali u normalnim okonostima da se logujete kao root. Umesto toga, treba da kreirate običan korisnički nalog za svakodnevno korišćenje, a root nalog da koristite samo za administrativne poslove. Za kreiranje korisnika možete da koristite ili alate koje dolaze sa Slackware-om, ili da uređujete password fajlove ručno.


12.1.1 Slackware skripte

Najlakši način da upravljate korisnicima i grupama je da koristite skripte i programe koji su na raspolaganju. Slackware ima programe adduser, userdel(8), chfn(1), chsh(1) i passwd(1) za rad sa korisnicima. Komande groupadd(8), groupdel(8) i groupmod(8) su za rad sa grupama. Izuzetak su chfn, chsh i passwd, koje generalno pokreće root, i koje se nalaze u /usr/sbin direktorijumu. Komande chfn, chsh, i passwd može pokrenuti bilo ko, a nalaze se u /usr/bin direktorijumu.

Korisnici mogu da se dodaju sa adduser programom. Prećićemo celu proceduru prikazivanjem pitanja koja se postavljaju i njihovim kratkim objašnjenjem šta znače. Podrazumevani odgovor je u srednjim zagradama, i uglavnom važi za većinu pitanja, jedino ako baš hoćete nešto da promenite.

# adduser
Login name for new user []: jellyd

To je ime koje će korisnik da koristi za logovanje. Tradicionalno, korisnička imena su dužine do osam slova i to malih. (Možete da imate i više od osam slova, ili da koristite cifre, ali ne radite to jedino ako nemate neki važan razlog.)

Korisničko ime možete da zadate i kao argumenat u komadnoj liniji:

# adduser jellyd

U drugom slučaju, posle navođenja korisničkog imena, adduser komanda će tražiti da se unese korisnički ID:

User ID ('UID') [ defaults to next available ]:

Korisnički ID (UID) je način na koji Linux određuje vlasništva. Svaki korisnik ima jedinstven broj u Slackware-u, počevši od 1000. Možete da izaberete UID za novog korisnika, ili da prepustite adduser komandi da dodeli slobodan broj.

Initial group [users]:

Svi korisnici se podrazumevano smeštaju u grupu users. Možda želite novog korisnika da stavite u neku drugu grupu, ali to nije preporučljvo, jedino ako znate šta radite.

Additional groups (comma separated) []:

Ovo pitanje vam omogućava da novog korisnika dodate u dodatnu grupu. Moguće je da novi korisnik bude u nekoliko grupa istovremeno. Ovo je korisno kada imate već formirane grupe koje su zadužene za stvari kao što su modifikovanje web sajtova, igranje igrica i slično. Na primer, neki sajtovi definišu grupu wheel kao jedinu grupu u kojoj korisnici mogu da koriste su komadnu. Ili, podrazumevana Slackware instalacija koristi sys grupu koje omogućava autorizovanim korisnicima da puštaju muziku preko interne zvučne kartice.

Home directory [/home/jellyd]

Polazni (Home, korisnički) direktorijum podrazumevano se nalazi u /home. Ukoliko radite na veoma velikom sistemu, moguće je da ste premestili polazni direktorijum na neko drugo mesto (ili mesta). Ovaj korak vam omogućava da odredite lokaciju vašeg polaznog direktorijuma.

Shell [ /bin/bash ]

bash je podrazumevana školjka (shell) u Slackware Linux-u, i biće OK za većinu ljudi. Ako ste novi korisnik koji je već koristio neki Unix sistem, možda ste već bili familijarni sa nekom drugom školjkom. Možete da promenite ljusku odmah ili kasnije koristeći chsh komadnu.

Expiry date (YYYY-MM-DD) []:

Nalozi mogu da budu podešeni tako da ne budu važeći posle nekog vremenskog perioda. Podrazumevano, nalozi su validni stalno. Ako želite, to možete da promenite. Ova solucija može biti od koristi ako ste Internet provajder i hoćete da nalozi vaših korisnika posle nekog vremena isteknu ukokliko nisu ponovo platili.

New account will be created as follows:
---------------------------------------
Login name:         jellyd
UID:                [ Next available ]
Initial group:      users
Additional groups:  [ None ]
Home directory:     /home/jellyd
Shell:              /bin/bash
Expiry date:        [ Never ]

To je to... ako hoćete da odustanete, pritisnite Control+C. U suprotnom, pritisnite ENTER da nastavite sa kreiranjem naloga.

Sada ćete da vidite informacije koje ste uneli i imate mogućnost da sve to obustavite. Ako ste uneli nešto nekorektno, trebali biste da na tastaturi pritisnete Control+C i sve iz početka. U suprotnom, pritisnite enter i novi nalog će biti napravljen.

Creating new account...

Changing the user information for jellyd
Enter the new value, or press return for the default
        Full Name []: Jeremy
        Room Number []: Smith 130
        Work Phone []:
        Home Phone []:
        Other []:

Sve ove informacije su opcione. Ništa od ovog ne morate da unesete, a korisnik to može da promeni bilo kada, uz pomoć chfn komande. Ipak, možda smatrate da bi bilo korisno da uneste ime, prezime i broj telefona da korisnika možete kasnije kontaktirati.

Changing password for jellyd
Enter the new password (minimum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:
Re-enter new password:
Password changed.

Account setup complete.

Potrebno je da uneste lozinku za novog korisnika. Generalno, ako novi korisnik nije fizički prisutan, unesite prostu lozinku i posle mu recite da je promeni u nešto sigurnije.

Note

Izbor lozinke: Posedovanje bezbednosne lozike je prva odbrambena linija protiv neželjenih stvari. Ne treba da koristite lozinke koje se lako mogu pogoditi jer na taj način neko može da provali u vaš sistem. Idealno, bezbednosna lozinka bi trebala da bude nasumična niska znakova, uključujući mala i velika slova, brojeve i ostale znakove. (Tab znak ne bi bio dobar izbor, s obzirom na vrstu računara sa koga biste se logovali.) Postoji mnogo softverskih paketa koji za vas mogu da generišu lozinku; pretražite Internet za te alate.

Pridržavajte se ovoga: lozinka ne treba da bude nečiji rođendan, neka poznata fraza,nešto što se može naći na vašem stolu, ili bilo šta sto može da asocira na vas. Lozinke kao “bezbedno1” ili svaka druga lozinka koju možete naći u štampi ili na Internetu su takođe loše.

Uklanjanje korisnika uopšte nije komplikovano. Samo pokrenite komandu userdel sa imenom naloga koga hoćete da uklonite. Uverite se da korisnik nije logovan, niti da je pokrenuo bilo kakav proces. Takođe, zapamtite da kada ste uklonili korisnika sve njegove lozinke su se izbrisale trajno.

# userdel jellyd

Ova komanda uklanja nezgodnog korisnika jellyd sa vašeg sisema. Od napasti smo se oslobodili! :) Korisnik je uklonjen iz /etc/passwd, /etc/shadow i /etc/group fajlova, ali se nije uklonio njegov korisnički direktorijum.

Ako želite da uklonite početni direktorijum, koristite komndu:

# userdel -r jellyd

Privremeno onemogućavanje naloga biće objašnjeno u sledećem odeljku vezanom za lozinke, pošto za tu akciju moramo da razumemo kako se radi sa lozinkama. Kako se vrši izmena drugih informacije objašnjeno je u Section 12.1.3.

Program pomoću koga se dodaju i uklanjaju grupe je veoma jednostavan. Komanda groupadd će jednostavno dodati u /etc/group novu stavku sa jedinstvenim grupnim ID-om; ona će to uraditi mesto vas. Na primer, da dodate grupu koja se zove cvs:

# groupadd cvs

A da je uklonite:

# groupdel cvs

12.1.2 Promena lozinki

Program passwd menja lozinke tako što pravi promene u /etc/shadow fajlu. Ovaj fajl sadrži lozinke sistema u enkriptovanom formatu. Da biste pormenili lozinku, otkucajte:

% passwd
Changing password for chris
Old password:
Enter the new password (minumum of 5, maximum of 127 characters)
Please use a combination of upper and lower case letters and numbers.
New password:

Ko što vidite, upitani ste za staru lozinku. Ona se ne pojavljuje kada je unosite, isto kao i kada ste logujete na sistem. Posle ćete biti upitani da unesete novu lozinku. Komanda passwd obavlja mnogo provera nad vašom novom lozinkom, i požaliće se ako ne prođe sve provere. Ako hoćete možete da ignorišete ta upozorenja. Posle ćete biti upitani da po drugi put uneste istu lozinku radi potvrde.

Ako ste root korisnik, možete da menjate lozinke drugih korisnika:

# passwd ted

Kroz istu proveru ćete da prođete osim što ne morate ponovo da unosite staru lozinku korisnika. (Jedna od mnogih beneficija root korisnika...)

Ako je potrebno, možete privremeno da onemogućite nalog, a nekada je potrebno ponovo da ga omogućite. I omogućavanje i onemogućavanje naloga može se obaviti pomoću passwd komande. Da biste onemogućili nalog, kao root uradite sledeće:

# passwd -l david

Ovo će promeniti Davidovu lozinku u nešto što neće odgovarati ni jednoj enkriptovanoj vrednosti. Ponovno omogućavanje naloga vrši se ovako:

# passwd -u david

Sada je Davidov nalog vraćen u normalu. Onemogućavanje naloga može biti od koristi onda kada korisnik ne radi po pravilima kakva se zahtevaju na vašem sistemu, ili je eksportovao veoma veliku kopiju xeyes(1) na vaš X desktop.


12.1.3 Promena korisničkih informacija

Postoje dve informacije koje korisnici mogu da promene bilo kada: školjku i finger informacije. Slackware Linux ima komande chsh (change shell) i chfn (change finger) za modifikovanje tih vrednosti.

Korisnik može da izabere svaku školjku koje je nevedena u /etc/shells fajlu. Za većinu ljudi, školjka /bin/bash biće sasvim dovoljna. Drugi su možda familijarni sa nekim drugim školjkama koje koriste u školi i pošto sa njima imaju rutinu, na njima bi i ostali. Da biste promenili školjku, koristite komanduchsh:

% chsh
Password:
Changing the login shell for chris
Enter the new value, or press return for the default
        Login Shell [/bin/bash]:

Posle unošenja lozinke, unesite onu putanju ka novoj školjci. Prvo proverite da ta školjka postoji u /etc/shells(5) fajlu. root korisnik može da promeni školjke drugih korisnika ako pokrene komandu chsh sa argumentom username.

Finger informacije su opcione i u njih spadaju vaše puno ime, broj telefona i broj sobe. To može da se promeni ako se koristi chfn komanda. Unošenjem te komande proćićete kroz istu proceduru kao i onu koje se odnosila na kreiranje naloga. Kao i obično, root može da promeni svačije finger informacije.


12.2 Korisnici i grupe, teži način

Naravno da je moguće da dodajete, modifikujete i uklanjate korisnike i grupe bez korišćenja skripti i programa koji dolaze sa Slackware-om. Nije to baš teško, mada posle čitanja ovog procesa načina možete ipak ostati na korišćenju skripti. Ipak je važno da znate gde su lozinke stvarno smeštene, u slučaju kada je potrebno da oporavite sistem, a ti alati vam nisu dostupni.

Prvo, dodajete novog korisnika u /etc/passwd(5), /etc/shadow(5) i /etc/group(5) fajlove. Fajl passwd sadrži neke informacije o korsnicima sistema, ali (dosta čudno) ne njihove lozinke. Nekada to nije bili tako, ali od toga se odustalo iz sugurnosnih razloga. Datoteka passwd mora da bude čitljiva svim korisnicima. Ipak ne biste želeli da ta svima čitljiva enkriptovana lozinka bude polazna tačka potencijalnom provalniku u vaš sistem, kako bi na osnovu nje pokušao da dekriptuje lozinke korisnika. Umesto toga, enkriptovane lozinke se čuvaju u shadow datoteci, koju može da čita samo root, a mesto za lozinke u datoteci passwd zauzima jedno “x”. U datoteci group je lista svih grupa i ko je u njima.

Možete da koristite vipw komandu za bezbedno editovanje /etc/passwd fajla, a komandu vigr za bezbedno editovanje /etc/group fajla. Koristite vipw -s komandu za bezbedno editovanje /etc/shadow fajla. (“Bezbedno” u ovom kontekstu znači da niko ne može da modifikuje odgovarajući fajl dok ga vi uređujete u tom trenutku. Ako ste vi jedini administrator, najverovatnije je da ste bezbedni kada ručno uređujete gore navedene fajlove, ali je bolje da stvarate dobre navike od početka.)

Hajde da objasnimo /etc/passwd fajl i da vidimo kako se dodaje novi korisnik. Tipično jedna stavka u fajlu passwd ovako izgleda:

chris:x:1000:100:Chris Lumens,Room 2,,:/home/chris:/bin/bash

Svaka linija je stavka za jednog korisnika, a polja u stavci su odvojena sa dvotačkom. Polja su ime korisnika, enkriptovana lozinka (“x” za svakog na Slackware sistemu, pošto Slackware koristi shadow lozinke), korisnički ID, ID grupe, opciono informacije o finger-u (odvojene zarezima), polazni direktorijum i školjka. Za ručno dodavanje korisnika dodaćete novu liniju na kraju datoteke i popunićete odgovarajuće informacije.

Informacije koje ste uneli moraju da udovolje nekim zahtevima, ili će korsinik da ima problema sa logovanjem. Prvo osigurajte se da polje za lozinku bude jedno x, i da ime korisnika, kao i ID, bude jedinstveno. Dodelite korisniku grupu, ili 100 ( “users” grupa u Slackware-u ) ili podrazumevanu grupu (koristite njen broj, a ne ime). Dajte korisniku validan početni direktoriju (koji ćete krerirati kasnije) i školjku (zapamtite da su validne školjke navedene u /etc/shells) fajlu.

Sledeće što treba da uradite je da dodate stavku u /etc/shadow fajl, koji sadrži enkriptovane lozinke. Tipična linija izgleda ovako:

chris:$1$w9bsw/N9$uwLr2bRER6YyBS.CAEp7R.:11055:0:99999:7:::

Opet, svaka linije se odnosi na jednu osobu, a polja su odvojena dvotačkama. Polja su (po redu) ime logovanja, enkriptovana lozinka, broj dana od epohe Unix-a (1. januar 1970.) pa do poslednjeg menjanja lozinke, dani pre kojih se lozinka mora menjati, dani posle kojih se lozinka mora promeniti, dani kada će biti upozorenje da lozinka ističe, koliko dana će korisnik biti onemogućen posle isteka, dani od Unix-ove epohe kada je korisnik onemogućen, i na kraju rezervisano polje.

Kao što vidite, većina tih informacija je o isteku naloga. Ako ne koristite informacije o nalogu, potrebno je samo da popunite nekoliko polja sa sa nekim specijalnim vrednostima. U suprotnom, morate da izvršite nešto proračuna i da donesete neke odluke pre nego što popunite ta polja. Za novog korisnika, bilo šta (“ đubre”) stavite u polje za lozinku. Ne brinite koja je lozinka upravo sada, pošto ćete je promeniti za minut. Jedini znak koji ne možete da stavite u polje za enkriptovanu lozinku je dvotačka. Ostavite polje “dane od kada je lozinka promenjena” prazno. Kao što vidite gore u primeru popunite sa 0, 99999 i 7 odgovarajuća polja, a ostavite praznim ostala polja.

(Za one koje misle da će na osnovu enkriptovane lozinke koje je data u gornjem primeru uz krekovanje lozinke moći ući u moj sistem, neka znaju da je to lozinka sistema za testiranje koji je iza zaštitnog zida. Tako da od nje nema nikave koristi :) )

Na tipičnom Slackware sistemu svi obični korisnici su članovi “users” grupe. Međutim, ako želite da kreirate novu grupu, ili da dodate novog korsnika u dodatne grupe, morate da modifikujete /etc/group fajl. Evo tipičine jedne stavke u ovom fajlu:

cvs::102:chris,logan,david,root

Polja su: ime grupe, lozinka grupe, ID grupe i članovi grupe odvojeni zapetema. Kreiranje nove grupe je jednostavan proces dodavanja nove linije sa jedinstvenim ID-om grupe i navođenjem svih korisnika koje hoćete da budu u grupi. Oni korisnici koji su u toj novoj grupi moraju da se odloguju i ponovo uloguju da bi promene imale efekta.

Sada bi možda bila dobra ideja da koristite komande pwck i grpck da verifikujete da li su promene koje ste napravili konzistentne. Prvo, koristite komande pwck -r i grpck -r: -r opcija ne pravi promene, ali lista promene za koje biste bili pitani ako biste pokrenuli komandu bez prekidača. Možete da koristite taj izlaz da biste odlučili da li da još nešto modifikujete ili da pokrene komande pwck ili grpck bez -r opcije, ili prosto da ostavite vaše promene onakvim kakve jesu.

Sada biste trebali sa komandom passwd da krirate odgovarajuću lozinku za korisnika. Posle toga, koristite komandu mkdir da kreirate novi korisnički polazni direktorijum čija je lokacija ona koju ste naveli u /etc/passwd fajlu i na kraju koristite chown da promenite vlasništvo novog direktorijuma da odgovara novom koisniku.

Uklanjanje korisnika je jednostavnije od brisanja svih stavki koje se odnose na korisnika. Uklonite stavku u kojoj se poninje dati korisnik u /etc/passwd fajlu i fajlu /etc/shadow, a posle uklonite korisničko ime iz svake grupe u /etc/group fajlu. Ako hoćete, možete da izbrišete korisnički polazni direktorijum, spool fajl za e-poštu i korisnikove corntab odrednice (ako postoje).

Uklanjanje grupe je slično: uklonite stavke vezane za grupu u /etc/group fajlu.


12.3 Propisno gašenje računara

Veoma je bitno da propisno ugasite vaš sistem. Jednostavno isključivanje napajanja preko “POWER” dugmeta može da uzrokuje ozbiljnu štetu na sistemu fajlova. Kada je sistem pokrenut fajlovi su u upotrebi čak i onda kada se ne radi ništa sa njima. Zapamtite da se mnogo procesa izvršava u pozadini sve vreme. Ti proceci upravljaju sistemom i dosta fajlova drže otvorenim. Kada se računar jednostavno isključi na dugme ti fajlovi nisu pravilno zatvoreni i mogu biti neispravni. U zavisnosti koji su fajlovi oštećeni sistem može da bude potpuno neupotrebljiv. U svakom slučaju, proćićete kroz dugu proceduru provere sistema fajlov pri sledećem uključivanju računara.

Note

Ako ste konfigurisali sisetem sa žurnalskim sistemom fajlova, kao što su ext3 ili reiserfs, delimično ćete biti zaštićeni od eventualnih oštećenja podataka, a i restart će biti kraći nego na sistemima fajlova bez žurnala kao što je ext2. Međutim, to vas ne opravdava da bezbedno ne isključite sistem! Oslonite se na žurnalske sisteme fajlova da vam podaci budu konzistentni kad nešto ode van kontrole, a ne usled vaše lenjosti.

U svakom slučaju, kada restartujete računar ili ga ugasite, važno je da se to izvrši na propisan način. Ima nekoliko načina da se to uradi; možete da izaberete svaki za koji smatrate da je najzabavniji (ili na kome najmanje morate da radite). Pošto su restart i isključivanje računara slične procedure, mnogi načini koji se primenjuju za isključivanje računara važe i za restart.

Prvi metod je ako koristite shutdown(8) komandu, i to je sigurno najpopularniji metod. shutdown može da se koristi za restart ili gašenje sistema u zadato vreme i da se prikaže poruka svim logovanim korisnicima sa upozoranjem da će sistem biti oboren.

Najjednostavniji način da isključite računar je da kucate ovo:

# shutdown -h now

U tom slučaju, korisnicima se neće poslati nikakva poruka po našem izboru; već samo podrazumevana porukashutdown komande. Opcija “now” je vreme kada hoćemo da sistem isključimo, a “-h” (od halt) opcija znači zaustavljanje sistema. To baš nije najbolji način u višekorisničkom sistemu, ali je u redu na vašem kućnom računaru. Bolji metod u višekorisničkom okruženju je da svakom korisniku predate malo upozoranje:

# shutdown -h +60

Na ovaj način sistem će se isključiti za jedan sat (60 minuta), što je sasvim dovoljno vremena u normalnom višekorisničkom sistemu. Sistemi koji obezbeđuju vitalne fuknkcije možda imaju nešto napredniji način obaveštavanja korisnika o predstojećem isključivanju. U te načine obaveštavanje spadaju email, oglasne tableble ili /etc/motd).

Za restart sistema se koristi ista komanda, ali tako da se zameni “-r” sa “-h”:

# shutdown -r now

Možete da koristite istu notaciju za obaveštavanje sa komadnom shutdown -r isto kao što biste radili sa shutdown -h. Ima još opcija koje možete da koristite sa shutdown komandom, bilo da restartujete ili isključujete računar; za više informacije pogledajte man stranu.

Drugi način da se isključi računar je da se koristi komanda halt(8) ili reboot(8). Kao što ime indicira, komanda halt će momentalno zaustaviti operativni sistem, a komanda reboot će restartovati sistem. (reboot je samo simbolični link ka komandi halt.) One se pozivaju ovako:

# halt
# reboot

Niži nivo isključivanja računara je da se direktno obrati init komandi. Svi drugi metodi su samo podesni načini da se govori init komandi, ali ovako se direktno govori komandi telinit(8) šta da čini (zapazite da ima samo jedno “l”). Ako koristite telinit onda init komandi saopštavate u koji runlevel da ide, i na taj način će se izvršiti spacijalna skripta. Ta skripta će ili ubiti ili stvoriti procese koji su namenjeni tom runlevel-u. Ovaj način radi i za restart i za usključivanje računara pošto su ta stanja samo vrste runlevela.

# telinit 0

Runlevel 0 je mod za zaustavljanje. Ako komandi init kažemo da ide u runlevel 0 to će da izazove da procesi budu ubijeni, sistem fajlova demontiran i mašina zaustavljena. To je potpuno prihvatljiv način da mašina bude zaustavljena. Na mnogim laptopovima i modernim desktop računarama to će takođe prouzrokovati da se mašina isključi.

# telinit 6

Runlevel 6 je restart mod. Svi procesi će biti ubijeni, sistem fajlova će biti demontiran, a mašina će biti restartovana. Ovo je najprihvatiji metod za restart sistema.

Za one radoznale, kada se prelazi u runlevel 0 ili 6, bilo sa komandom shutdown, halt, ili reboot, skripta /etc/rc.d/rc.6 se pokreće. (Skripta /etc/rc.d/rc.0 je jedan simbolički link ka /etc/rc.d/rc.6.) Taj fajl možete da uredite po vašem ukusu -- ali oprezno pravite te promene!

Evo poslednjeg načina za restart sistema. Svi drugi metodi zahtevaju da budete logovani kao root. Ipak, moguće je da restartujete mašinu kada niste root ako imate fizički pristup tastaturi. Ako pritisnete Control+Alt+Delete (čuveni "pozdrav tri prsta") vaša mašina će odmah da se restartuje. (Pod haubom, shutdown komanda se poziva kada se koristi Control+Alt+Delete.) To ne radi uvek kada koristite X Windows -- možda je prvo potrebno da koristite Control+Alt+F1 (ili neki drugu F tipku) da pređete u ne-X Windows terminal, pa posle da primenite navedenu kombinaciju tipki.

Na kraju, fajl koji ulitimativno kontroliše svaki aspekt pokretanja i isključivanja je /etc/inittab(5). Generalno, nema potrebe da modifikujte taj fajl, ali vam on može dati uvid zašto neke stvari baš tako rade. Kao uvek, pogledajte man strane za više informacija.


Chapter 13 Osnovne mrežne komande

Mreža se sastoji od nekoliko računara koji su povezani među sobom. Mreža može biti biti jednostavna u pogledu da je nekoliko računara povezano u vašoj kući ili kancelariji, ili komplikovana kao što je velika univerzitetska mreža ili čak ceo Internet. Kada je vaš računar deo mreže, imate pristup ovim sistemima bilo direktno ili kroz servis kao što je elektronska pošta ili web.

Postoje razni mrežni programi koje možete koristiti. Neki su pogodni za dijagnozu, kako biste proverili da sve radi kako treba. Drugi (kao čitači pošte ili pregledači Interneta) su korisni kako biste završili svoj posao i ostali u kontaktu sa drugim ljudima.


13.1 ping

ping(8) šalje ICMP ECHO_REQUEST zahtev navedenom domaćinu. Ako računar domaćin odgovori, dobićete ICMP paket nazad. Zvuči čudno? Pa, možete uraditi “ping” na nekoj IP adresi kako bi videli da li je mašina živa. Ako nema odgovora, znate da nešto nije u redu. Evo primera razgovora između dvoje Linux korisnika:

Korisnik A: Loki je opet pao.
Korisnik B: Jesi li siguran?
Korisnik A: Da, pokušao sam da ga pingujem, ali odgovora nema.

Slučajevi kao što je ovaj čine komandu ping veoma korisnom za svakodnevnu upotrebu. Ona pruža veoma brz način da vidite da li mašina radi i da li je priključena na mrežu. Osnovna sintaksa je:

% ping www.slackware.com

Postoje, naravno, neke opcije koje mogu biti naznačene. Proverite man stranicu za ping radi više informacija.


13.2 traceroute

Slackware-ova traceroute(8) je veoma korisna mrežna alatka za dijagnostiku. traceroute prikazuje svakog domaćina kroz kojeg paket putuje dok pokušava da stigne do svoje destinacije. Možete videti koliko mnogo “skokova” ima do Slackware-ovog sajta ima od vas pomoću ove komande:

% traceroute www.slackware.com

Biće prikazan svaki domaćin, zajedno sa vremenima odgovora za svakog domaćina. Evo primera izlaza:

% traceroute www.slackware.com
traceroute to www.slackware.com (204.216.27.13), 30 hops max, 40 byte packets
1  zuul.tdn (192.168.1.1)  0.409 ms  1.032 ms  0.303 ms
2  207.171.227.254 (207.171.227.254)  18.218 ms  32.873 ms  32.433 ms
3  border-sf-2-0-4.sirius.com (205.134.230.254) 15.662 ms 15.731 ms 16.142 ms
4  pb-nap.crl.net (198.32.128.20)  20.741 ms  23.672 ms  21.378 ms
5  E0-CRL-SFO-03-E0X0.US.CRL.NET (165.113.55.3) 22.293 ms 21.532 ms 21.29 ms
6  T1-CDROM-00-EX.US.CRL.NET (165.113.118.2)  24.544 ms  42.955 ms 58.443 ms
7  www.slackware.com (204.216.27.13)  38.115 ms  53.033 ms  48.328 ms

traceroute je slična komandi ping po tome što takođe koristi ICMP pakete. Postoji nekoliko opcija koje možete naznačiti komandi traceroute. Ove opcije su detaljno objašnjene u man stranici.


13.3 DNS alati

Domain Name Service (DNS skraćeno) je taj magični protokol koji dozvoljava vašem računaru da prebaci besmislena imena domena kao što je www.slackware.com u smislenu IP adresu kao što je 64.57.102.34. Računari ne mogu slati pakete na www.slackware.com, ali mogu ih slati na IP adresu tog domena. Ovo nam daje zgodan način da pamtimo mašine. Bez DNS-a mi bi morali održavati mentalnu bazu podataka koji IP pripada kojem računaru, i to sa pretpostavkom da se IP adrese ne menjaju. Jasno je da je korišćenje imena za računare bolje, ali kako mapiramo ime na IP adrese?


13.3.1 host

host(1) može da uradi ovo za nas. host se koristi da mapira imena na IP adrese. U pitanju je veoma brz i jednostavan alat bez mnogo opcija.

% host www.slackware.com
www.slackware.com is an alias for slackware.com.
slackware.com has address 64.57.102.34

Ali recimo da, iz nekog razloga, želimo da mapiramo IP adresu na ime domena; šta onda?


13.3.2 nslookup

nslookup je oproban i dobar program koji je dozreo tokom vremena. nslookup je prevaziđen i možda će biti uklonjen iz budućih izdanja. Za njega čak ni ne postoji man stranica.

% nslookup 64.57.102.34
Note:  nslookup is deprecated and may be removed from future releases.
Consider using the `dig' or `host' programs instead.  Run nslookup with
the `-sil[ent]' option to prevent this message from appearing.
Server:         192.168.1.254
Address:        192.168.1.254#53

Non-authoritative answer:
www.slackware.com       canonical name = slackware.com.
Name:   slackware.com
Address: 64.57.102.34

13.3.3 dig

Najbesniji pas u štenari, domain information groper, ili dig skraćeno, je program koji je spreman za pretraživanje DNS informacija. dig može da uzme skoro pa sve sa DNS servera uključujući i reverzne pretrage, A, CNAME, MX, SP i TXT slogove. dig ima mnogo opcija iz komandne linije i ako niste upoznati s njim, trebali biste pročitati njegovu opširnu man stranicu.

% dig @192.168.1.254 www.slackware.com mx

; <<>> DiG 9.2.2 <<>> @192.168.1.254 www.slackware.com mx
;; global options:  printcmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 26362
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 2, ADDITIONAL: 2

;; QUESTION SECTION:
;www.slackware.com.             IN      MX

;; ANSWER SECTION:
www.slackware.com.      76634   IN      CNAME   slackware.com.
slackware.com.          86400   IN      MX      1 mail.slackware.com.

;; AUTHORITY SECTION:
slackware.com.          86400   IN      NS      ns1.cwo.com.
slackware.com.          86400   IN      NS      ns2.cwo.com.

;; ADDITIONAL SECTION:
ns1.cwo.com.            163033  IN      A       64.57.100.2
ns2.cwo.com.            163033  IN      A       64.57.100.3

;; Query time: 149 msec
;; SERVER: 192.168.1.254#53(192.168.1.254)
;; WHEN: Sat Nov  6 16:59:31 2004
;; MSG SIZE  rcvd: 159

Ovo bi vam trebalo dati ideju kako dig funkcioniše. “@192.168.1.254” specifikuje koji se DNS server koristi. “www.slackware.com” je ime domena na koji vršimo pretragu, i “mx” je tip pretrage koju vršim. Upit iznad mi govori da će e-mail poruka koji pošaljem na www.slackware.com, ustvari biti poslata na mail.slackware.com za preuzimanje.


13.4 finger

finger(1) će nam dobaviti informaciju o određenom korisniku. Fingeru date korisničko ime ili email adresu i on onda pokušava da kontaktira neophodni server i dobavi ime korisnika, broj telefona u kancelariji, i druge informacije. Evo primera:

% finger johnc@idsoftware.com

finger može da pokaže ime korisnika, status e-pošte i “tačka projekat”. Naravno, informacije koje dobijete zavise od finger servera. Onaj koji je uključen u Slackware podrazumevano vraća sledeće informacije:

  • Ime korisnika

  • Broj sobe

  • Broj telefona kući

  • Broj telefona na poslu

  • Login status

  • Status e-pošte

  • Sadržaj fajla .plan u kućnom direktorijumu korisnika

  • Sadržaj fajla .project u kućnom direktorijumu korisnika

Prve četiri stavke mogu biti postavljene sa chfn komandom. Sistem će ove informacije sačuvati u /etc/passwd fajlu. Da bi promenili informacije u vašem .plan ili .project fajlu, samo ih uredite pomoću vašeg omiljenog uređivača teksta. Oni se moraju nalaziti u vašem početnom direktorijumu i moraju imati imena .plan i .project.

Mnogi korisnici koriste finger za svoje sopstvene naloge sa udaljene mašine kako bi brzo videli da li imaju novu poštu. Ili, vi možete videti korisnikov plan ili trenutni projekat.

Kao mnoge komande, finger ima opcije. Pogledajte man stranicu za više informacija o opcijama koje možete koristiti.


13.5 telnet

Neko je jednom izjavio kako je telnet(1) najbolja stvar koju je je on video na računarima. Mogućnost da se iz udaljenosti prijavite i radite stvari na drugom računaru je ono što odvaja Unix i Unix-nalike operativne sisteme od ostalih operativnih sistema.

telnet vam omogućava da se prijavite na računar isto kao i da sedite za terminalom. Jednom kada su korisničko ime i lozinka prihvaćeni, dobijate shell prompt. Odatle, možete uraditi sve što zahteva tekstualnu konzolu. Pisati poštu, čitati grupe, prebacivati fajlove, i tako dalje. Ako izvršavate X i uradite telnet na drugu mašinu, možete startovati X programe na udaljenom računaru, a prikazati ih na svome.

Kako bi se prijavili na udaljenu mašinu, koristite ovu sintaksu:

% telnet <hostname>

Ako računar odgovori, dobićete prompt za prijavu. Dajte mu svoje korisničko ime i lozinku. To je to. Sada ste u konzoli. Da bi prekinuli vašu telnet sesiju, koristite ili exit ili logout komandu.

Warning

telnet ne šifruje informacije koje šalje. Sve biva poslato kao čisti tekst, čak i lozinke. Nije preporučljivo koristiti telnet preko Interneta. Umesto njega, razmotrite Secure Shell (Sigurnu školjku). Ona šifruje sav saobraćaj i slobodno je dostupna.


13.5.1 Druge koristi od telneta

Sada kada smo vas ubedili da ne koristite više telnet protokol kako biste se ulogovali na udaljenu mašinu, pokazaćemo vam nekoliko korisnih načina da se telnet iskoristi.

Takođe možete korisiti telnet komandu da se povežete sa serverom na određenom portu.

% telnet <hostname> [port]

Ovo može biti prilično zgodno ako vam je potrebno da brzo proverite određeni servis i kada vam je potrebna potpuna kontrola nad komandama, ili je potrebno da tačno vidite šta se dešava. Možete interaktivno testirati ili koristiti SMTP server, POP3 server, HTTP server, itd, sve na ovaj način.

U sledećem primeru ću vam pokazati kako možete telnet-ovati HTTP server na portu 80 i dobiti neke osnovne informacije od njega.

Figure 13-1. Telnetovanje Web servera

% telnet store.slackware.com 80
Trying 69.50.233.153...
Connected to store.slackware.com.
Escape character is '^]'.
HEAD / HTTP/1.0

HTTP/1.1 200 OK
Date: Mon, 25 Apr 2005 20:47:01 GMT
Server: Apache/1.3.33 (Unix) mod_ssl/2.8.22 OpenSSL/0.9.7d
Last-Modified: Fri, 18 Apr 2003 10:58:54 GMT
ETag: "193424-c0-3e9fda6e"
Accept-Ranges: bytes
Content-Length: 192
Connection: close
Content-Type: text/html

Connection closed by foreign host.
%

Možete raditi isto i za druge tekstualne protokole, sve dok znate na koji port da se konektujete i koje su komande.


13.6 Secure Shell

Danas, sigurna školjka (secure shell) uživa obožavanje koje je nekad imao telnet. ssh(1) vam dozvoljava da napravite konekciju ka udaljenoj mašini i izvršite programe kao da ste fizički prisutni; međutim, ssh šifruje sve podatke koji putuju između dva računara, pa i ako neko presretne konverzaciju, neće uspeti da je razume. Sledi tipična konekcija pomoću sigurne školjke.

% ssh carrier.lizella.net -l alan
The authenticity of host 'carrier.lizella.net (192.168.1.253)' can't be
established.
RSA key fingerprint is 0b:e2:5d:43:4c:39:4f:8c:b9:85:db:b2:fa:25:e9:9d.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'carrier.lizella.net' (RSA) to the list of
known hosts.
Password: password
Last login: Sat Nov  6 16:32:19 2004 from 192.168.1.102
Linux 2.4.26-smp.
alan@carrier:~$ ls -l MANIFEST 
-rw-r--r--  1 alan users 23545276 2004-10-28 20:04 MANIFEST
alan@carrier:~$ exit
logout
Connection to carrier.lizella.net closed.

Ovde možete da vidite mene kako pravim ssh konekciju na carrier.lizella.net, i proveravam dozvole za MANIFEST fajl.


13.7 e-pošta

Elektronska pošta je jedna od najpopularnijih stvari koje mogu da se rade na Internetu. 1998 godine, zabeleženo je da je bilo više poslatih elektronskih pisama nego običnih. Zaista je česta i korisna.

Pod Slackware-om, mi vam pružamo standardni server pošte, i nekoliko klijenata za poštu. Svi klijenti koji su opisani dole su tekstualni. Mnogo Windows korisnika može biti protiv ovoga, ali videćete da je tekstualni klijent vrlo zgodan, posebno kada proveravate poštu na udaljenom računaru. Nemojte se plašiti, postoji mnogo grafičkih klijenata e-pošte kao što je KDE-ov Kmail. Ako želite da koristite neke od njih pogledajte njihove Help menije.


13.7.1 pine

pine(1) nije elm. Ili tako bar kaže stara izreka. Univerzitet u Vašingtonu je napravio svoj program za news i e-poštu iz potrebe svojih studenata za lakim čitačem pošte. pine je jedan od najpopularnijih klijenata e-pošte koji se koristi danas i dostupan je na skoro svakoj vrsti Unix-a, pa čak i na Windows-u.

Figure 13-2. Glavni meni Pine-a

Videćete meni za naredbe i red tastera za naredbe na dnu. pine je doista kompleksan program, pa tako nećemo objasniti ovde svaku njegovu mogućnost.

Da biste videli šta je u vašem dolaznom sandučiću, pritisnite i. Vaše poruke su izlistane zajedno sa svojim datumom, autorom i naslovom. Označite poruke koje želite i pritisnite enter da biste ih pogledali. Pritisak na r će započeti odgovor na poruku. Kada ste ga napisali pritisnite Ctrl+X da biste poslali odgovor. Možete pritisnuti i kako biste se vratili na listing poruka.

Ako želite da obrišete poruku, pritisnite d. To će zabeležiti označene poruke za brisanje. pine briše poruke kada izađete iz programa. pine vam takođe dozvoljava da držite vaše poruke u direktorijumima. Možete dobiti spisak direktorijuma pritiskom na l. Kod listinga poruka pritisnite s kako bi je sačuvali u drugom direktorijumu. On će vas upitati za ime direktorijuma u koji će zapisati poruku.

pine pruža mnogo, mnogo mogućnosti; obavezno biste trebali pogledati njegovu man stranicu za više informacija. U njoj se nalaze najnovije informacije o programu.


13.7.2 elm

elm(1) je još jedan popularan tekstualan klijent e-pošte. Iako nije okrenut ka korisniku kao pine, definitivno se nalazi oko nas duže vremena.

Figure 13-3. Glavni ekran Elm-a

Podrazumevano ste stavljeni u vaš dolazni sandučić. Poruke su izlistane sa brojem poruke, datumom, pošiljaocem i naslovom. Koristite tastere sa strelicama da označite poruke koje želite. pritisnite Enter kako biste pročitali poruku.

Da biste napisali novu poruku, ukucajte m na glavnom ekranu. Taster d će označiti poruku za brisanje. A r taster će odgovoriti na trenutnu poruku koju čitate. Svi ovi tasteri su prikazani na dnu ekrana pomoću prompta.

Man stranica objašnjava elm sa više detalja, tako da ćete verovatno želeti da je konsultujete pre korišćenja programa elm.


13.7.3 mutt

“Svi klijenti e-pošte smrde. Ovaj smrdi manje.” mutt-ov originalni interfejs je baziran na elm-u, sa dodatim funkcijama koje su nađene u drugim popularnim klijentima pošte, što je rezultovalo hibridnim mutt-om.

Neke od mutt-ovih mogućnosti uključuju:

  • podrška za boje

  • poruke u nitima (threads)

  • MIME i PGP/MIME podrška

  • pop3 i imap podrška

  • podrška za više formata sandučića pošte (mbox, MMDF, MH, maildir)

  • veoma prilagodljiv

Figure 13-4. Glavni ekran Mutt-a

Ako tražite klijenta e-pošte koji će vam dopustiti da budete u potpunoj kontroli nad svim aspektima, onda će vam se svideti mutt. Sve podrazumevane postavke se mogu prilagoditi, tasteri za komande se mogu promeniti. Ako želite da dodate makro, možete.

Verovatno ćete želeti da pogledate man stranicu za muttrc. Ili možete da pogledate uključeni primer muttrc fajla.


13.7.4 nail

nail(1) je klijent e-pošte koji se koristi preko komandne linije. Veoma je primitivan i ne pruža skoro ništa što se tiče korisničkog interfejsa. Međutim, mailx je zgodan onda kada treba da brzo pošaljete neko pismo, skriptujete masovne poruke, testirate instalaciju vašeg MTA ili nešto slično. Primetite da Slackware pravi simbolične linkove ka nail na /usr/bin/mail i /usr/bin/mailx. Svaka od ovih komandi izvršava isti program. U stvari, najverovatnije ćete videti da se nail pominje kao mail.

Osnovna komandna linija je:

% mailx <subject> <to-addr>

mailx čita telo poruke iz standardnog ulaza. Tako možete iskoristi komandu cat da pošaljete poruku ili jednostavno možete otkucati šta želite i pritisnuti Ctrl+D kada završite sa porukom.

Evo primera slanja izvornog koda programa drugoj osobi.

% cat randomfunc.c | mail -s "Evo te funkcije" asdf@example.net

Man stranica objašnjava šta nail može da uradi, tako da ćete verovatno poželeti prvo da je pogledate pre nego što počnete da ga koristite.


13.8 Brauzeri (pregledači Interneta)

Prva stvar na koju ljudi pomisle kada čuju reč Internet je “surfovanje mrežom”. Ili gledanje Internet stranica pomoću web brauzera. Ovo je verovatno najpopularniji servis na Internetu za prosečnog korisnika.

Slackware pruža popularne grafičke web brauzere u “XAP” seriji, kao i tekstulane brauzere u “N” seriji. Bacićemo kratak pogled na neke od najčešćih opcija.


13.8.1 lynx

lynx(1) je tekstualni web brauzer. Pomoću njega se na veoma brz način može potražiti nešto na Internetu. Ponekad grafika smeta ako tačno znate šta želite.

Da biste pokrenuli lynx, samo ukucajte lynx na promptu:

% lynx

Figure 13-5. Podrazumevana početna strana Lynx brauzera

Možete navesti stranicu koju će lynx da otvori:

% lynx http://www.slackware.com

lynx ispisuje tastere komandi i šta one rade na dnu ekrana. Strelice za gore i dole služe za kretanje po dokumentu, Enter bira označeni link, a Leva strelica vraća na prethodnu stranu. Kucanje d će skinuti trenutno označeni fajl. g komanda podiže polje za unos, gde možete lynx-u dati URL koji će da otvori.

Postoji mnogo drugih komandi u lynx-u. Možete ili konsultovati man stranicu, ili pritisnuti h kako biste dobili ekran za pomoć radi više informacija.


13.8.2 links

Baš kao i lynx, links je web brauzer u tekstualnom modu, gde svu navigaciju vršite koristeći tastaturu. Međutim, kada pritisnete Esc taster, on će aktivirati veoma zgodan meni na vrhu ekrana. Ovo ga čini vrlo lakim za korišćenje, pošto ne treba da se uče sve prečice na tastaturi. Ljudi koji ne koriste teskstualne brauzere će ceniti ovu mogućnost.

links izgleda da ima bolju podršku i za frejmove i za tabele u poređenju sa lynx-om.

Figure 13-6. Links, sa otvorenim fajl menijem


13.8.3 wget

wget(1) je program iz komandane linije koji će skinuti fajlove sa naznačenog URL-a. Iako nije baš web brauzer, wget se primarno korisiti za skidanje celih ili delova sajtova radi pregledanja u lokalu, ili za brzo skidanje pojedinačnih fajlova sa HTTP i FTP servera. Osnovna sintaksa je:

% wget <url>

Takođe, možete mu preneti opcije. Na primer, ovo će skinuti ceo Slackware web sajt:

% wget --recursive http://www.slackware.com

wget će napraviti www.slackware.com direktorijum i snimiti fajlove u njega, baš kao što su i na sajtu.

wget takođe može da skida fajlova sa FTP servera; samo naznačite FTP URL umesto HTTP.

% wget ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
--12:18:16--  ftp://ftp.gnu.org/gnu/wget/wget-1.8.2.tar.gz
           => `wget-1.8.2.tar.gz'
Resolving ftp.gnu.org... done.
Connecting to ftp.gnu.org[199.232.41.7]:21... connected.
Logging in as anonymous ... Logged in!
==> SYST ... done.   ==> PWD ... done.
==> TYPE I ... done. ==> CWD /gnu/wget ... done.
==> PORT ... done.   ==> RETR wget-1.8.2.tar.gz ... done.
Length: 1,154,648 (unauthoritative)

100%[==================================>] 1,154,648     209.55K/s    ETA 00:00

12:18:23 (209.55KB/s) - `wget-1.8.2.tar.gz' saved [1154648]

wget ima mnogo opcija koje ga čine dobrim za specifične skripte (pravljenje kopija web sajtova i slično). Za više informacija treba da se konsultuje man stranica.


13.9 FTP klijenti

FTP stoji za File Transfer Protocol, ili u prevodu Protokol za Transfer Fajlova. Dozvoljava vam da šaljete i primate fajlove između dva računara. Imate FTP server i FTP klijenta. Razmotrićemo klijenta u ovom odeljku.

Za radoznale, “klijent” ste vi. “Server” je računar koji odgovara na vaše FTP zahteve i dozvoljava vam da se ulogujete. Skidaćete fajlove sa servera i slaćete ih njemu. Klijent ne može da primi FTP konekcije, on može samo da se konektuje na FTP servere.


13.9.1 ftp

Kako biste se konektovali na FTP server, jednostavno izvršite ftp(1) komandu i naznačite domaćina:

% ftp <hostname> [port]

Ukoliko domaćin izvršava FTP server, upitaće vas za korisničko ime i lozinku. Možete se ulogovati kao vi ili kao “anonymous”, odnosno anonimno. Anonimni FTP sajtovi su veoma popularni za arhive softvera. Na primer, kako biste skinuli Slackware Linux preko FTP-a, možete koristiti anonimni FTP.

Jednom kada se konektujete, bićete na ftp> promptu. Postoje specijalne komande za FTP, ali su slične ostalim standardnim komandama. Sledeći primer pokazuje neke osnovne komande i šta one rade:

Table 13-1. ftp komande

Komanda Svrha
ls Lista fajlove
cd <dirname> Menja direktorijum
bin Postavlja binarni mod transfera
ascii Postavlja ASCII mod transfera
get <filename> Skida fajl
put <filename> Šalje fajl
hash Uključuje/isključuje tarabu kao indikator statusa
tick Uključuje/isključuje indikator brojač bajtova
prom Uključuje/isključuje interaktivni mod za skidanje
mget <mask> Skida fajl ili grupu fajlova; znaci za višestruko označavanje su dozvoljeni
mput <mask> Šalje fajl ili grupu fajlova; znaci za višestruko označavanje su dozvoljeni
quit Izloguje vas sa FTP servera

Takođe možete da koristite neku od sledećih komandi koje same sebe objašnjavaju: chmod, delete, rename, rmdir. Za kompletnu listu komandi i njihovo objašnjenje, samo ukucajte help ili ? i videćete kompletan listing na ekranu.

FTP je prilično jednostavan program za korišćenje, ali nedostaje mu korisnički interfejs na koji su mnogi korisnici danas navikli. Man stranica objašnjava neke od opcija iz komandne linije za ftp(1).

ftp> ls *.TXT
200 PORT command successful.
150 Opening ASCII mode data connection for /bin/ls.
-rw-r--r--   1 root     100         18606 Apr  6  2002 BOOTING.TXT
-rw-r--r--   1 root     100         10518 Jun 13  2002 COPYRIGHT.TXT
-rw-r--r--   1 root     100           602 Apr  6  2002 CRYPTO_NOTICE.TXT
-rw-r--r--   1 root     100         32431 Sep 29 02:56 FAQ.TXT
-rw-r--r--   1 root     100        499784 Mar  3 19:29 FILELIST.TXT
-rw-r--r--   1 root     100        241099 Mar  3 19:12 PACKAGES.TXT
-rw-r--r--   1 root     100         12339 Jun 19  2002 README81.TXT
-rw-r--r--   1 root     100         14826 Jun 17  2002 SPEAKUP_DOCS.TXT
-rw-r--r--   1 root     100         15434 Jun 17  2002 SPEAK_INSTALL.TXT
-rw-r--r--   1 root     100          2876 Jun 17  2002 UPGRADE.TXT
226 Transfer complete.
ftp> tick
Tick counter printing on (10240 bytes/tick increment).
ftp> get README81.TXT
local: README81.TXT remote: README81.TXT
200 PORT command successful.
150 Opening BINARY mode data connection for README81.TXT (12339 bytes).
Bytes transferred: 12339
226 Transfer complete.
12339 bytes received in 0.208 secs (58 Kbytes/sec)

13.9.2 ncftp

ncftp(1) (izgovara se kao "Nik-F-T-P") je alternativa tradicionalnom ftp klijentu koji dolazi uz Slackware. Još uvek je tekstualan, ali pruža mnoge prednosti nad ftp-om, uključujući:

  • Dovršavanje teksta sa Tab tasterom

  • Fajl sa markerima

  • Liberalnije korišćenje znakova za zamenu

  • Istoriju komandi

Podrazumevano, ncftp će pokušati da se uloguje anonimno na zadati server. Možete naterati ncftp da prikaže login prompt pomoću “-u” opcije. Jednom kada se ulogujete, možete koristiti iste komande kao i u ftp-u, samo što ćete primetiti lepše okruženje, koje radi slično bash-u.

ncftp /pub/linux/slackware > cd slackware-current/
Please read the file README81.TXT
  it was last modified on Wed Jun 19 16:24:21 2002 - 258 days ago
CWD command successful.
ncftp ...ware/slackware-current > ls
BOOTING.TXT               FAQ.TXT                   bootdisks/
CHECKSUMS                 FILELIST.TXT              extra/
CHECKSUMS.asc             GPG-KEY                   isolinux/
CHECKSUMS.md5             PACKAGES.TXT              kernels/
CHECKSUMS.md5.asc         PRERELEASE_NOTES          pasture/
COPYING                   README81.TXT              rootdisks/
COPYRIGHT.TXT             SPEEKUP_DOCS.TXT          slackware/
CRYPTO_NOTICE.TXT         SPEEK_INSTALL.TXT         source/
CURRENT.WARNING           Slackware-HOWTO
ChangeLog.txt             UPGRADE.TXT
ncftp ...ware/slackware-current > get README81.TXT
README81.TXT:                                           12.29 kB  307.07 kB/s

13.10 Pričanje sa drugim ljudima

13.10.1 wall

wall(1) je brz način da pošaljete poruku svim korisnicima na sistemu. Osnovna sintaksa je:

% wall [fajl]

Ovo će rezultovati da sadržaj [fajla] bude prikazan na terminalima svih trenutno ulogovanih korisnika. Ako ne naznačite fajl, wall će pročitati iz standardnog ulaza, pa tako možete samo ukucati poruku i završiti je sa Ctrl+d.

wall nema mnogo mogućnosti, osim što vam dopušta da obavestite vaše korisnike da će te raditi neku ozbiljnu opravku sistema, ili ga čak restartovati, pa će tako imati vremena da snime svoj rad i da se izloguju. :)


13.10.2 talk

talk(1) dozvoljava dvojici korisnika da ćaskaju. On podeli ekran na pola, horizontalno. Da biste zahtevali ćaskanje sa drugim korisnikom, koristite ovu komandu:

% talk <osoba> [ttyname]

Figure 13-7. Dva korisnika u talk sesiji

Ako naznačite samo korisničko ime, podrazumeva se da će ćaskanje biti lokalno, pa se tako šalje poziv samo lokalnim korisnicima. Ttyname je obavezno ukoliko želite da kontaktirate korisnika na određenom terminalu (ako je korisnik ulogovan više od jednog puta). Zahtevane informacije za talk mogu da se dobave pomoću komande w(1).

talk takođe može da pozove korisnike na udaljenim računarima. Za korisničko ime samo specifirajte adresu e-pošte. talk će pokušati da kontaktira udaljenog korisnika na tom računaru.

talk je donekle ograničen. Podržava samo dva korisnika i radi na half-duplex prinicipu.


13.10.3 ytalk

ytalk(1) je unazad kompatibilna zamena za talk. Dolazi sa Slackware-om kao ytalk komanda. Sintaksa je slična, ali ima nekoliko razlika:

% ytalk <korisnik>[#ttyname]

Figure 13-8. Dva korisnika u ytalk sesiji

Ime korisnika i terminal su naznačeni isto kao i kod talk-a, osim što ih morate naznačiti zajedno sa znakom tarabe (#).

ytalk pruže nekoliko prednosti:

  • Podržava više od dva korisnika.

  • Meni sa opcijama se može pozvati u svakom trenutku pomoću tastera Esc.

  • Možete izaći u konzolu dok ste još uvek u talk sesiji.

  • Plus još neke...

Ako ste administrator server, moraćete da osigurate da je ntalk port omogućen u fajlu /etc/inetd.conf. ytalk-u je ovo potrebno da bi ispravno radio.


Chapter 14 Sigurnost

Sigurnost je važna na svakom sistemu; može sprečiti ljude da pokreću napade sa vaše mašine, kao i da zaštiti osetljive podatke. Ova glava je o tome kako osigurati vašu Slackware mašinu od napadača, krekera i sličnih štetočina. Zapamtite da je ovo samo početak osiguravanja sistema; sigurnost je proces, ne stanje.


14.1 Isključivanje servisa

Prvi korak posle instaliranja Slackware-a bi trebao biti da se isključe svi servisi koji vam ne trebaju. Svaki servis je potencijalni sigurnosni rizik, pa je važno da se izvršava što manje servisa (tj. samo oni koji su potrebni). Servisi se startuju sa dva glavna mesta - inetd i init skripte.


14.1.1 Servisi pokrenuti iz inetd

Mnogo demona (nadimak za servise u Linux-u) koji dolaze sa Slackware-om se pokreću iz inetd(8). inetd je demon koji sluša na svim portovima koje koriste servisi konfigurisani da se pokreću njime, i pokreće relevantnog demona kada se napravi pokušaj konekcije. Demoni pokrenuti iz inetd mogu biti isključeni tako što se zakomentarišu relevantne linije u /etc/inetd.conf. Da bi se ovo uradilo, otvorite ovaj fajl u vašem omiljenom editoru (npr. vi) i trebalo bi da vidite linije slične ovoj:

telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd

Možete isključiti ovaj servis, i bilo koji drugi koji vam ne treba, tako što ih zakomentarišete (tj. dodate # (taraba) simbol na početak linije). Ova linije gore bi onda postala:

#telnet stream  tcp     nowait  root    /usr/sbin/tcpd  in.telnetd

Kada se inetd restartuje, ovaj servis će biti isključen. inetd možete restartovati komandom:

# kill -HUP $(cat /var/run/inetd.pid)

14.1.2 Servisi pokrenuti iz init skripti

Ostatak servisa koji se pokrenu pri uključivanju mašine se pokreće iz init skripti u /etc/rc.d/. Oni mogu biti isključen na dva različita načina, prvi bi bio da se uklone izvršne dozvole na relevantnim init skriptama, a drugi da se zakomentarišu relevantne linije u init skriptama.

Za primer, SSH se pokreće pomoću svoje sopstvene init skripte u /etc/rc.d/rc.sshd. Možete onemogućiti ovo koristeći:

# chmod -x /etc/rc.d/rc.sshd

Za servise koji nemaju svoju sopstvenu init skriptu, moraćete da zakomentarišete relevantne linije u init skriptama da biste ih isključili. Na primer, portmap demon se pokreće sledećim linijama u /etc/rc.d/rc.inet2:

# This must be running in order to mount NFS volumes.
# Start the RPC portmapper:
if [ -x /sbin/rpc.portmap ]; then
  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
  /sbin/rpc.portmap
fi
# Done starting the RPC portmapper.

Ovo se može onemogućiti dodavanjem # simbola na početke linija koje već ne počinju sa njim, pa tako:

# This must be running in order to mount NFS volumes.
# Start the RPC portmapper:
#if [ -x /sbin/rpc.portmap ]; then
#  echo "Starting RPC portmapper:  /sbin/rpc.portmap"
#  /sbin/rpc.portmap
#fi
# Done starting the RPC portmapper.

Ove promene će imati efekat nakon restarta ili promene i povratka u run nivo 3 ili 4. Ovo možete uraditi kucanjem sledećeg u konzoli (moraćete opet da se ulogujete nakon menjanja u run nivo 1):

# telinit 1
# telinit 3

14.2 Kontrola pristupa

14.2.1 iptables

iptables je program za podešavanje filterovanja paketa u Linux-u 2.4 i višim. Kernel 2.4 (2.4.5, da budemo tačni) je prvi ovo uveo u Slakcware (kao opciju) u verziji 8.0 i napravljeno je podrazumevanim u verziji Slackware 8.1. Ova sekcija pokriva samo osnove njegovog korišćenja i trebali bi pogledati http://www.netfilter.org/ za više detalja. Ove komande mogu biti unešene u /etc/rc.d/rc.firewall, koji mora biti postavljen kao izvršni kako bi ova pravila bila primenjena prilikom startovanja. Zapamtite da nepravilne iptables mogu da vam bukvalno zaključaju mašinu i da vam pristup bude zabranjen. Ukoliko niste 100% sigurni u svoje veštine, uvek osigurajte da imate lokalni pristup mašini.

Prva stvar koju bi većina ljudi trebala da uradi je podese podrazumevano pravilo za svaki dolazni lanac na DROP (odbaci):

# iptables -P INPUT DROP
# iptables -P FORWARD DROP

Kada je sve odbijeno, možete početi dozvoljavati stvari. Prva stvar za dozvolu je bilo kakav saobraćaj za sesije koje su već uspostavljene:

# iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT

Iz razloga da se ne bi ometala bilo koja aplikacija koja komunicira koristeći loopback adresu, obično je mudro da se doda i ovakvo pravilo:

# iptables -A INPUT -s 127.0.0.0/8 -d 127.0.0.0/8 -i lo -j ACCEPT

Ovo pravilo dozvoljava bilo koji saobraćaj od i do 127.0.0.0/8 (127.0.0.0 - 127.255.255.255) na loopback (lo) interfejsu. Kada se pišu pravila, dobra je ideja biti specifičan što je više moguće, kako bi se osigurali da vaša pravila nenamerno ne dozvole bilo šta zlo. Time rečeno, pravila koja dozvoljavaju premalo znače više pravila i više kucanja.

Sledeće stvar je da se dozvoli pristup određenim servisima koji se izvršavaju na vašoj mašini. Ako, na primer, želite da izvršavate Web server na svojoj mašini, koristićete pravilo slično ovome:

# iptables -A INPUT -p tcp --dport 80 -i ppp0 -j ACCEPT

Ovo će dozvoliti pristup sa svake mašine na port 80 vašeg računara preko ppp0 interfejsa. Možda ćete želeti da dozvolite pristup ovom servisu samo određenim mašinama. Ovo pravilo dozvoljava pristup vašem web servisu sa 64.57.102.34:

# iptables -A INPUT -p tcp -s 64.57.102.34 --dport 80 -i ppp0 -j ACCEPT

Dopuštanje ICMP saobraćaja može biti korisno za dijagnostičke svrhe. Da biste uradili ovo, koristite ovakvo pravilo:

# iptables -A INPUT -p icmp -j ACCEPT

Većina ljudi će takođe želeti da podesi Prevođenje Mrežnih Adresa (Network Address Translation, NAT) na svojim gateway mašinama, tako da druge mašine na njihovim mrežama mogu pristupiti Internetu kroz njih. Koristićete sledeće pravilo kako biste to postigli:

# iptables -t nat -A POSTROUTING -o ppp0 -j MASQUERADE

Takođe ćete trebati da uključite prosleđivanje IP-a (IP forwarding). Ovo možete uraditi privremeno, koristeći sledeću komandu:

# echo 1 > /proc/sys/net/ipv4/ip_forward

Da bi se prosleđivanje IP-a uključilo za stalno (tj. da ta promena ostane posle restarta) moraćete otvoriti fajl /etc/rc.d/rc.inet2 u vašem omiljenom editoru u promeniti sledeću liniju:

IPV4_FORWARD=0

...u ovo:

IPV4_FORWARD=1

Za više informacija o NAT-u, pogledajte link NAT HOWTO.


14.2.2 tcp omotači

tcp omotači (tcpwrappers) kontrolišu pristup demona na aplikacijskom nivou, pre nego na IP nivou. Ovo može pružiti dodatni sloj zaštite u trenutcima kada kontrole pristupa na IP nivou (npr. Netfilter) ne funkcionišu ispravno. Na primer, ukoliko ponovo kompajlirate kernel, ali zaboravite da uključite podršku za iptables, vaša zaštita na IP nivou neće uspeti, ali tcp omotači će i dalje pomagati u odbrani vašeg sistema.

Pristup servisima koje štite tcp omotači može biti kontrolisan korišćenjem /etc/hosts.allow i /etc/hosts.deny.

Većina ljudi će imati samo jednu liniju u svom /etc/hosts.deny fajlu koja će podrazumevano braniti pristup svim demonima. Ova linija je:

ALL : ALL

Kada ste ovo uradili, možete se koncentrisati na dozvoljavanje pristupa servisima za specifične računare, domene ili opsege IP adresa. Ovo može biti urađeno u fajlu /etc/hosts.allow koji poštuje isti format.

Mnogi će početi tako što će prihvatiti sve konekcije od strane localhost-a. Ovo se može postići korišćenjem:

ALL : 127.0.0.1

Da biste dopustili pristup SSH demonu sa 192.168.0.0/24, možete koristi jedno od sledećih pravila:

sshd : 192.168.0.0/24
sshd : 192.168.0.

Takođe je moguće ograničiti pristup računarima u određenim domenima. To se može postići ako se koristi sledeće pravilo (zapamtite da se ovo oslanja na unos reverznog DNS-a kako bi se osiguralo da je računar koji se konektuje baš taj kojim se predstavlja, pa bih ja stoga preporučio da se ovaj način ne koristi na računarima koji su povezani na Internet):

sshd : .slackware.com

14.3 Ostajanje u toku

14.3.1 slackware-security mejling lista

Kada god neki sigurnosni prolem utiče na Slackware, e-poruka bude poslata svim pretplatnicima na slackware-security@slackware.com mejling listu. Izveštaji se šalju za ranjivosti bilo kojeg dela Slackware-a, osim softvera u /extra ili /pasture. Ove sigurnosne objave uključuju detalje o dobavljanju ispravnih verzija Slackware paketa i zaobilaznih načina ispravljanja, ukoliko postoje.

Pretplaćivanje na Slackware mejling liste je objašnjeno u Section 2.2.2.


14.3.2 /patches direktorijum

Kada god se objave osveženi paketi za neku verziju Slackware-a (obično samo da bi se ispravio sigurnosni problem, u slučaju već objavljenih Slackware verzija), on bude smešten u /patches direktorijum. Puna putanja do ovih zakrpa zavisi od sajta kojeg koristite, ali će imati formu /path/to/slackware-x.x/patches/.

Pre instaliranja ovih paketa, dobra je ideja da proverite md5sum paketa. md5sum(1) je alatka iz komandne linije koja stvara “jedinstven” matematički hash (broj) od fajla. Ukoliko se makar jedan bit fajla promeni, on će onda imati različitu md5sum vrednost.

% md5sum package-<ver>-<arch>-<rev>.tgz
6341417aa1c025448b53073a1f1d287d  package-<ver>-<arch>-<rev>.tgz

Onda treba da proverite ovaj broj da li se slaže sa brojem za novi paket u fajlu CHECKSUMS.md5 u korenom direktorijumu slackware-$VERSION (takođe i u /patches direktorijumu za zakrpe) ili u e-poruci na slackware-security mejling listu.

Ukoliko imate fajl sa md5sum vrednostima, možete ga iskoristiti za brzu proveru pomoću -c opcije programa md5sum.

# md5sum -c CHECKSUMS.md5
./ANNOUNCE.10_0: OK
./BOOTING.TXT: OK
./COPYING: OK
./COPYRIGHT.TXT: OK
./CRYPTO_NOTICE.TXT: OK
./ChangeLog.txt: OK
./FAQ.TXT: FAILED

Kao što vidite, svi fajlovi čije su md5sum vrednosti izračunate ispravno su izlistani sa “OK” dok su fajlovi koji su promenjeni označeni sa “FAILED”. (Da, ovo je bila uvreda vaše inteligencije. Zašto me trpite?)


Chapter 15 Arhivski fajlovi

15.1 gzip

gzip(1) je GNU program za kompresiju. On uzima jedan fajl i kompresuje ga. Osnove korišćenja su sledeće:

% gzip filename

Rezultujući fajl će biti nazvan filename.gz i obično će biti manji od ulaznog fajla. Primetite da će filename.gz zameniti filename. Ovo znači da filename više neće postojati, iako će gzipovana kopija i dalje biti tu . Obični tekstualni fajlovi se mogu lepo kompresovati, dok jpeg slike, mp3, i ostale slične vrste fajlova neće biti dobro kompresovani pošto su već bili kompresovani. Osnova korišćenja je balans između finalne veličine fajla i vremena potrebnog za kompresiju. Maksimalna kompresija se može postići sa:

% gzip -9 filename

Za ovo će biti potrebno duže vreme, ali rezultirajući fajl će biti mali koliko god gzip može da ga učini. Korišćenje nižih vrednosti kao opcija će imati učinak da se sama kompresija odvija brže, ali veličina fajla neće biti ista kao pri maksimalnoj kompresiji.

Dekompresija gzipovanog fajla može biti učinjena koristeći dve komande, koje su ustvari jedan te isti program. gzip će dekompresovati bilo koji fajl ako prepozna njegovu ekstenziju. Validne ekstenzije koje se automatski prepoznaju mogu biti neke od ovih: .gz, -gz, .z, -z, .Z, ili -Z. Prvi metod je da se primeni komanda gunzip(1) na nekom fajlu, kao na primer:

% gunzip filename.gz

Ovo će ostaviti dekompresovanu verziju ulaznog fajla u trenutnom direktorijumu, i .gz ekstenzija će biti uklonjena iz imena fajla. gunzip je ustvari deo gzip komande i identična je sa gzip -d. Kao takav, gzip se često izgovara kao gunzip, pošto takav naziv izgleda više cool. :^)


15.2 bzip2

bzip2(1) je alternativni program za kompresiju instaliran na Slackware Linuxu. Koristi se različit algoritam kompresije u odnosu na gzip, što rezultira nekim prednostima i nekim manama. Osnovna prednost bzip2 komande je da će veličina kompresovanog fajla kojeg napravi bzip2 komanda skoro uvek biti manja od onog kojeg napravi gzip komanda. U nekim slučajevima ovo može rezultirati drastično manjim fajlovima. Ovo može biti velika prednost za ljude sa sporijim modemskim vezama. Takođe treba zapamtiti, da prilikom preuzimanja softvera sa javnih ftp servera, smatra se dobrim običajem da se preuzimaju fajlovi sa .bz2 ekstenzijom umesto .gz fajlova, pošto će takva praksa rezultirati manjim opterećenjem za darežljive ljude koji hostuju server.

Negativne strane bzip2 komande su te da zahteva više procesorske snage od gzip naredbe. To znači da će bzip-ovanje fajla duže trajati i zahtevaće veće opterećenje procesora od gzip-ovanja istog fajla. Kada uzimate u obzir koji program za kompresiju da koristite, morate imati u vidu brzinu kompresije, kao i veličinu kompresovanog fajla te na osnovu toga odlučiti šta je važnije.

Korišćenje bzip2 naredbe je skoro identično gzip, naredbi tako da nećemo mnogo vremena provesti objašnjavajući je. Kao što je gunzip komanda, tako i bunzip2 je identična bzip2 -d naredbi. Najočiglednija razlika je u tome da bzip2 koristi .bz2 ekstenziju.

% bzip2 filename
% bunzip2 filename.bz2
% bzip2 -9 filename

15.3 tar

tar(1) komanda je GNU tape arhiver. Uzima nekoliko fajlova ili direktorijuma i stvara jedan veliki fajl. Ovo nam omogućava da kompresujemo celo stablo direktorijuma, što je nemoguće učiniti koristeći samo gzip ili bzip2 naredbu. tar komanda ima dosta opcija koje su objašnjene na njenoj man strani, Ovaj deo će objasniti samo najosnovnije stvari tar naredbe.

Uobičajeno se tar naredba koristi da se dekompresuje i raspakuje paket koji je preuzet sa web ili ftp sajta. Većina fajlova dolazi sa ekstenzijom .tar.gz. Ova vrsta arhiva se uobičajeno naziva “tarball”. To znači da je nekoliko fajlova arhivirano pomoću tar naredbe i potom kompresovano pomoću gzip naredbe. Takođe, možete se sresti sa .tar.Z fajlovima. To je ista vrsta arhiva kao prethodna ali se uobičajeno može sresti na starijim Unix sistemima.

Takođe, mogu se naći i fajlovi sa .tar.bz2 ekstenzijom.. Kernel source se distribuira na takav način jer predstavlja manju količinu za skidanje. Kao što se može pretpostaviti ova vrsta fajlova predstavlja više fajlova arhiviranih tar naredbom a zatim kompresovano bzipom.

Može se pristupiti svim fajlovima u ovoj arhivi koristeći tar i određene argumente u komandnoj liniji. Raspakivanje tarball-a se vrši korišćenjem opcije -z, što znači da se fajl prvo propusti kroz gunzip i dekompresuje se. Najuobičajeniji način da raspakujete tarball je na primer:

% tar -xvzf filename.tar.gz

Postoji prilično mnogo parametara. Ali šta sve oni znače? -x parametar znači ekstrahovanje ili vađenje. Ovo je važno iz razloga što govori tar komandi tačno šta da radi sa ulaznim fajlom. U ovom slučaju mi ćemo razdvojiti ulazni fajl na njegove početne elemente, tj. fajlove od kojih je napravljen. -v parametar znači verbose ili opširno. Ova opcija će izlistati sve fajlove koji se dearhiviraju. Skroz je prihvatljivo da se ova opcija izostavi, Takodje, može se koristiti -vv parametar koji još opširnije predstavlja podatke koji se raspakivaju. -z parametar govori tar komandi da provuče filename.tar.gz kroz gunzip naredbu.I na kraju -f opcija govori tar komandi da je sledeći niz znakova unetih u komandnu liniju fajl nad kojim se vrši operacija.

Postoji još nekoliko različitih načina da se napiše ova komanda. Na starijim sistemima bez adekvatne GNU tar komande, možete je videti napisanu ovako:

% gunzip filename.tar.gz | tar -xvf -

Ova naredba će dekompresovati fajl i izlaz poslati tar komandi. Pošto će gzip naredba da pošalje rezultat na standardni izlaz ako joj se kaže, ova naredba će ispisati dekompresovan fajl na standardni izlaz. Pipe će ga onda poslati tar komandi na dearhiviranje. “-” znači da se operacije vrše na standardnom ulazu. To će dearhivirati tok podataka koji se dobije od gzip komande i zapisati na disk.

Još jedan način da se napiše cela komanda je da se izostavi crtica pre navodjenja parametara, kao naprimer:

% tar xvzf filename.tar.gz

Možete takođe naleteti na bzip-ovane arhive. Verzija tar komande koja dolazi uz Slackware Linux može da barata njima isto kao sa gzip-ovanim arhivama. Umesto -z opcije koristi se -j parametar:

% tar -xvjf filename.tar.bz2

Važno je naglasiti da će tar naredba smestiti dearhivirane fajlove u trenutni direktorijum. Tako da, ako imate arhivu u /tmp koju želite da dekompresijete u vaš home direktorijum, imate na raspolaganju nekoliko opcija. Prvo, arhivu možete premestiti u svoj home direktorijum. i onda je propustiti kroz tar naredbu. Drugo, možete srecificirati putanju do arhive u komandnoj liniji. Treće, možete koristiti -C opciju da “raširi” tarball u naznačenom direktorijumu.

% cd $HOME
% cp /tmp/filename.tar.gz .
% tar -xvzf filename.tar.gz

% cd $HOME
% tar -xvzf /tmp/filename.tar.gz

% cd /
% tar -xvzf /tmp/filename.tar.gz -C $HOME

Svi gore navedeni primeri su istovetni. U svakom od navedenih slučajeva arhiva je otpakovana unutar vašeg početnog (home) direktorijuma i originalna dekompresovana arhiva je postavljena na mesto.

Ali šta nam znači da možemo da dekompresujemo ove arhive ako ne možemo da ih kreiramo? Dakle, tar komanda je takodje odgovorna za kreiranje arhiva. U većini slučajeva to je jednostavno kao što je uklanjanje “-x” parametra i njegova zamena sa “-c” parametrom.

% tar -cvzf filename.tar.gz .

U ovoj naredbi -c parametar govori tar komandi da kreira arhivu, dok -z parametar provlači rezultujući fajl kroz gzip naredbu da bi ga kompresovao. filename.tar.gz je naziv fajla koji želite da kreirate.

Navođenje “-f” parametra nije uvek potrebno,ali se smatra dobrom praksom. Bez njega, tar komanda piše na standardni izlaz što je poželjno kada se izlaz tar komande koristi kao ulaz drugog programa, tzv. pipe. Kao na primer.

% tar -cv filename.tar . | gpg --encrypt

Ova komanda kreira nekompresovanu tar arhivu od sadržaja tekućeg direktorijuma, pipe-uje tarball kroz gpg program koji enkriptuje i kompresuje tarball, čineći nemogućim da ga iko drugi pročita ili koristi osim osobe koja poseduje tajni ključ.


15.4 zip

Na kraju ćemo opisati dva alata koji lako mogu biti korišćeni za manipulaciju zip fajlovima. Ova vrsta arhiva je uobičajena u Windows svetu, tako da Linux ima program kojim može manipulisati njima. Program za kompresiju se naziva zip(1), a za dekompresiju se naziva unzip(1).

% zip foo *

Ovo će kreirati arhivu po nazivu foo.zip, koja će sadržati sve fajlove iz tekućeg direktorijuma. zip naredba će dodati .zip ekstenziju automatski, tako da nema potrebe da je uključite u naziv fajla. Možete se takođe vratiti nazad u tekući direktorijum i zip-ovati sve direktorijume koji se tamo nalaze.

% zip -r foo *

Dekompresija zip arhiva je takođe jednostavna.

% unzip foo.zip

Ova komanda će ekstrakovati sve fajlove iz foo.zip arhive uključujući i direktorijume.

zip alati imaju nekoliko naprednih opcija za kreiranje samoraspakujućih arhiva, izostavljanje fajlova, kontrolisanje veličine kompresovanog fajla, i tako dalje. Pogledajte man stranicu zip i unzip komandi da bi saznali kako se koriste ove opcije.


Chapter 16 Vi

vi(1) je standardni Unix program za uređivanje teksta, i mada njegovo savlađivanje nije esencijalno kao što je nekada bilo, još uvek je cilj vredan truda. Postoji nekoliko verzija (ili klonova) programa vi koje su dostupne, uključujući vi, elvis, vile i vim. Jedan od ovih je dostupan na svakoj verziji Unix-a, a takođe i na Linux-u. Sve ove verzije imaju iste osnovne funkcije, postavke i komande, tako da ako naučite jednog klona, vrlo lako ćete onda ovladati i drugim. Sa raznovrsnošću uređivača teksta koji su uključeni u Linux distribucije i Unix varijante ovih dana, mnogi ljudi više ne koriste vi. Ali i on i dalje ostaje najuniverzalniji uređivač teksta u Unix-u i njemu sličnim. Savladavanje vi-a znači da nikada ne biste trebali sedeti za Unix mašinom, a da se ne osećate udobno u bar jednom od moćnih uređivača teksta.

vi ima brojne moćne osobine uključujući bojenje teksta prema sintaksi, formatiranje koda, moćan mehanizam za pretragu i zamenu, makroe i još mnogo toga. Ove osobine ga čine posebno atraktivnim za programere, tvorce web aplikacija i njima slične. Sistemski administratori će znati da cene automatizaciju i integraciju sa školjkom koja je moguća.

Na Slackware Linux-u, podrazumevana verzija vi koja je dostupna je elvis. Druge verzije, uključujući vim i gvim su takođe dostupne ukoliko ste instalirali odgovarajuće pakete. gvim je X Window verzija vim-a koja uključuje palete sa altima, menije koji mogu da se otkače i prozore.


16.1 Pokretanje programa vi

vi može biti pokrenut iz komandne linije na razne načine. Najednostavnije je samo:

% vi

Figure 16-1. Vi sesija

Ovo će pokrenuti vi sa praznim baferom. U ovom trenutku, uglavnom ćete videti prazan ekran. On je sada u “komandnom modu”, čeka da vi uradite nešto. Za opis raznih vi modova pogledajte Section 16.2. Kako biste izašli iz programa vi, ukucajte sledeće:

:q

Ako pretpostavimo da nije bilo promena u fajlu, ovo će imati za rezultat izlazak iz programa vi. Ako su bile neke promene, on će vas upozoriti da je fajl promenjen i objasniti vam kako da ih ignorišete. Ignorisanje promena obično znači dodavanje uzvičnika posle “q”, pa tako:

:q!

Uzvičnik obično znači da se neka akcija izvede na silu. Razmotrićemo kasnije tu i ostale kombinacije tastera u detalje.

Takođe možete pokrenuti vi sa fajlom koji već postoji. Na primer, fajl /etc/resolv.conf bi bio otvoren ovako:

% vi /etc/resolv.conf

Konačno, vi može biti pokrenut ali da se prebaci na određenu liniju u fajlu. Ovo je posebno korisno za programere kada greška o poruci ispiše liniju u kojoj je njihov program stao. Na primer, pokrenućete vi na liniji 47 fajla /usr/src/linux/init/main.c ovako:

% vi +47 /usr/src/linux/init/main.c

vi će prikazati dati fajl i postaviće kursor na specificiranu liniju. U slučajevima kada naznačite liniju koja je posle kraja fajla, vi će staviti kursor u poslednju liniju. Ovo je posebno zgodno za programere, pošto mogu skočiti odmah na lokaciju u fajlu gde se dogodila greška, bez potrebe da je traže.


16.2 Modovi

vi radi u raznim modovima, koji se koriste za razne zadatke. Kada prvi put startujete vi, postavljeni ste u komandni mod. Odavde, možete izdati razne komande za manipulaciju tekstom, premeštati fajl, snimiti, izaći iz programa i menjati modove. Uređivanje teksta se radi u insert modu. Možete brzo menjati modove preko raznih tastera, koji su objašnjeni ispod.


16.2.1 Komandni mod

Na početku ste stavljeni u komandni mod. Iz ovog moda ne možete direktno unositi tekst ili uređivati ono šte se već tamo nalazi. Međutim, možete manipulisati tekstom, tražiti, ugasiti, snimiti, učitati novi fajl i još mnogo toga. Ovo je zamišljeno da bude samo uvod u komandni mod. Za opis raznih komandi pogledajte Section 16.7.

Verovatno najčešće korišćena komanda u komandnom modu je promena u insert mod. Ovo se postiže pritiskanjem tastera i. Kursor menja oblik i pojavljuje se -- INSERT -- na dnu ekrana (zapamtite da se ovo ne dešava na svim vi klonovima). Odatle, svi vaši unosi se pojavljuju u trenutnom baferu i prikazuju na ekranu. Da biste se vratili u komandni mod pritisnite taster ESCAPE.

U komandnom modu se takođe krećete po fajlu. Na nekim sistemima možete koristiti tastere sa strelicama da biste se kretali. Na drugim, možda ćete morati koristiti tradicionalne tastere “hjkl”. Evo spiska kako se ovi tasteri koriste za kretanje:

h pomeri levo za jedno slovo
j pomeri dole za jedno slovo
k pomeri gore za jedno slovo
l pomeri desno za jedno slovo

Jednostavno pritisnite taster da se pokrenete. Kao što ćete videti kasnije, ovi tasteri mogu biti kombinovani sa brojem radi efikasnijeg pomeranja.

Mnoge od komandi koje ćete koristiti u komandnom modu počinju sa dvotačkom. Na primer, izlaženje iz programa je :q, kao što smo već napisali ranije. Dvotačka jednostavno naznačuje da je to komanda, dok “q” govori programu vi da završi sa radom. Druge komande su opcionalni broj kojeg prati slovo. Ove komande nemaju dvotačku ispred i uopšteno se koriste za manipulaciju tekstom.

Na primer, brisanje jedne linije iz fajla se postiže pritiskanjem dd. Ovo će ukloniti liniju na kojoj je kursor. Izdavanje komande 4dd će reći programu vi da ukloni liniju na kojoj je kursor i još tri posle nje. Uopšteno govoreći, brojevi govore programu vi koliko puta da izvrši komandu.

Možete kombinovati broj sa tasterima za kretanje kako biste preskakali nekoliko slova odjednom. Na primer, 10k će skočiti za deset linija gore na ekranu.

Komandni mod takođe može biti iskorišćen za isecanje i nalepljivanje, ubacivanje teksta i učitavanje drugih fajlova u trenutni bafer. Kopiranje teksta se postiže sa y tasterom (y stoji za yank). Kopiranje trenutne linije se radi sa yy, a ovo može biti sa brojem prefiksom kako bi se kopiralo više linija. Onda se prebacite na mesto gde treba da se kopira i pritisnite p. Tekst će biti nalepljen na liniju iza trenutne.

Isecanje teksta se radi kucanjem dd, pa p može biti iskorišten da se nalepi isečeni tekst nazad u fajl. Učitavanje teksta iz drugog fajla je jednostavna procedura. Samo ukucajte :r, praćen razmakom i imenom fajla koji sadrži tekst kojeg treba ubaciti. Sadržaj fajla će biti nalepljen u trenutni bafer na liniji posle kursora. Softiciraniji vi klonovi čak sadrže dopunjavanje imena fajla slično školjci.

Poslednje korišćenje koje će biti opisano je pretraga. Komandni mod dozvoljava jednostavnu pretragu, ali takođe i komplikovane traži-i-zameni komande koje koriste moćnu verziju regularnih izraza. Iscrpna diskusija o regularnim izrazima je izvan opsega ovog odeljka, pa će ova sekcija pokriti samo jednostavne načine pretrage.

Jednostavna pretraga se vrši pritiskanjem tastera /, pa zatim teksta kojeg tražite. vi će tražiti unapred od kursora do kraja fajla, zaustavljajući se kada pronađe to što tražite. Primetite da će netačna poklapanja takođe naterati vi da stane. Na primer, potraga za “the” će imati za rezultat da vi stane na “then”, “therefore”, i tako dalje. Ovo se dešava je sve od ovih reči imaju u sebi “the”.

Kada vi nađe prvo poklapanje, možete nastaviti jednostavnim pritiskanjem tastera / pa zatim enter. Takođe možete tražiti unazad ukoliko znak za deljenje zamenite sa ? znakom. Na primer, traženje unazad za “the” se može postići kad se ukuca ?the.


16.2.2 Insert mod

Unošenje i zamena teksta se vrše u insert modu. Kao što je pre rečeno, možete doći u insert mod tako što pritisnete i u komandnom modu. Tada, svaki tekst kojeg ukucate se unosi u trenutni bafer. Pritiskanje tastera ESCAPE vas vraća u komandni mod.

Zamena teksta se vrši na nekoliko načina. Iz komandnog moda, pritiskanje tastera r će vam dopustiti da zamenite jedno slovo pod kursorom. Samo pritisnite novo slovo i ono će zameniti ono pod kursorom. Odmah posle toga ćete biti opet stavljeni u komandni mod. Pritiskanje R vam dozvoljava da zamenite koliko god slova želite. Da biste izašli iz moda za zamenu, samo pritisnite ESCAPE i vratićete se u komandni mod.

Postoji još jedan način da se prebacuje između umetanja i zamene. Pritiskanjem tastera INSERT u komandnom modu će vas staviti u insert mod. Jednom kada ste u tom modu, taster INSERT služi za prebacivanje između umetanja i zamene. Kada ga jednom pritisnete, dozvoliće vam zamenu. Još jednom ga pritisnite i biće vam dozvoljeno da umećete tekst.


16.3 Otvaranje fajlova

vi vam dozvoljava da otvorite fajlove bilo iz komandnog moda, ili njihovim naznačivanjem na komandnoj liniji. Da biste otvorili fajl /etc/lilo.conf:

:e /etc/lilo.conf

Ako ste napravili promene u trenutnom baferu, bez snimanja, vi će se žaliti. Uvek možete otvoriti fajl bez snimanja trenutnog bafera kucanjem :e!, pa zatim razmakom i imenom fajla. Uopšteno, upozorenja programa vi mogu biti zanemarena dodavanjem uzvičnika komandi.

Ako želite ponovo da otvorite trenutni fajl, to možete uraditi ako samo otkucate e!. Ovo je posebno korisno ukoliko ste nekako uništili fajl i želite opet da ga otvorite.

Neki vi klonovi (na primer, vim) dozvoljavaju da istovremeno bude otvoreno više bafera. Na primer, kako bih otvorio fajl 09-vi.sgml u mom početnom direktorijumu dok je otvoren neki drugi fajl, ja ću kucao:

:split ~/09-vi.sgml

Novi fajl je prikazan na gornjoj polovini ekrana, a stari fajl je prikazan na donjoj polovini. Postoji mnogo komandi koje manipulišu podeljenim ekranom, a mnoge od ovih komandi počinju da liče kao da su izašle iz Emacs-a. Najbolje mesto da potražite ove komande je man stranica vašeg vi klona. Primetite da mnogi klonovi ne podržavaju ideju podeljenog ekrana, pa je možda nećete moći koristiti.


16.4 Snimanje fajlova

Postoji nekoliko načina da snimite fajl u uređivaču teksta vi. Ukoliko želite da snimite trenutni bafer u fajl naznake, kucaćete:

:w naznake

Jednom kada snimite fajl, ponovno snimanje se vrši jednostavnim :w. Svaka promena će biti zapisana u fajl. Kada je fajl snimljen, bačeni ste u komandni mod. Ukoliko želite da snimite fajl i izađete iz programa vi (vrlo česta operacija), kucaćete :wq. Ovo govori vi programu da snimi trenutni fajl i izađe nazad u školjku.

Ponekad, želećete da snimite fajl koji je označen da može samo da se čita. Ovo možete uraditi tako što ćete dodati uzvičnik posle komande za upis, ovako:

:w!

Međutim, i dalje će postojati slučajevi kada ne možete da upišete u fajl (na primer, pokušavate da uredite fajl čiji je vlasnik drugi korisnik). Kada se ovo desi vi će vam reći da ne može snimiti fajl. Ukoliko stvarno želite da uredite taj fajl, moraćete se vratiti i urediti ga kao root ili (još bolje) kao vlasnik tog fajla.


16.5 Gašenje programa vi

Jedan način da se izađe iz programa vi je kroz :wq, što će snimiti trenutni bafer pre izlaska Takođe možete ugasiti program bez snimanja sa :q ili (češće) :q!. Poslednja varijanta se koristi kada ste modifikovali fajl, ali ne želite da snimite te promene.

Poneka, vaša mašina se može srušiti, ili se može srušiti program vi. Međutim, i elvis i vim će preduzeti korake da se umanji šteta učinjena nad otvorenim baferima. Oba editora snimaju otvorene bafere u privremeni fajl. Ovaj fajl je najčešće slično imenovan kao i otvoreni fajl, ali sa tačkom na početku. To čini da je fajl skriven.

Ovaj privremeni fajl bude uklonjen kada se uređivač ugasi pod normalnim okolnostima. To znači da će privremena kopija još uvek biti tu ukoliko se nešto sruši. Kada se vratite opet da uredite fajl, bićete upitani šta da se učini. U većini slučajeva, veliki deo vašeg nesnimljenog posla može biti vraćen. elvis će vam takođe poslati e-poruku (iz Grejslenda, verovali ili ne :) u kojoj će vam javiti da postoji rezervna kopija.


16.6 vi postavke

Vaš izabrani vi klon može biti podešen na nekoliko načina.

Razne komande mogu biti unešene dok ste u komandnom modu kako bi se vi podesio da bude baš onakav kakvim ga želite. U zavisnosti od vašeg uređivača teksta, možete uključiti osobine koje programiranje čine lakšim (kao što su bojenje teksa, automatsko nazubljivanje i drugo), postaviti makroe za automatske zadatke, uključiti teksutalne zamene i još dosta toga.

Skoro sve od ovih komandi mogu biti stavljene u fajl za postavke unutar vašeg početnog direktorijuma. elvis očekuje fajl .exrc dok vim očekuje fajl .vimrc Mnoge od komadni za postavke koje mogu biti unešene u komandnom modu mogu biti postavljene u fajl za postavke. Ovo uključuje informacije o podešavanjima, tekstualne zamene, makroe i još toga.

Rasprava o ovim opcijama i razlikama između uređivača teksta je prilično komplikovana tema. Za više informacija proverite man ili Internet stranicu vašeg omiljenog vi uređivača teksta. Neki uređivači (kao što je vim) imaju veliki help sistem unutar editora koji se može pogledati sa :help komandom, ili nekom sličnom. Takođe možete pogledati O'Reilly knjigu Učenje vi uređivača teksta koju su napisali Lamb i Robins.

Mnogo često korišćenih programa u Linuxu će podrazumevano učitati teksutalni fajl u vi. Na primer, uređivanje vašeg crontab fajla će podrazumevano pokrenuti vi Ukoliko ne želite vi i želeli biste neki drugi uređivač teksta umesto njega, sve što treba da uradite je da postavite varijablu okruženja VISUAL na uređivač koji vam se sviđa. Za informacije o postavljanju varijabli okruženja pogledajte sekciju sa imenom Varijable okruženja u Glavi 8. Ukoliko želite da budete sigurni da će ovaj uređivač biti podrazumevani svaki put kada se ulogujete, dodajte VISUAL u vaš .bash_profile ili .bashrc fajl.


16.7 vi tasteri

Ova sekcija je brza referenca za često korišćene vi komande. Neke od ovih su objašnjene u prethodnim pasusima, dok neke prvi put srećemo.

Table 16-1. Kretanje

Operacija Taster
levo, dole, gore, desno h, j, k, l
Na kraj linije $
Na početak linije ^
Na kraj fajla G
Na početak fajla :1
Na liniju 47 :47

Table 16-2. Uređivanje

Operacija Taster
Uklanjanje linije dd
Uklanjanje pet linija 5dd
Zamena slova r
Uklanjanje slova x
Uklanjanje deset slova 10x
Poništi prethodnu akciju u
Spoji trenutnu i sledeće linije J
Zameni staro s novim, globalno %s'staro'novo'g

Table 16-3. Pretraga

Operacija Taster
Traži “asdf” /asdf
Traži unazad “asdf” ?asdf
Ponovi poslednju pretragu unapred /
Ponovi poslednju pretragu unazad ?
Ponovi poslednju pretragu u istom smeru n
Ponovi poslednju pretragu u suprotnom smeru N

Table 16-4. Snimanje i izlaženje

Operacija Taster
Izađi :q
Izađi bez snimanja :q!
Snimi i izađi :wq
Snimi, bez izlaženja :w
Ponovo učitaj trenutno otvoren fajl :e!
Snimi bafer u fajl asdf :w asdf
Otvori fajl hejaz :e hejaz
Učitaj fajl asdf u bafer :r asdf
Učitaj izlaz komande ls u bafer :r !ls

Chapter 17 Emacs

Dok je vi (sa svojim klonovima) najprisutniji editor na juniksolikim sistemima, Emacs se nalazi na dobrom drugom mestu. Umesto korišćenja različitih “modova”, kao kod vi editora, on koristi Control i Alt kombinacije tastera za unošenje komandi, na prilično isti način kao što koristite Control i Alt kombinacije tastera u procesoru reči i uistinu u mnogim drugim aplikacijama koje izvršavaju određene funkcije. (Iako treba naglasiti da se komande retko kada podudaraju; tako dok mnoge moderne aplikacije koriste Ctrl-C/ X/ V za kopiranje, isecanje i nalepljivanje, Emacs koristi različite tastere i, u stvari, na neki način različit mehanizam za ovo.)

Takođe, za razliku od vi, koji je (odličan) editor i ništa više, Emacs je program sa skoro beskrajnim mogućnostima. Emacs je (u najvećem delu) napisan u Lispu, koji je veoma moćan programski jezik koji ima posebnu osobinu da svaki program koji je u njemu napisan automatski u isto vreme predstavlja i Lisp kompajler sam po sebi. Ovo znači da korisnik može proširiti Emacs, i napisati potpuno nove programe “u Emacsu”.

Kao rezultat, Emacs više nije samo editor. Postoje dostupni mnogi dodatni paketi za Emacsa (mnogi dolaze sa izvornim kodom programa) koji pružaju razne vrste dodatne funkcionalnosti. Mnogi od ovih su u vezi sa uređivanje teksta, što je pre svega osnovni zadatak Emacsa, ali se tu ne zaustavljaju. Na primer, postoji za Emacs nekoliko programa za tabelarno računanje, postoje baze podataka, igre, programi za poštu i news poruke (prvi od njih je Gnus), itd.

Postoje sve glavne verzije Emacsa: GNU Emacs (što je verzija koja dolazi sa Slackware-om) i XEmacs. Poslednji nije verzija Emacsa koja se izvršava pod X-om. U stvari, obojica i Emacs i XEmacs se izvršavaju na konzoli kao i pod X-om. XEmacs je nekada započeo kao projekat da se očisti Emacsov kod. Trenutno, obe verzije se aktivno razvijaju, i postoji mnogo interakcije između dva razvojna tima. Za trenutni odeljak, nije važno da li koristite Emacs ili XEmacs, razlika među njima je beznačajna za normalnog korisinika.


17.1 Pokretanje Emacsa

Emacs može biti pokrenut iz konzole prostim kucanjem emacs. Kada izvršavate X, Emacs će (normalno) da se startuje sa svojim X prozorom, obično sa menijem na vrhu, gde možete naći većinu važnih funkcija. Na početku, Emacs će prvo pokazati poruku dobodošlice, i onda nakon par sekundi će vas prebaciti u *scratch* bafer. (Pogledajte Section 17.2.)

Takođe možete startovati Emacs na postojećem fajlu kucajući

% emacs /etc/resolv.conf

Ovo će uzrokovati time što će Emacs učitati zahtevani fajl kada se pokrene, preskačući poruku dobrodošlice.


17.1.1 Komandni tasteri

Kao što smo gore pomenuli, Emacs koristi Control i Alt kombinacije za komande. Najčešća konvencija je da se ovi pišu kao C-slovo i M-slovo, respektivno. Pa C-x znači Control+x, i M-x znači Alt+x. (Slovo M se koristi umesto A zato što originalno to nije bio Alt taster već Meta taster. Meta taster je nestao sa računarskih tastatura, i u Emacsu Alt taster je preuzeo njegovu funkciju.)

Mnoge Emacs komande se sastoje od sekvenci tastera i njihovih kombinacija. Na primer, C-x C-c (to jest Control-x kojeg prati Control-c ) gasi Emacs, C-x C-s snima trenutni fajl. Zapamtite da C-x C-b nije isto kao i C-x b. Prvo znači Control-x kojeg prati Control-b, dok drugo znači Control-x praćen samo sa 'b'.


17.2 Baferi

U Emacsu, koncept “bafera” je esencijalan. Svaki fajl koji otvorite bude učitan u svoj sopstveni bafer. Nadalje, Emacs ima nekoliko specijalnih bafera, koji ne sadrže fajl nego se koriste za druge stvari. Takvi specijalni baferi obično imaju ime koje počinje i završava se zvezdicom. Na primer, bafer koji Emacs prikazuje kada se pokrene, je takozvani *scratch* bafer. U *scratch* bafer možete kucati tekst na normalan način, ali taj tekst ne bude sačuvan kada se Emacs ugasi.

Postoji još jedan specijalan bafer za koji trebate da znate, i to je minibafer. Ovaj se bafer sastoji samo od jedne linije i uvek je na ekranu: on je poslednja linija u Emacs prozoru, ispod statusne linije za trenutni bafer. Minibafer je mesto gde Emacs prikazuje poruke za korisnika, i takođe je mesto gde se izvršavaju komande koje zahtevaju neko unošenje od strane korisnika. Na primer, kada otvarate fajl, Emacs će upitati ime tog fajla u minibaferu.

Prebacivanje iz jednog bafera u drugi može biti urađeno komandom C-x b. Ovo će vas upitati za ime bafera (ime bafera je najčešće ime fajla koji uređujete), i daje vam podrazumevani izbor, koji je podrazumevano bafer u kom ste bili pre nego što ste se prebacili ili stvorili trenutni bafer. Jednostavno pritiskajući Enter ćete se prebaciti u taj podrazumevani bafer.

Ako želite da se prebacite u neki drugi bafer koji nije onaj kojeg podrazumevano ponudi Emacs, samo ukucajte njegovo ime. Primetite da možete koristiti takozvano Tab-dopunjavanje ovde: ukucajte prvih nekoliko slova imena bafera i pritisnite Tab; Emacs će tada dopuniti ime bafera. Tab dopunjavanje funkcioniše svuda u Emacs-u gde to ima smisla.

Možete dobiti listu otvorenih bafera pritiskajući C-x C-b. Ova komanda će podrazumevano podeliti ekran na dva dela, prikazujući bafer u kom ste radili u gornjoj polovini, a novi bafer zvani *Buffer List* u donjoj polovini. Ovaj bafer sadrži listu svih bafera, njihove veličine i modove, i fajlove, ako ih ima, koje posećuju ti baferi (kako se to kaže u Emacs-u). Možete se otarasiti ovog podeljenog ekrana kucajući C-x 1.

Note

Pod X-om, lista bafera je takođe dostupna u Buffer meniju.


17.3 Modovi

Svaki bafer u Emacsu ima mod koji je povezan s njim. Ovaj mod je veoma različit od ideje modova u editoru vi: mod vam govori u kakvoj ste vrsti bafera. Na primer, postoji text-mode za obične tekstualne fajlove, ali takođe postoje modovi kao što su c-mode za uređivanje C programa, sh-mode za uređivanje shell skripti, latex-mode za editovanje LaTeX fajlova, mail-mode za uređivanje e-pošte i poruka, itd. Mod pruža posebna prilagođavanja i funkcionalnosti koji su korisni za tu vrstu fajla kojeg uređujete. Čak je moguće da mod promeni tastere i komande preko tastera. Na primer, u Text modu, Tab taster jednostavno preskače na sledeće mesto tabulacije, ali u mnogim modovima za progamerske jezike, Tab taster pomera trenutnu liniju prema dubini bloka u kom se nalazi ta linija.

Modovi koji su gore pomenuti se zovi glavni (major) modovi. Svaki bafer ima tačno jedan glavni mod. Dodatno, bafer može imati jedan ili više nižih (minor) modova. Niži mod pruža dodatne osobine koje mogu biti korisne za određene zadatke. Na primer, ako pritisnete INSERT taster, time pozivate overwrite-mode, koji radi šta od njega očekujete, tj. prepisuje preko slova, umesto da ih pomera dok kucate. Takođe postoji i auto-fill-mode, koji dobro dođe u kombinaciji sa text i latex modovima: on čini da svaka linija koju ukucate automatski bude prelomljena kada linija dosegne određeni broj slova. Bez auto-fill moda, morate pritiskati M-q da bi lepo prelomili svaki pasus. (Što takođe možete iskoristiti da ponovo formatirate pasus pošto ste promenili neki tekst u njemu i on više nije lepo prelomljen.)


17.3.1 Otvaranje fajlova

Da bi otvorili fajl u Emacs-u, pritisnite

C-x C-f

Emacs će vas pitati za ime fajla, stavljajući neku podrazumevanu stazu umesto vas (koja je najčešće ~/). Kada ukucate ime fajla (možete koristiti Tab dopunjavanje) i pritisnete ENTER, Emacs će otvoriti fajl u novom baferu i prikazati taj bafer na ekranu.

Note

Emacs će automatski napraviti novi bafer, neće učitati fajl u trenutni bafer.

Kako bi napravili novi fajl u Emacs-u, ne možete prosto odmah početi kucati. Morate prvo napraviti bafer za njega, i smisliti ime fajla. Ovo radite pritiskajući C-x C-f i kucajući ime fajla, isto kao što biste uradili za otvaranje postojećeg fajla. Emacs će primetiti da fajl koji ste ukucali ne postoji, napraviće novi bafer i prijaviti sa “(New file)” u minibaferu.

Kada pritisnete C-x C-f i onda unesete ime direktorijuma umesto imena fajla, Emacs će napraviti novi bafer u kome ćete naći listu svih fajlova u tom direktorijumu. Možete pomerati kursor do fajla kojeg tražite i ukucati , i Emacs će ga otvoriti. (U stvari postoji mnogo više akcija koje možete primeniti ovde, kao što su brisanje, promena imena i pomeranje fajlova, itd. Emacs je sada u dired modu, koji je u principu prost upravljač fajlovima.)

Kad ste pritisnuli C-x C-f i odjednom promenili svoju nameru, možete pritisnuti C-g da otkažete akciju. C-g funkcioniđe skoro svuda gde hoćete da otkažete akciju ili komandu koju ste započeli ali ne želite da završite.


17.4 Osnove uređivanja

Kada ste otvorili fajl, naravno možete se kretati po njemu pomoću kursora. Kursorski tasteri i PgUp, PgDn rade ono što očekujete od njih. Home i End skaču na početak i kraj linije. (U starijim verzijama, ovi tasteri bi skočili na početak i kraj bafera.) Međutim, takođe postoje Control i Meta (Alt) kombinacije tastera koje pomeraju kursor. Zato što ne morate da pomerate vaše ruke na drugi kraj tastature radi njih, oni su mnogo brži jednom kada se na njih naviknete. Većina takvih važnih komandi je izlistana u Table 17-1.

Table 17-1. Osnovne Emacs komande za uređivanje

Komanda Rezultat
C-b idi jedno slovo nazad
C-f idi jedno slovo napred
C-n idi jednu liniju dole
C-p idi jednu liniju gore
C-a idi na početak linije
C-e idi na kraj linije
M-b idi jednu reč nazad
M-f idi jednu reč napred
M-} idi jedan pasus napred
M-{ idi jedan pasus nazad
M-a idi jednu rečenicu nazad
M-e idi jednu rečenicu napred
C-d briši slovo pod kursorom
M-d briši do kraja trenutne reči
C-v idi dole za jedan ekran (tj., PgDn)
M-v idi gore za jedan ekran (tj., PgUp)
M-< idi na početak bafera
M-> idi na kraj bafera
C-_ poništi poslednju promenu (može se ponoviti); primetite da u stvari morate pritisnuti Shift+Control+hyphen za ovo.
C-k obriši do kraja linije
C-s traži unapred
C-r traži unazad

Primetite da su mnoge Meta komande paralelne Control komandama osim što rade na većim jedinicama: dok C-f ide napred za jedno slovo, M-f ide napred za celu reču, itd.

Takođe primetite da M-< i M-> zahtevaju od vas da pritisnete Shift+Alt+zarez i Shift+Alt+tačka respektivno, pošto su < i > na Shift+zarez i Shift+tačka. (Naravno, osim ako nemate različit raspored tastature od standardnog US rasporeda.)

Primetite da C-k briše (ubija, kako se to često naziva) sav tekst posle kursora do kraja linije, ali ne briše samu liniju (tj. ne poslednji znak za novu liniju). On briše liniju samo ako nema teksta posle kursora. Drugim rečima, da bi obrisali celu liniju, morate staviti kursor na početak linije i onda pritisnuti C-k dvaput: jednom da obrišete tekst u linije, jednom da obrišete samu liniju.


17.5 Snimanje fajlova

Kako bi snimili fajl, pritiskate

C-x C-s

Emacs vas neće upitati za ime fajla, bafer će biti jednostavno sačuvan u fajl iz kojeg je i učitan. Ako želite da sačuvate vaš tekst u neki drugi fajl, pritisnite

C-x C-w

Kada sačuvate fajl po prvi put u ovoj sesiji, Emacs će podrazumevano sačuvati staru verziju vašeg fajla u rezervni fajl, koji ima isto ime na koje je dodata tilda: tako da ako uređujete fajl “kola.txt”, Emacs će sačuvati rezervni fajl “kola.txt~”.

Ovaj rezervni fajl je kopija fajla kojeg ste otvorili. Dok radite, Emacs će redovno automatski snimati kopiju vašeg rada u fajl imenovan tarabama: #kola.txt#. Ova rezerva se briše kada snimite fajl sa C-x C-s.

Kada završite uređivanje fajla, možete uništiti bafer koji ga drži pritiskajući

C-x k

Emacs će vas onda upitati koji bafer želite da uništite, sa trenutnim baferom kao podrazumevanim izborom, kojeg možete odabrati pritiskajući ENTER. Ako niste još sačuvali vaš fajl, Emacs će vas upitati da li zaista želite da uništite bafer.


17.5.1 Gašenje Emacs-a

Kada ste završili u potpunosti sa Emacs-om, možete pritisnuti

C-x C-c

Ovo gasi Emacs. Ako imate nesačuvanih fajlova, Emacs će vam to reći, i pitaće vas da li želite da ih sačuvate jednog po jednog. Ako odgovorite sa ne za makar jedan od njih, Emacs će zatražiti još jednu finalnu potvrdu i onda se ugasiti.


Chapter 18 Slackware menadžer paketa

Paket je kolekcija srodnih programa koji su spremni za instalaciju. Kada imate arhivu sa izvornim kodom, morate je konfigurisati (configure), kompajlirati (make) i instalirati ručno (make install). Sa softverskim paketima, ova tri koraka su već urađena, i sve što treba uraditi je instalirati dotični paket. Još jedna zgodna mogućnost koju pružaju softverski paketi je ta da ih je veoma lako ukloniti i nadograditi na noviju verziju, ukoliko to želite. Slackware dolazi sa svim programima za menadžment paketa. Možete ih lako instalirati, ukloniti, nadograditi, kreirati, pregletati i ispitati.

Postoji mit još od kako je RedHat predstavio svoj RedHat Package Manager (RPM), da Slackware nema svoj menadžer paketa. Što jednostavno nije tačno. Slackware je uvek uključivao i menadžer paketa, čak i pre nego što je RedHat postojao. Iako nema mogućnosti i nije svuda prisutan kao rpm (ili još bolje deb), pkgtool i njegovi sastavni programi su isto tako dobri za instaliranje paketa. Istina je da komanda pkgtool postoji, ali i da neradi proveravanje zavisnosti, što rade predhodna dva.

Očigledno mnogo ljudi u Linux zajednici misli da menadžer paketa mora po definiciji uključivati i proveru zavisnosti. Pa to prosto nije tako, bar ne kod Slackware distribucije. Ne treba zaključiti da Slackware paketi nemaju zavisnosti, već da ih njegov menadžer paketa ne proverava. Mendžment zavisnosti je ostavljen sistemskim administratorima, kao što bi to i trebalo biti.


18.1 Format paketa

Pre nego što naučimo programe, upoznaćemo se sa formatom Slackware paketa. U Slackware distribuciji, paket je prosto tar arhiva kompresovana sa gzip komandom. Paketi su tako napravljeni da budu otpakovani u korenskom direktorijumu.

Evo primera jednog izmišljenog programa i njegovog paketa:

./
usr/
usr/bin/
usr/bin/makehejaz
usr/doc/
usr/doc/makehejaz-1.0/
usr/doc/makehejaz-1.0/COPYING
usr/doc/makehejaz-1.0/README
usr/man/
usr/man/man1
usr/man/man1/makehejaz.1.gz
install/
install/doinst.sh

Sistem paketa će otpakovati ovu arhivu u korenski direktorijum i instalirati ga. Takođe i unos u bazu podataka paketa će biti napravljen i sadržaće podatke o paketu, tako da će kasnije biti lako nadograditi ili ukloniti dotični paket.

Primetite install/ poddirektorijum. Ovo je poseban direktorijum koji može da sadrži postinstalacioni skript doinst.sh. Ako sistem paketa pronađe ovaj fajl, on će biti izvršen posle instalacije samog paketa.

I druge skripte mogu biti uključene u paket, ali o ovome se diskutuje sa malo više detalja u Section 18.3.2 dole ispod.


18.2 Programi za rad sa paketima

Postoje četiri glavna programa za menadžment paketa. Oni izvršavaju instalaciju, uklanjanje i nadogradnju paketa.


18.2.1 pkgtool

pkgtool(8) je program sa opcijama koje omogućavaju instalaciju i uklanjanje paketa. Glavni meni je prikazan na Figure 18-1.

Figure 18-1. Glavni meni programa pkgtool

Instalacija je ponuđena iz trenutnog direktorijuma, nekog drugog direktorijuma, ili sa flopi diskete. Treba prosto odabrati mod instalacije koji vam odgovara i pkgtool će pretražiti tu lokaciju i, ako pronađe validne Slackware pakete, ponudiće vam instalaciju.

Takođe kroz ovaj program možete videti listu instalirani paketa, kao što je pokazano na Figure 18-2.

Figure 18-2. Mod za izlistavanje programa pkgtool

Ako želite da uklonite pakete, izaberite 'remove' opciju i pred vama će se pojaviti lista svih instaliranih paketa. Ozančite one koje želite da uklonite i izaberite OK. I pkgtool će ih ukloniti.

Neki korisnici više vole ovaj program, a ne neke druge alate iz komandne linije. Pa ipak, treba primetiti da programi iz komandne linije nude mnogo više opcija. Takođe i mogućnost nadogradnje paketa je moguća samo kroz alate iz komandne linije.


18.2.2 installpkg

installpkg(8) komanda instalira nove pakete na vaš sistem. Sintaksa je sledeća:

# installpkg opcije ime_paketa

Tri opcije su moguće sa installpkg komandom, ali se samo jedna se može koristiti u isto vreme.

Table 18-1. installpkg opcije

Opcija Efekat
-m Izvršava makepkg komandu u trenutnom direktorijumu.
-warn Pokazuje šta bi se dogodilo ako instalirate dotični paket. Ovo je korisno za neke sisteme tako da možete da vidite šta bi se dogodilo pre nego što instalirate sam paket.
-r Rekurzivno instalira sve pakete u trenutnom direktorijum pa nadole. Ime paketa može sadžati i džokere.

Ako zadate ROOT promenljivu okruženja pre installpkg, komande, ta putanja će biti upotrebljena za instalaciju umesto korenskog direktorijuma. Ovo je korisno ako želite da nova putanja, particija, itd, bude vaš korenski direktorijum. Oni su tipično povezani na /mnt ili nešto drugo a ne na sam korenski direktorijum /.

Baza podataka svih instaliranih paketa je smeštena u /var/log/packages. Unos je samo običan tekst fajl, po jedan za svaki paket. Ako paket ima postinstalacioni skript, on je zapisan u /var/log/scripts/.

Možete zadati i više paketa ili koristiti džokere. Budite oprezni jer installpkg komanda vam neće reći ako prepisujete preko vać instaliranog paketa. Ona će prosto instalirati novi paket preko već postojećeg starog paketa. Ako želite da se osigurate da do toga nedođe i da su fajlovi starog paketa bezbedno obrisani, koristite komandu upgradepkg.


18.2.3 removepkg

removepkg(8) komanda uklanja instalirani paket sa sistema. Sintaksa je sledeća:

# removepkg opcija ime_paketa

Četiri opcije su moguće za komandu removepkg, ali samo jedna se može koristiti u isto vreme.

Table 18-2. removepkg opcije

Opcija Efekat
-copy Paket je kopiran i sačuvan u direktorijum za pakete. Ova opcija kreira stablo orginalnog paketa bez uklanjanja.
-keep Zadržava privremene fajlove kreirane tokom uklanjanja. Ovo se samo koristi u svrhe traženja greške.
-preserve Paket je uklonjen, ali i kopiran u direktorijum za pakete.
-warn Pokazuje šta bi se dogodilo ako biste uklonili dotični paket.

Ako zadate ROOT promenljivu okruženja pre removepkg komande, ta putanja će biti upotrebljena za instalaciju umesto korenskog direktorijuma. Ovo je korisno ako želite da nova putanja, particija, itd, bude vaš korenski direktorijum . Oni su tipično povezani na /mnt ili nešto drugo a ne na sam korenski direktorijum /.

removepkg komanda ne pretražuje i druge instalirane pakete i uklanja fajlove samo iz paketa koji ste naveli. Takođe će skenirati postinstalacioni skript navedenog paketa i ukloniti svaki simbolički link koji je napravila ta skripta.

Tokom samog procesa uklanjanja, prikazan je izveštaj. Posle uklanjanja, unos iz baze podataka je premešten u /var/log/removed_packages a postinstalacioni skript je premešten u /var/log/removed_scripts.

Kao i kod komande installpkg, možete uneti imena više paketa ili koristiti džokere.


18.2.4 upgradepkg

upgradepkg(8) komanda će nadograditi na noviju verziju već instalirani Slackware paket. Sintaksa je sledeća:

# upgradepkg ime_paketa

ili

# upgradepkg ime_starog_paketa%ime_novog_paketa

upgradepkg komanda, radi tako što prvo instalira novi paket i onda ukloni stari paket nakon čega se stari fajlovi više ne nalaze na sistemu. Ako se ime novog paketa razlikuje od starog, koristite oznaku za procenat (%) da biste eksplicitno naveli ime starog paketa (onog koji je već instaliran) kao i ime novog paketa (onog na koji nadograđujete).

Ako zadate ROOT promenljivu okruženja pre upgradepkg komande, ta putanja će biti upotrebljena za instalaciju umesto korenskog direktorijuma. Ovo je korisno ako želite da nova putanja, particija, itd, bude vaš korenski direktorijum. Oni su tipično povezani na /mnt ili nešto drugo, a ne na sam korenski direktorijum /.

upgradepkg komandu treba oprezno koristiti. Pre svega treba sačuvati sve konfiguracione fajlove, ako se desi da budu obrisani ili prepisani, trebaće vam kopija za vraćanje u prethodno stanje.

Kao i sa komandama installpkg i removepkg i ovde možete zadati više paketa ili koristiti džokere.


18.2.5 rpm2tgz/rpm2targz

Red Hat-ov menadžer paketa (RPM) je veoma popularan i raširen sistem paketa. Mnoge distribucije, pa čak i poneko parče softvera, se mogu pronaći samo u ovom formatu. Pošto ovo nije Slack-ov prirodni format paketa, oni se ne preporučuju kao pouzdani. Pa ipak, kao što sam napisao, neke stvari su dostupne samo preko RPM (pa čak i izvorni kod?!).

Slackware dolazi sa programom koji će konvertovati RPM pakete u .tgz pakete. Ovo će vam omogućiti da otpakujete paket (to možete sa komandom explodepkg) u privremeni direktorijum i ispitate njegov sadržaj.

Komanda rpm2tgz će napraviti Slackware paket sa ekstenzijom .tgz dok će komanda rpm2targz napraviti arhivu sa ekstenzijom .tar.gz


18.3 Pravljenje slackware paketa

Pravljenje Slackware paketa može biti lako ali i teško. Ne postoji specifični metod za pravljenje paketa. Jedino što je potrebno je da paket bude tar arhiva kompresovana programom gzip i, ako postoji postinstalacioni skript, on mora biti /install/doinst.sh.

Ako vas zanima pravljenje paketa za vaš sistem ili za mrežu koju održavate, trebate pogledati u različite skripte za pravljenje paketa koje se nalaze u Slackware izvornom stablu. Postoji nekoliko načina na osnovu kojih se prave paketi.


18.3.1 explodepkg

explodepkg(8) komanda će uraditi isto što i komanda installpkg, odnosno otpakovati paket, ali ga neće instalirati i neće ga uneti u bazu instaliranih paketa. Ona će ga prosto otpakovati u trenutni radni direktorijum.

Ako pogledate u Slackware izvorno stablo, videćete kako se ova komanda koristi za “osnovne (framework)” pakete. Ovi paketi čine skelet finalnih paketa, i sadrže sve neophodne datoteke i ovlašćenja. Skripta za pravljanje paketa će povezati sve potrebne datoteke iz direktorijuma sa izvornim kodom u direktorijum u kome se paket pravi.


18.3.2 makepkg

makepkg(8) će spakovati u Slackware paket u trenutni radni direktorijum. Ona će pretražiti stablo i pronaći svaki simbolički link i uneti ga u postinstalacioni skript da bi ih napravio tokom instalacije paketa. Takođe će upozoriti ako nađe prazne datoteke u stablu paketa.

Ova komanda se obično poziva nakon pravljenja stabla paketa.


18.3.3 SlackBuild skripte

Slackware paketi se prave na mnogo različitih načina po potrebi. Nisu svi softverski paketi napravljeni od strane programera koji su ih napisali da bi bili kompajlirani na isti način. Mnogi imaju opcije prilikom kompajliranja, a te opcije ne moraju biti uključene u pakete koje Slackware koristi. Možda vam zatrebaju baš neke od tih opcija i funkcionalnosti, tada morate kompajlirati svoj paket. Na sreću, Slackware paketi sadrže SlackBuild skriptu u izvornom kodu paketa.

Dakle, šta je onda SlackBuild skripta? SlackBuild skripta je izvršna skripta školjke koju pokrećete kao root da biste konfigurisali, kompajlirali i napravili Slackware paket. Možete slobodno po potrebi modifikovati ove skripte u direktorijumu sa izvornim kodom paketa i pokrenuti ih da bi kreirali svoju verziju Slackware paketa.


18.4 Postavljanje etiketa (tag) i fajlova sa etiketama (tagfile)

Program za instalaciju (setup) Slackware-a upravlja i instalacijom softverskih paketa na vašem sistemu. Postoje fajlovi koje govore setup programu koje pakete mora da instalira, koji su opcionalni, a koje ste izabrali prilikom instalacije.

Fajl sa etiketama (tagfile) nalazi se u direktorijumu sa prvom serijom softvera. On služi za izlistavanje paketa u tom određenom disk setu kao i njihovih statusa. Status može biti:

Table 18-3. Tagfile status opcije

Opcija Značenje
ADD Paket je neophodan za pravilno funkcionisanje sistema
SKP Paket će automatski biti preskočen (neće biti instaliran)
REC Paket nije neophodan, ali se preporučuje njegova instalacija
OPT Paket je opcionalan

Format je prost:

ime_paketa: status

Jedan paket po liniji. Orginalan fajl sa etiketama (tagfiles) za svaku seriju softvera se naziva tagfile.org. Tako da, ako menjanjem upropastite svoju, možete lako vratiti orginalnu verziju.

Mnogi agdministratori više vole da pišu svoje fajlove sa etiketama (jel se neko ovde prepoznaje :) ), i prilikom pokretanja instalera izaberu “full” opciju. Program za instalaciju će pročitati fajlove sa etiketama i izvršiti instalaciju prema njihovom sadržaju. Ako koristite REC ili OPT opcije, instaler će pitati korisnika da li želi da instalira svaki pojedinačni paket. Dakle, preporučljivo je držati se ADD i SKP opcija prilikom pisanja sopstvenih fajlova sa etiketama (tagfile) za automatske instalacije.

Samo, osigurajte da vaši fajlovi sa etiketama (tagfiles) budu zapisani na istim lokacijama kao i orginalni. Ili još bolje, možete odrediti putanju za svoje fajlove sa etiketama.


Chapter 19 ZipSlack

19.1 Šta je ZipSlack?

ZipSlack je sprecijalna verzija Slackware Linuxa. To je već instalirana kopija Slackware-a koja je spremna da se izvrši sa vaše DOS ili Windows particije. To je osnovna instalacija, ne dobijete sve što dolazi u Slackware distribuciji.

ZipSlack duguje svoje ime formi u kojoj se distribuira, u obliku velikog .ZIP fajla. Korisnici DOS-a ili Windows-a su verovatno upoznati sa ovakvim fajlovima. Oni su kompresovane arhive. ZipSlack arhiva sadrži sve što vam je potrebno da podignete i pokrenete Slackware.

Važno je primetiti da je ZipSlack značajno različit od regularne instalacije. Iako oni funkcionišu isto i sadrže iste programe, njihova namenjena publika i funkcija se razlikuju. Nekoliko prednosti i nedostataka koje ima ZipSlack su prodiskutovani ispod.

Jedna poslednja stvar, trebali bi uvek pregledati dokumentaciju koja je uključena u aktuelni ZipSlack direktorijum. Ona sadrži poslednje informacije koje se tiču instaliranja, pokretanja i opšteg korišćenja proizvoda.


19.1.1 Prednosti

  • Ne zahteva ponovno particionisanje vašeg hard diska.

  • Odličan način da naučite Slackware Linux bez tumbanja kroz instalacioni proces.


19.1.2 Nedostaci

  • Koristi DOS sistem fajlova, koji je sporiji od prirodnog Linux sistema fajlova.

  • Neće raditi sa u sistemu Windows NT.


19.2 Nabavljanje ZipSlack-a

Dolaženje do ZipSlack-a je lako. Ako ste naručili oficijelni CD set Slackware Linuxa, onda već imate ZipSlack. Samo pronađite CD koji sadrži zipslack direktorijum i stavite ga u vaš CD-ROM uređaj. Obično je to treći ili četvrti disk, ali uvek više verujete nalepnicama pre nego ovoj dokumentaciji, pošto disk na kome se nalazi može biti promenjen.

Ako želite da skinete ZipSlack sa Interneta, prvo treba da obiđete našu “Get Slack” Internet stranicu radi poslednjih informacija za skidanje:

http://www.slackware.com/getslack/

ZipSlack je deo svakog Slackware izdanja. Locirajte izdanje koje želite, pa onda idite u taj direktorijum na FTP serveru. Direktorijum sa poslednjim izdanjem može biti pronađen na ovoj lokaciji:

ftp://ftp.slackware.com/pub/slackware/slackware/

Naćićete ZipSlack u /zipslack poddirektorijumu. ZipSlack je ponuđen kao jedan veliki .ZIP fajl ili u delovima veličine jednog flopija. Delovi su u /zipslack/split direktorijumu.

Nemojte se zaustaviti samo kod .ZIP fajlova. Takođe bi trebali skinuti fajlove sa dokumentacijom i bilo koje slike za boot koji se pojavljuju u direktorijumu.


19.2.1 Instalacija

Jednom kada ste skinuli sve neophodne komponente, trebaćete da raspakujete .ZIP fajl. Potvrdite da koristite 32-bitni program za raspakivanje. Veličine i imena fajlova u arhivi su preveliki za 16-bitni program. Primeri 32-bitnih programa za raspakivanje su WinZip i PKZIP za Windows.

ZipSlack je napravljen da bude raspakovan direktno u koreni direktorijum diska (kao što su C: ili D:). \LINUX direktorijum će biti napravljen i sadržaće aktuelnu Slackware instalaciju. Takođe, tu ćete naći i fajlove koji su potrebni za pokretanje sistema.

Nakon što ste raspakoval fajlove, trebali biste da imate \LINUX direktorijum na disku koji ste izabrali (mi ćemo korisiti C: nadalje).


19.3 Pokretanje ZipSlack-a

Postoji nekoliko načina da se pokrene ZipSlack. Najčeće se koristi uključeni LINUX.BAT za pokretanje sistema iz DOS-a (ili DOS moda pod Windows-om 9x). Ovaj fajl mora biti promenjen kako bi odgovarao vašem sistemu pre nego što bude proradio.

Počnite otvarajući C:\LINUX\LINUX.BAT fajl u vašem omiljenom uređivaču teksta. Na vrhu fajla ćete primetiti veliki komentar. On objašnjava šta je potrebno da promenite u ovom fajlu (takođe i šta da uradite ako pokrećete sistem sa spoljašnjeg Zip uređaja). Ne brinite ako ne razumete root= postavku. Postoji nekoliko primera, pa slobodno izaberite jedan i pokušajte s njim. Ako ne radi, možete opet promeniti fajl, zakomentaristi liniju koju ste odkomentarisali, i izabrati drugu.

Nakon što ste odkomentarisali liniju uklanjajući “rem” na početku linije, sačuvajte fajl i izađite iz uređivača. Prebacite vašu mašinu u DOS mod.

Prozor sa DOS promptom u Windows-u 9x NEĆE raditi.

Kucajte C:\LINUX\LINUX.BAT pokrenete sistem. Ako sve prođe u redu, trebalo bi da vas dočeka login prompt.

Prijavite se kao root, bez lozinke. Verovatno ćete želeti da postavite lozinku za root-a, takođe i da dodate nalog za vas. U ovom trenutku možete pogledati druge odeljke ove knjiga za opšte korišćenje sistema.

Ako korišćenje fajla LINUX.BAT za pokretanje sistema nije radilo za vas, pogledajte uključeni fajl C:\LINUX\README.1ST za druge načine pokretanja.

Glossary

Bibilioteka

Kolekcija funkcija koje se dele između programa.

Boot disk

Flopi disk koji sadrži operativni sistem (u našem slučaju, Linux kernel) sa koga se računar podiže.

Čvor uređaja

Specifični tip datoteke u /dev datotečnom sistemu koja pretstavlja hardversku komponentu operatvnom sisemu.

Darkstar

Podrazumevano ime hosta (hostname) na Slackware sistemu; vaš računar će da se zove darkstar ako niste odredili neko drugo ime.

Jedna od Patrikovih mašina za razvoj je tako nazvana zahvaljujući pesmi “Dark Star” od Grateful Dead-a.

Datotečni sistem

Pretstavljanje skaldištenih podataka u kome su “datoteke” organizovane u “direktorijume”. Datotečni sistem je skoro univerzalna forma pretstavljanja podatake koji su smešteni na diskovima (i za fiksne i izmenjive).

Datoteka tačka (dot)

U Linuxu, datoteke čija imena počinju sa ('.') tretiraju se kao skrivene.

Demon

Program koji je dizajniran da se izvršava u pozadini bez intervencije korisnika, i koji izvršava specifični zadatak (uglavnom obezbeđuje neki servis).

Dinanamički punilac

Kada se program kompajlira pod Linuxom, on obično koristi deo koda (funkcije) iz eksternih biblioteka. Kada se porgram pokrene, te biblioteke moraju da se pronađu i zahtevane funkcije da se učitaju u memeoriju. To je posao dinamičkog punioca.

DNS

Domain Name Service. Sistem pomoću koga se umreženim računarima daju imana i prevode u numeričke adrese.

Dopunski disk

U Slackware-u, flopi disk koji se koristi u toku instalacije, a koji nije kernel (koji je na boot disku) ni root datotečni sistem (koji je na root disku), već na kome se nalaze dodatne datoteke, kao na primer PCMCIA podrška.

Dotted quad (Četvorka tački)

Format IP adresa, tako nazvan pošto se sastoji od četiri broje (celi brojevi od 0 do 255)odvojenih tačkama.

Epoha

Period istorije; u Unix-u, “Epoha” počinje od 1. Januara, 1970. god (00:00:00 UTC). To je početak vremena za Unix i Unix-olike operativne sesteme, i sva druga vremena se računaju u odnosu na taj datum.

Framebuffer

Tip grafičkog uređaja; u Linux-u, to se uglavnom odnosi na softverski framebuffer, koji obezbeđuje standardni framebuffer interfejs programima i na taj način skriva programe od odgovarajućih drajvera. Ovaj apstraktni sloj oslobađa programe od komunikacije sa različitim hardverskim uređajama.

FTP

Protokol za prenos daototeka (File Transfer Protocol). FTP je veoma popularan metod za transfer podataka između računara.

GID

Identifikator grupe (Group Identifier). GID jedinstveni broj koji se na grupu korisnika.

Grupa

Korisnici u Unix-u pripadaju “grupama”, koje mogu da sadrže mnogo korisnika i koje se koriste za opštiju kontrolu pristupa nego što se to čini sa samim korisnicima.

GUI

Graphical User Interface. Softverski interfejs koji se koristi za rendeerovanje grafičkih elemenata kao što su dugmad, klizači, prozori itd. Suprotan od njega je na tekstu baziran (text-based) ulazno izlazni interfejs.

HOWTO

Dokumenat koji opisuje kako da (“how to”) se nešto uradi, kao na primer konfigurisanje firewall-a ili upravljenje korisnicima i grupama. Postoji velika kolekcija takvih dokumenata na Linux Documentation Project-u.

HTTP

Hypertext Transfer Protocol. HTTP je glavni protocol po kome World Wide Web funkcioniše.

ICMP

Internet Control Message Protocol. Veoma bitan mrežni protokol, uglavnom se koristi za pingovanje.

Izvorni kod

Manje više čoveku razumljiv kod u kome je većina programa napisana. Izvorni kod se kompajlira u “binarni” kod.

Ime domana

DNS ime računara, neračunajući njegovo ime hosta.

Kernel

Srce operativnog sistema. Kernel je deo koji obezbeđuje osnovu kontrolu procesa i interfejs ka hardveru računara.

Kernel modul

Deo kernelovog koda, uglavnom neka vrsta drajvera, koji može biti učitavan i isčitavan iz memorije odvojeno od glavne mase kernela. Moduli su od koristi kada se vrši nadogradnja drajvera ili testiranje podešavanja kernela, pošto se mogu učitavati i isčitavati bez ponovnog butovanja.

Kompajliranje

Konvertovanje koda u “binarni” kod koji mašina može da čita.

Lični direktorijum

Korisnički “lični direktorijum” je mesto gde se kerisnici odmah nalaze posle logovanja (neko ga zove i početnti /en. Home/ ). Korisnici imaju potpune dozvole i veću-manju slobodu u okviru svojih korisničkih direktorijuma.

LILO

The LInux LOader. LILO je najkorišćeniji Linux boot menadžer.

LOADLIN

LOADLIN je program koji se pokreće pod MS DOS li Windows sistemu, a butuje Linux sistem. Uglavnom se koristi na računarima sa više operativnih sistema (uključujući naravno Linux i DOS/Windows).

Ljuska

Ljuska omogućava korisnicima interfejs preko komadne linije. Kada vidite tekstualni prompt, tada ste u ljusci.

Ljuskine ugrađene komande

Ugrađene komande u ljusku, suprotno od komandi koje su eksterni programi. Na primer, bash ima ugrađenu komandu cd.

Man odeljci

Strane u standardnom Unix online priručniku ("man") su grupisane u odeljke radi lakšeg refefenciranja. Sve strane vezane za C jezik su u 3. strani, strane namenjene administraciji sistma su petom odeljku, itd.

MBR

Glavni Boot zapis (Master Boot Record). Rezervisan prostor na hard disku, koji je namenjen da sadrži informacije koje trebaju da govore šta treba da se radi kada se butuje. Tu se zapisuje LILO ili neki drugi boot menadžer.

MOTD

Poruka dana (Message of the Day). motd (u Linux-u pretstavlja /etc/motd datoteku) je tekstualna datoteka koje se prikazuje svim korisnicima koji su logovani. Tradicionalno je koristi administrator sistema kao vrstu “oglasne table” za komunikaciju sa korisnicima.

Motif

Popularni toolkit za programiranje koji se koristi za mnoge starije X programe.

Mrežni interfejs

Virtualno pretstavljanje mrežnog uređaja od starane kernela. Mrežni interfejs omogućava korisnicima i programima da razgovaraju sa mrežnim uređajima.

Nalog

Sve informacije o korisnicima, u šta spada: korisničko ime, lozinka, finger informacije, UID i GID, i početni direktorijum. U toku kreiranje naloga dodaje se i definiše korisnik.

NFS

Network Filesystem. NFS omogućava montiranje udaljenog datotečnog sistema tako da on izgleda kao da je lokalno na vašem računaru, ili transparenti model za deljenje datoteka.

Oktalno

Brojni sistem sa bazom 8, sa ciframa 0-7.

Pager

X program koji omogućava korisniku da vidi i prelazi između višestrukih “desktopa”.

Particija

Deo hard diska. Datotečni sistemi su na vrhu particija.

Podmreža

Opseg IP addresa koji je deo većeg opsega. Na primer, 192.168.1.0 je podmreže 192.168.0.0 (gde 0 is a mask meaning “undefined”); it is, in fact, the “.1” subnet.

Pozadina

Za neki pokrenut proces koji ne prihvata kontrolu sa ulaza terminala kažemo da je pokentut u pozadini.

PPP

Point-to-Point Protocol. PPP se uglavnom koristi za povezivanje na ISP preko modema.

Prvi plan (Foreground)

Za program koji prihvata kontrolu sa ulaza terminala kažemo da je pokrenut u prvom planu.

Promenjive okruženja (Environment variable)

Skup promenjivih u korisničkoj ljusci koje se odnose na korisnika i programe koji se uzvršavaju. Promenjive okruženja se uglavnom koriste za smeštanje podrazumevanih karakteristika i parametara.

Proces

Pokrenut program.

Prolaz (Gateway)

Računar kod koga se podaci sa jedne mreže prenose na drugu.

Radni direktorijum

Direktorijum u kome se nalazi program koji je pokrenut.

Radno okruženje

Grafički korisnički interfejs (A graphical user interface /GUI/) koji se izvršava na vrhu X Window sistema i koji nudi pogodnosti kakva je integracija aplikacija, kohezivan look-and-feel među programima i komponentama, sposobnost upravljanja datotekama i prozorima, itd. Korak iznad jednostavnog window menadžera.

Root direktorijum

Obeležava se sa “/”, i nalazi se na vrhu datotečnog sistema zajedno sa svim direktorijumima ispod njega.

Root disk

Disk (uglavnom fiksni) na kome je root direktorijum smešten.

Runlevel

Celokupno stanje sistema definisano preko init programa. Runlevel 6 je ributovanje, runlevel 1 je “jednokorisnički mod”, runlevel 4 je X logovanje, itd. Postoji 6 runlevel-a u Slackware sistemu.

Serije softvera

Kolekcija srodnih softverskih paketa u Slackware-u. Svi KDE paketi su u “kde” seriji, paketi vezanu za mrežu su u “n” seriji, itd.

Server imena

Server DNS informacija. Server imena prevodi DNS imena u numeričke IP adrese.

Servis

Deli informacije i/ili podatke između programa i računara sa jednog “servera” ka više “klijenata”. HTTP, FTP, NFS, itd. su servisi.

Shadow password suite

Shadow password suite omogućava da se enkriptovane lozinke sakriju od korisnika, dok bi ostale informacije u /etc/passwd datoteci bile vidljive za sve. Ova pomoć onemogućava brutalni napad i krekovanje lozinki.

Signal

Unix programi mogu međusobno da komuniciraju korišćenjem jednostavnih “signala”, koji su numerisani i obično imaju specifično značenje. Komandakill -l će izlistati sve postojeće signale.

Sigurosna ljuska

Metod enkriptovanog (zato sigurni) logovanja na udaljen računar. Postoji mnogo programa koji koriste sigurnosnu ljusku; i serveri i klijenti.

Simbolički link

Specijalna datoteka koje jednostavno vodi ka lokaciji druge datoteke. Simbolički linkovi se koriste da bi se izbeglo dupliranje podataka kada je potrebano postajanje datoteke na više mesta.

SLIP

Serial Line Interface Protocol. SLIP je sličan kao PPP protokol, koristi se za povezivanje dve mešine preko serijskog interfejsa.

Softverski paketi

Program i njegove pripadajuće datoteka, koje su arhivirane i kompresovane u samo jednu datoteku, zajedno sa neophodnim skrptovima i informacijama koje pomažu u radu sa instalacijom, nadogradnjom, i uklanjanjem tih datoteka.

Standarna greška (stderr)

Srandardni Unix-ov izlazni tok za greške. Svaka greška programa se šalje u stderr, tako da se na taj način odvaja od normalnog izlaza.

Standardni izlaz (stdout)

Standardni Unix-ov izlazni tok. Uobičajni tekstualni izlaz iz programa se piše u stdout, koji odvaja poruke o greškama koje se predaju stderr-u, i koji se može preko cevovoda preusmeriti ka stidn-u drugih programa ili u dateku.

Standardni ulaz (stdin)

Standardni Unix-ov tok za ulaz. Podaci se mogu preusmeriti ili provući kroz cevovod iz bilo kog izvora ka stdin-u programa.

Superblok

U Linux-u, particija se tretira kao niz blokova. Blok je veličine od 512 bajtova. Superblok su prvih 512 bajtova particije.

Suspendovani procesi

Proces koji je zamrzut dok se ne ubije ili obnovi.

Swap prostor

Disk prostor koji kernel koristi kao “virtualni” RAM. Sporiji je nego RAM, ali pošto je disk prostor jefitiniji, swap je uglavnom više ekonomičniji. Swap prostor je koristan kernelu za skladištenje manje korišćenih podataka kao i podatka kada se RAM prepuni.

Tabela rutiranja

Skup informacija koje kernel koristi u “rutiranju” podataka kroz mrežu. Sadrži takve stvari kao što su podrazumevani gateway, koji je mrežni interfejs povezan na koju mrežu, itd.

Tačka montiranja

Prazni direktorijum u datotečnom sistemu gde se drugi datotečni sistem “mountira”, ili kalemi.

Tagfile

Datoteka koju koristi Slackware-ov setup program u toku instalacije. Opisuje skup paketa koji trebaju da se instaliraju.

Terminal

Interfejs između čoveka i računara koji se sastoji iz najmanje jednog ekrana (ili virtualnog ekrana) i nekog načina za unos (uglavnom najmanje jedne tastature).

Toolkit, GUI

GUI toolkit je kolekcija biblioteka koje se nude programeru sa kodom koji obezbeđuje crtanje “widget-a” kao što su klizači, kvadratići za potvrdu, itd. i konstrukciju grafičkog interfejsa. GUI toolkit koji koristi program često definiše njegov “look and feel”.

UID

Korisnički identifikator. Jedinstveni broj koji idenrifikuje korisnike na sistemu. UID koristi većina programa umesto stvarnog imena korisnika zbog lakšega rada; imena korisnika se uglavnom koriste kada treba korisnik da vidi nešto što se desilo.

Upravljač uređaja

Deo koda u kernelu koji neposredno kontroliše komad hardvera.

VESA

Video Electronics Standards Association. Termin “VESA” se često koristi za označavanje standarda koji je izdala Asocijacija. Svi moderni video adapteri su VESA kompatibilni.

Virtualni terminali

Korišćenje softvera u simulaciji višestrukih terminala korišćenjem samo jedog seta ulazno/izlaznih uređaja (tastatura, monitor, miš). Specijalna kombinacija tastera pomoći, pomoću koje se prebacuje između virtualnih i fizičkih terminala.

Window manager

X program čija je uloga da obezbeđuje grafički interfejs preko jednostavnih kvadrata koje nudi X Window System. Window manadžeri generalno omogućavaju naslovnu liniju, menije za poketanje programa, itd.

Wrapper program

Program čija je jedina uloga da pokreće druge programe, ali menjanjem ponašanja programa na isti načina kao izmenom okruženja ili filtriranjem njihovog ulaza.

X server

Program u X Window Sistemu koji je interfejs ka grafičkom hardveru i koji rukuje trenutnim, pokrenutim X programima.

X Window System

Mrežni grafički interfejs koji se koristi na većini Unix-olikih sistema, uključujući i Linux.


Appendix A. GNU opšta javna licenca

Pošto prevodici ove knjige nisu pravnici, i smatraju da svojim prevodom mogu načiniti štetu, znajući kako pravnici umeju da naprave velike razlike na osnovu malih detalja, GNU opšta javna licenca je ostavljena u originalu. Takođe savetujemo da je prenosite u originalu primenjujući je na svoje programe, sve dok njen prevod ne bude odbranjen na sudu Srbije i Crne Gore.

GNU GENERAL PUBLIC LICENSE

Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
Everyone is permitted to copy and distribute verbatim copies of this
license document, but changing it is not allowed.


A.1. Predgovor

The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too.

When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things.

To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it.

For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights.

We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software.

Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations.

Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all.

The precise terms and conditions for copying, distribution and modification follow.


A.2. TERMINI I USLOVI

TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION

  1. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The “Program”, below, refers to any such program or work, and a “work based on the Program” means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term “modification”.) Each licensee is addressed as “you”.

    Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does.

  2. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program.

    You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee.

  3. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions:

    1. You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change.

    2. You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License.

    3. If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.)

    These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it.

    Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program.

    In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License.

  4. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

    1. Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    2. Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

    3. Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.)

    The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable.

    If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code.

  5. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance.

  6. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it.

  7. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License.

  8. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program.

    If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances.

    It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice.

    This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License.

  9. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License.

  10. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns.

    Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and “any later version”, you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation.

  11. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally.

  12. NO WARRANTY

    BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM “AS IS” WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION.

  13. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES.

END OF TERMS AND CONDITIONS


A.3. Kako da primenite ove termine na vaše nove programe

If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms.

To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the “copyright” line and a pointer to where the full notice is found.

<one line to give the program's name and a brief idea of what it does.>
   Copyright (C) <year>  <name of author>

   This program is free software; you can redistribute it and/or modify
   it under the terms of the GNU General Public License as published by
   the Free Software Foundation; either version 2 of the License, or
   (at your option) any later version.

   This program is distributed in the hope that it will be useful,
   but WITHOUT ANY WARRANTY; without even the implied warranty of
   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
   GNU General Public License for more details.

   You should have received a copy of the GNU General Public License
   along with this program; if not, write to the Free Software
   Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA   02111-1307 USA

Also add information on how to contact you by electronic and paper mail.

If the program is interactive, make it output a short notice like this when it starts in an interactive mode:

Gnomovision version 69, Copyright (C) year  name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.

The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program.

You should also get your employer (if you work as a programmer) or your school, if any, to sign a “copyright disclaimer” for the program, if necessary. Here is a sample; alter the names:

  Yoyodyne, Inc., hereby disclaims all copyright interest in the program
  `Gnomovision' (which makes passes at compilers) written by James Hacker.

  <signature of Ty Coon>, 1 April 1989
  Ty Coon, President of Vice

This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Library General Public License instead of this License.