S DOS/Windowsa na Linux KAKO Guido Gonzato, OBRISI_MEguido@ibogeo.df.unibo.it (Obrisite ``OBRISI_ME''.) verzija 1.3.2, 22. veljace 1999. Ovo je KAKO za sve (uskoro bivse?) korisnike DOS-a i Windowsa koji su odlucili prijeci na Linux, besplatni klon Unixa. Pokusava pomoci citatelju u primjeni njegovog znanja DOS-a i Windowsa u Linux okruzju, te razmjeni datoteka i resursa medu tim OS-evima. ______________________________________________________________________ Sadrzaj 1. Uvod 1.1 Je li Linux za vas? 1.2 Da. Hocu jos. 1.2.1 Uvodni koncepti 1.2.2 Upute 1.3 Konvencije 2. Za nestrpljive 3. Upoznajte bash 4. Datoteke i programi 4.1 Datoteke: osnovne stvari 4.2 Simbolicke veze 5. Dozvole i vlasnistvo 5.1 Datoteke: prevodenje naredbi 5.1.1 Primjeri 5.2 Pokretanje programa: visezadacnost i sesije 5.3 Pokretanje programa na udaljenim racunalima 6. Koristenje direktorija 6.1 Direktoriji: osnovne stvari 6.2 Dozvole direktorija 6.3 Direktoriji: prevodenje naredbi 6.3.1 Primjeri 7. Diskete, tvrdi diskovi i slicno 7.1 Rad s uredajima na DOS nacin 7.2 Rad s uredajima na Unix nacin 7.3 Backup 8. A sto je s Windowsima? 9. Prilagodavanje sustava 9.1 Inicijalizacijske datoteke sustava 9.2 Inicijalizacijske datoteke programa 10. Mreze: koncepti 11. Malo programiranja 11.1 Skripte u ljusci: .BAT datoteke na steroidima 11.2 C za vas 12. Ostalih 1% 12.1 Koristenje tara i gzipa 12.2 Instaliranje aplikacija 12.3 Trikovi bez kojih se ne moze 12.4 Gdje naci aplikacije 12.5 Nekoliko stvari koje niste mogli 12.6 Prakticiranje UNIX-a pod DOS/Windowsima 12.7 Uobicajene ekstenzije i povezani programi 12.8 Pretvaranje datoteka 12.9 Besplatni uredski paketi 13. Kraj, za sada 13.1 Autorska prava 13.2 Autor 14. Hrvatski prijevod ______________________________________________________________________ 11.. UUvvoodd 11..11.. JJee llii LLiinnuuxx zzaa vvaass?? Zelite prijeci iz DOS svijeta (ta definicija ukljucuje Windowse) na Linux? Dobra ideja: Linux je tehnicki superioran DOS-u, Windowsima 9x, cak i Windowsima NT. Ali pazite: mozda vama nece biti koristan. Ovo su glavne razlike izmedu DOS/Windowsa i Linuxa: · Na Windowsima radi Microsoft Office i puno igara; smatra se da ga je lako instalirati i konfigurirati; poznat je po nestabilnosti; jadnih performansi; rusenja su cesta. · Na Linuxu radi StarOffice, hrpa tehnickog softvera i manje igara; moze biti tesko instalirati ga i konfigurirati; stabilan je kao stijena; besprijekornih performansi; rusenja su izuzetno rijetka. Na vama je da odlucite sto vam treba. Nadalje, Linux vam daje moc, ali treba vremena dok naucite kako je iskoristiti. Dakle, ako trebate vecinom komercijalni softver, ili vam se ne svida ucenje novih naredbi i koncepata, bolje trazite drugdje. Budite svjesni da mnogi pocetnici odustaju zbog pocetnih teskoca. Radi se na pojednostavljivanju Linuxa, ali nnee oocceekkuujjttee ddjjeelloottvvoorrnnoosstt bbeezz cciittaannjjaa ppuunnoo ddookkuummeennttaacciijjee ii bbaarreemm nneekkoolliikkoo mmjjeesseeccii kkoorriisstteennjjaa. Linux rezultate ne daje odmah. Unatoc ovim upozorenjima, 100% sam siguran da, ako ste prava vrsta korisnika, Linux ce postati vasa Nirvana. Inace, Linux i DOS/Windows sretno mogu zivjeti zajedno na istom racunalu. Sto vam je potrebno za ovaj KAKO: pretpostavit cu da: · znate osnovne naredbe i ideje DOS-a; · Linux je, mozda s X Window Systemom (ili krace X11), pravilno instaliran na vasem PC-u; · vasa ljuska (pandan COMMAND.COM-u) je bash. Osim ako je drukcije receno, sve informacije u ovom dokumentu odnose se na losi stari DOS. O Windowsima ima nesto tu i tamo jer su oni i Linux potpuno razliciti, za razliku od DOS-a, jadne imitacije Unixa. Takoder, shvatite da ovo nije ni potpun uvod ni vodic u konfiguriranju! Najnovija verzija ovog dokumenta je dostupna u nekoliko formata na <ftp://sunsite.unc.edu/pub/Linux/docs/howto>. 11..22.. DDaa.. HHooccuu jjooss.. Linux i programi koji vam trebaju instalirani su na vasem PC-u. Napravili ste si account -- korisnicki racun (ako niste, ooddmmaahh pokrenite adduser vaseime) i Linux radi. Upravo ste napisali svoje ime i sifru, i gledate na zaslon misleci ``A sto sad?''. Ne ocajavajte. Gotovo ste spremni raditi iste stvari koje ste radili s DOS/Windowsima, te mnoge druge. Dok ste radili pod njima, obavljali ste neke od ovih poslova: · pokretanje programa i stvaranje, kopiranje, pregledavanje, brisanje, ispisivanje, preimenovanje datoteka; · CD, MD, RD, i DIR u direktorijima; · formatiranje disketa i kopiranje datoteka s/na njih; · prilagodavanje sustava; · surfanje Internetom; · pisanje .BAT datoteka i programa u vasem omiljenom jeziku; · preostalih 1%. Ovi se zadaci pod Linuxom mogu izvesti slicno kao pod DOS-om. Pod DOS- om, obicni korisnik od svih 100 koristi samo neke naredbe: isto donekle vrijedi za Linux. 11..22..11.. UUvvooddnnii kkoonncceeppttii Najbolji nacin za ucenje je skakanje ravno u vodu. Svakako eksperimentirajte i igrajte se s Linuxom: osim ako se logirate kao ``root'', nema mu se sto dogoditi. Nekoliko napomena: · Najprije, kako ugasiti Linux. Ako ste u tekstualnom modu, pritisnite <CTRL>-<ALT>-<DEL>, pricekajte da se sustav digne i ugasite PC. Ako radite pod X-om, prvo pritisnite <CTRL>-<ALT>-<BACKSPACE>, a zatim <CTRL>-<ALT>-<DEL>. NNiikkaadd nemojte izravno gasiti ili resetirati PC: tako mozete ostetiti datotecni sustav. · Za razliku od DOS-a ili Windowsa, u Linux su ugradeni sigurnosni mehanizmi. Datoteke i direktoriji imaju dozvole; zato obicni korisnik nekima ne moze pristupiti (pogledajte poglavlje ``Dozvole i vlasnistvo''). DOS i Windows vam dopustaju da izbrisete cijeli disk. · Posebni korisnik rroooott, administrator sustava, ima potpunu vlast nad zivotom i smrcu racunala. Ako radite na svom PC-u, mozete biti i root. No to je ooppaassnnoo: svaka greska moze ozbiljno ostetiti ili unistiti sustav kao i u DOS/Windowsima. Ne budite root kad to nije potrebno. · Linux je toliko slozen jer je vrlo prilagodljiv: gotovo svaka mogucnost i program mogu se prilagoditi preko jedne ili vise konfiguracijskih datoteka. Slozenost je cijena koju placate za moc. · Redirekcija i piping, sporedne mogucnosti u DOS-u, vrlo su vazne i puno mocnije pod Linuxom. Jednostavne naredbe mogu se povezati za slozene poslove. Toplo preporucam da ih naucite koristiti. 11..22..22.. UUppuuttee Pod Linuxom upute mozete dobiti na mnogo nacina. Najvazniji su: · CCiittaannjjee ddookkuummeennttaacciijjee -- mislim ozbiljno. Iako KAKO koji citate moze posluziti kao uvod u Linux, ima nekoliko knjiga koje biste stvarno trebali procitati: _L_i_n_u_x _I_n_s_t_a_l_l_a_t_i_o_n _a_n_d _G_e_t_t_i_n_g _S_t_a_r_t_e_d Matta Welsha, <http://sunsite.unc.edu/mdw/LDP/gs/gs.html>, _L_i_n_u_x _U_s_e_r _G_u_i_d_e Larrya Greenfielda, <ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/users- guide>, i _L_i_n_u_x _F_A_Q, <http://dokumentacija.linux.hr/Linux- FAQ.html>. Na vama je da procitate barem jednu. · Dokumentacija instaliranih paketa cesto je u poddirektorijima /usr/doc. · Za upute o ``internim naredbama'' ljuske napisite help, ili, jos bolje, man bash ili info bash. · Za upute o nekoj naredbi napisite man naredba sto ce prikazati man (mmaannual -- prirucnik) stranicu za naredba. info naredba prikazuje, ako postoji, info stranicu za naredba. info je hipertekstualni sustav dokumentacije, ne bas intuitivan. Na kraju, probajte apropos naredba ili whatis naredba. Kod svih njih rad mozete prekinuti pomocu <q>. · Konacno, na Internetu: pravo mjesto za dobivanje pomoci je Usenet, na primjer comp.os.linux.setup. Molim vas, nemojte od mene traziti pomoc, jer sam prilicno preopterecen. 11..33.. KKoonnvveenncciijjee U ovom dokumentu, primjeri cesto slijede ovaj format: <...> je nuzan argument, a [...] opcionalan. Na primjer: $ tar -tf <datoteka.tar> [> redir_datoteka ] datoteka.tar se mora navesti, ali redirekcija u redir_datoteka nije obavezna. RMP (_R_e_a_d _M_a_n _P_a_g_e_s) vas upucuje na daljnje citanje man stranica. Ne mogu naglasiti koliko je vazno citanje dokumentacije. ``DOSWin'' oznacava ``DOS/Windows''. Kada je prompt u primjeru naredbe #, naredbu moze izvrsiti samo root. 22.. ZZaa nneessttrrpplljjiivvee Hocete se istaci? Pogledajte malo ovo: DOS Linux ------------------------ ------------------------- ATTRIB (+-)atr datoteka chmod <mod> datoteka potpuno drukcije BACKUP tar -Mcvf uredaj dir/ isto CD dir\ cd dir/ skoro ista sintaksa COPY datoteka1 datoteka2 cp datoteka1 datoteka2 isto DEL datoteka rm datoteka pazljivo: nema undelete DELTREE dir rm -R dir isto DIR ls ne bas jednaka sintaksa DIR datoteka /S find . -name datoteka potpuno drukcije EDIT datoteka vi datoteka mislim da vam se nece svidjeti jstar datoteka slicno DOS-ovom EDIT-u EDLIN datoteka ed datoteka zaboravite na to FORMAT fdformat, mount, umount prilicno razlicita sintaksa HELP naredba man naredba, info naredba filozofija je ista MD dir\ mkdir dir/ skoro ista sintaksa MORE < datoteka less datoteka puno bolje MOVE datoteka1 datoteka2 mv datoteka1 datoteka2 isto NUL /dev/null isto PRINT datoteka lpr datoteka isto PRN /dev/lp0, /dev/lp1 isto RD dir rmdir dir/ skoro ista sintaksa REN datoteka1 datoteka2 mv datoteka1 datoteka2 ne radi za vise datoteka RESTORE tar -Mxpvf uredaj drukcija sintaksa TYPE datoteka less datoteka puno bolje WIN startx totalno drukcije! Za nesto vise od popisa naredbi procitajte sljedeca poglavlja. 33.. UUppoozznnaajjttee bbaasshh Dobre vijesti: uz Linux puno manje tipkate na promptu, jer bash ljuska tipka za vas kad god je moguce, i nudi zgodne mogucnosti editiranja linije. Za pocetak, tipka strelice gore vraca prosle naredbe; ali tu je jos. Pritisak na <TAB> dopunjava imena datoteka i direktorija, pa je tipkanje $ ls /uTABloTABbTAB isto kao tipkanje $ ls /usr/local/bin Da je bilo dvosmislenosti, kao u $ ls /uTABloTABiTAB bash bi stao jer ne zna mislite li na /usr/local/info ili /usr/local/include. Dodajte jos znakova i opet pritisnite <TAB>. Druge korisne tipke su <ESC-BACKSPACE>, sto brise rijec na lijevo, i <ESC-D>, sto brise rijec na desno; <ESC-F> mice kursor jednu rijec desno, <ESC-B> lijevo; <CTRL-A> mice na pocetak reda, <CTRL-E> na kraj. Tipka <ALT> radi isto sto i <ESC>. Dosta za sada. Kada se jednom naviknete na te kombinacije, DOS prompt ce vam biti vrlo neudoban... 44.. DDaattootteekkee ii pprrooggrraammii 44..11.. DDaattootteekkee:: oossnnoovvnnee ssttvvaarrii Struktura direktorija i datoteka u Linuxu vrlo je slicna onoj u DOSWinu. Datoteke imaju imena po posebnim pravilima, nalaze se u direktorijima, neke su izvrsne, a vecina takvih ima programske prekidace (_s_w_i_t_c_h). Isto tako, mozete koristiti metaznakove, redirekciju i piping. Samo je nekoliko manjih razlika: · Pod DOS-om, imena imaju tzv. 8.3 oblik; na primjer NIJEDOVO.TXT. Linux moze i bolje. Ako je Linux instaliran na datotecnom sustavu kao sto je ext2 ili umsdos, mozete koristiti duza imena (do 255 znakova), s vise od jedne tocke: Ovo_je.VRLO_dugo.ime_datoteke. Primjetite da sam koristio i velika i mala slova: ustvari... · Velika i mala slova u imenima datoteka i naredbi razlicita su. Prema tome, IME_DATOTEKE.tar.gz i ime_datoteke.tar.gz su dvije razlicite datoteke. ls je naredba, LS je greska. · Korisnici Windowsa, pazite se kod koristenja dugih imena pod Linuxom. Ako u imenu ima razmaka (nije preporucljivo, ali je moguce), morate ga okruziti navodnicima. Na primjer: $ # ova naredba stvorit ce direktorij "Moje stare datoteke" $ mkdir "Moje stare datoteke" $ ls Moje stare datoteke bin tmp Neke znakove ne bi trebalo koristiti: medu njima su ! * $ & #. · Nema odredenih ekstenzija kao sto je .COM i .EXE za programe, ili .BAT za batch datoteke. Kada zadate naredbu ls -F, izvrsne datoteke oznacava zvjezdica (*) na kraju imena. Na primjer: $ ls -F Ja_sam_direktorij/ cindy.jpg cjpg* pismo_Jurici moja_1._skripta* staro~ Datoteke cjpg* i moja_1._skripta su izvrsne, odnosno programi. Pod DOS-om, backup datoteke zavrsavaju na .BAK, a pod Linuxom s tildom, ~. Zatim, datoteka cije ime pocinje tockom je skrivena. Na primjer, datoteku .Ja.sam.skrivena.datoteka naredba ls nece pokazati. · U DOS-u programski prekidaci izgledaju kao /prekidac, a u Linuxu -prekidac ili --prekidac. Na primjer: DIR /S postaje ls -R. Mnogi DOS programi, kao sto je PKZIP ili ARJ, koriste Unix-olike prekidace. Sad mozete preskociti do dijela ``Datoteke: prevodenje naredbi'', ali, da sam na vasem mjestu, ja bih nastavio. 44..22.. SSiimmbboolliicckkee vveezzee Pod Unixom postoji vrsta datoteke kakve nema pod DOS-om: simbolicka veza. To je nesto poput pokazivaca na datoteku ili direktorij, a moze se koristiti umjesto datoteke ili direktorija na koji pokazuje; slicna je precicama (_s_h_o_r_t_c_u_t_s) iz Windowsa. Primjeri simbolickih veza su /usr/X11, koja pokazuje na /usr/X11R6; /dev/modem koji pokazuje na /dev/ttyS0 ili /dev/ttyS1. Simbolicku vezu cete napraviti ovako: $ ln -s <datoteka_ili_direktorij> <ime_veze> Na primjer: $ ln -s /usr/doc/g77/DOC g77upute.txt Sada mozete pozivati g77upute.txt umjesto /usr/doc/g77/DOC. Veze ovako izgledaju u ispisu direktorija: $ ls -F g77upute.txt@ $ ls -l (nekoliko stvari...) g77upute.txt -> /usr/doc/g77/DOC 55.. DDoozzvvoollee ii vvllaassnniissttvvoo DOS datoteke i direktoriji imaju ove atribute: A (arhiviran), H (skriven), R (samo za citanje) i S (sustav). Samo H i R imaju smisla pod Linuxom: skrivene datoteke pocinju tockom, a za R atribut citajte dalje. Pod Unixom datoteka ima ddoozzvvoollee i vvllaassnniikkaa, koji pripada ggrruuppii. Pogledajte ovo: $ ls -l /bin/ls -rwxr-xr-x 1 root bin 27281 Aug 15 1995 /bin/ls* Prvo polje sadrzi dozvole za datoteku /bin/ls, koja pripada rootu, grupi bin. Bez obzira na to, zapamtite sto -rwxr-xr-x znaci, s lijeva na desno: - je tip datoteke (-: obicna, d: direktorij, l: veza, itd.); rwx su dozvole za vlasnika datoteke (citanje, pisanje, izvrsavanje); r-x su dozvole za grupu vlasnika datoteke (citanje, izvrsavanje) (necu objasnjavati grupe, prezivjet cete bez toga dok ste pocetnik ;-); r-x su dozvole za sve ostale korisnike (citanje, izvrsavanje). I direktorij /bin ima dozvole: pogledajte dio ``Dozvole direktorija'' za detalje. Zato ne mozete obrisati datoteku /bin/ls osim ako ste root: za to nemate dozvole. Naredba za mijenjanje dozvola datoteka je: $ chmod <tkoXdozvola> <datoteka> gdje je tko u (korisnik, tj. vlasnik), g (grupa), o (ostali); X je + ili -; dozvola je r (citanje), w (pisanje), x (izvrsavanje). Evo cestih primjera koristenja chmoda: $ chmod +x datoteka To postavlja dozvolu za izvrsavanje datoteke. $ chmod go-rw datoteka To oduzima dozvole za citanje i pisanje svima osim vlasniku. $ chmod ugo+rwx datoteka To svima daje dozvole za citanje, pisanje i izvrsavanje. $ chmod +s datoteka Time dobivamo takozvanu _s_e_t_u_i_d ili ssuuiidd datoteku -- svatko ju moze izvrsiti s privilegijama njenog vlasnika. Najcesce su root suid datoteke; to obicno vazne datoteke sustava, kao sto je X server. Kraci nacin za pisanje dozvola je brojkama: rwxr-xr-x mozemo izraziti kao 755 (svako slovo odgovara bitu: --- je 0, --x je 1, -w- je 2, -wx je 3). Izgleda tesko, ali shvatit cete uz malo prakse. root kao nadkorisnik moze mijenjati dozvole svake datoteke. RMP. 55..11.. DDaattootteekkee:: pprreevvooddeennjjee nnaarreeddbbii Na lijevoj strani su DOS naredbe; na desnoj Linux pandani. ATTRIB chmod COPY cp DEL rm MOVE mv REN mv TYPE more, less, cat nul /dev/null prn, lpt1 /dev/lp0 ili /dev/lp1; lpr Operatori za redirekciju i piping: < > >> | Metaznakovi: * ? 55..11..11.. PPrriimmjjeerrii DOS Linux -------------------------------------- ------------------------------ C:\GUIDO>ATTRIB +R DATOTEKA.TXT $ chmod 400 datoteka.txt C:\GUIDO>COPY JURICA.TXT JURICA.DOC $ cp jurica.txt jurica.doc C:\GUIDO>COPY *.* SVE $ cat * > sve C:\GUIDO>COPY FRAKTALI.DOC PRN $ lpr fraktali.doc C:\GUIDO>DEL PRIV $ rm priv C:\GUIDO>DEL *.BAK $ rm *~ C:\GUIDO>MOVE DOKUMENT.TXT TMP\ $ mv dokument.txt tmp/ C:\GUIDO>REN DOKUMENT.TXT DOKUMENT.ASC $ mv dokument.txt dokument.asc C:\GUIDO>PRINT PISMO.TXT $ lpr pismo.txt C:\GUIDO>TYPE PISMO.TXT $ more pismo.txt C:\GUIDO>TYPE PISMO.TXT $ less pismo.txt C:\GUIDO>TYPE PISMO.TXT > NUL $ cat pismo.txt > /dev/null nema $ more *.txt *.asc nema $ cat dio*.txt | less Napomene: · * je pametniji pod Linuxom: * odgovara svim datotekama osim skrivenima; .* odgovara svim skrivenim datotekama (ali i trenutnom direktoriju . i roditeljskom direktoriju ..: pazite na to!); *.* odgovara samo datotekama s . u sredini ili na kraju; p*r odgovara i ``petar'' i ``papir''; *c* odgovara i ``crv'' i ``svizac''. · Kada koristite more, pritisnite razmak za slijedecu stranicu, <q> za izlaz. less je intuitivniji i dopusta koristenje strelica. · UNDELETE ne postoji, pa pazljivo razmislite prije brisanja datoteka. · Uz DOS-ove < > >>, Linux ima 2> za preusmjeravanje poruka o greskama (_s_t_d_e_r_r); 2>&1 preusmjerava stderr na stdout, a 1>&2 stdout na stderr. · Linux ima jos jedan metaznak: []. Koristenje: [abc]* odgovara datotekama koje pocinju s a, b i c; *[I-N1-3] odgovara datotekama koje zavrsavaju s I, J, K, L, M, N, 1, 2 i 3. · lpr <datoteka> ispisuje datoteku u pozadini. Za provjeru stanja reda za ispis sluzi lpq; za brisanje datoteke iz reda za ispis lprm. · Ne postoji RENAME slican DOS-ovom; to jest, mv *.xxx *.yyy nece raditi. REN-olika naredba se moze naci na <ftp://sunsite.unc.edu/pub/Linux/utils/file>. · Ako zelite upozorenje kad bi datoteka trebala biti prepisana, koristite cp -i i mv -i. 55..22.. PPookkrreettaannjjee pprrooggrraammaa:: vviisseezzaaddaaccnnoosstt ii sseessiijjee Kako biste pokrenuli program, napisite njegovo ime kao i pod DOS-om. Ako je direktorij (poglavlje ``Koristenje direktorija'') u kojem je program smjesten ukljucen u $PATH (poglavlje ``Inicijalizacijske datoteke sustava''), program ce se pokrenuti. Iznimka: za razliku od DOS-a, pod Linuxom se program u trenutnom direktoriju nece pokrenuti osim ako je taj direktorij u $PATH-u. Rjesenje: ako je prog vas program, napisite ./prog. Ovako izgleda tipicna naredba: $ naredba [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< ulaz] [> izlaz] gdje su -s1, ..., -sn programski prekidaci; par1, ..., parn programski parametri. U jednom redu mozete pokrenuti vise programa: $ naredba1 ; naredba2 ; ... ; naredban To je sve o pokretanju programa, ali lako je nastaviti. Jedan od glavnih razloga za koristenje Linuxa je visezadacnost. Vise programa (od sada, procesa) radi u isto vrijeme. Mozete ih pokretati u pozadini i nastaviti rad bez prekida. Linux vam dopusta i nekoliko sesija: kao da radite na vise racunala odjednom! · Za prebacivanje izmedu 1.-6. sesije na virtualnim konzolama, pritisnite <ALT>-<F1> ... <ALT>-<F6>. · Za pokretanje nove sesije u istoj VC bez napustanja trenutne, napisite su lt;login>. Na primjer: su - root. Ovo je korisno kada obavljate zadatak koji moze obaviti samo root. · Za kraj sesije napisite exit. Upozorit ce vas ako ima zaustavljenih poslova (cut cete o tome kasnije). · Za pokretanje procesa u pozadini, dodajte ampersand (&) na kraju naredbe: $ imeprograma [-prekidaci] [parametri] [< ulaz] [> izlaz] & [1] 123 Ljuska procese oznacava brojem posla ([1]; vidi dolje) i PID-om (_P_r_o_c_e_s_s _I_d_e_n_t_i_f_i_c_a_t_i_o_n -- identifikacijski broj procesa; u nasem primjeru 123). · Za broj procesa napisite ps ax. To ce ispisati popis procesa koji trenutno rade. · Da biste ubili (terminirali) proces, napisite kill <PID>. Mozda cete ga morati ubiti ako ne znate kako pravilno izaci... Ako niste root, ne mozete ubijati tude procese. Ponekad ce proces ubiti jedino kill -SIGKILL <PID>. I ljuska vam omogucava zaustavljanje ili privremeno suspendiranje procesa, slanje procesa u pozadinu i u prednji plan. U tom kontekstu procese nazivamo poslovima. · Za broj poslova napisite jobs. Tu su oznaceni brojem posla, a ne PID-om. · Za zaustavljanje procesa u prednjem planu pritisnite <CTRL>-<C> (nece uvijek raditi). · Za suspendiranje procesa u prednjem planu pritisnite <CTRL>-<Z> (isto). · Za slanje suspendiranog procesa u pozadinu napisite bg <%posao> (postaje posao). · Za slanje posla u prednji plan, napisite fg <%posao>. Za slanje posljednjeg procesa poslatog u pozadinu u prednji plan jednostavno napisite fg. · Za ubijanje posla napisite kill <%posao>. <posao> moze biti 1, 2, 3... Koristenjem ovih naredbi mozete formatirati disketu, arhivirati hrpu datoteka, kompajlirati program i otpakirati arhivu skoro istovremeno, i jos uvijek imati prompt pred sobom. Probajte to na Windowsima, samo da vidite razliku u brzini (naravno, ako se ne sruse). 55..33.. PPookkrreettaannjjee pprrooggrraammaa nnaa uuddaalljjeenniimm rraaccuunnaalliimmaa Kako biste pokrenuli program na udaljenom racunalu cije je ime udaljeno.racunalo.edu, napisite: $ telnet udaljeno.racunalo.edu Nakon sto se ulogirate, pokrenite svoj omiljeni program. Naravno, na tom racunalu morate imati korisnicki racun. Ako imate X11, cak mozete na udaljenom racunalu pokrenuti X aplikaciju, prikazanu na vasem X prikazu. Neka je udaljeno.racunalo.edu udaljeno X racunalo i moja.linux.kanta vas Linux sustav. Kako biste s moja.linux.kanta pokrenuli X program koji se nalazi na udaljeno.racunalo.edu, ucinite slijedece: · Pokrenite X11 i xterm ili slican emulator terminala, a zatim napisite: $ xhost +udaljeno.racunalo.edu $ telnet udaljeno.racunalo.edu · Nakon sto se logirate, napisite: udaljeno:$ DISPLAY=moja.linux.kanta:0.0 udaljeno:$ imeprograma & (Umjesto DISPLAY... cete mozda morati napisati: setenv DISPLAY moja.linux.kanta:0.0. Ovisi o ljusci.) Eto! Sada ce se imeprograma pokrenuti na udaljeno.racunalo.edu i prikazati na vasem stroju. No nemojte ovo pokusavati preko modema -- presporo je da bi se moglo koristiti. Stovise, ovo je gruba i nesigurna metoda: procitajte ``X na daljinu mini-KAKO'' na <http://dokumentacija.linux.hr/X-na-daljinu.html>. 66.. KKoorriisstteennjjee ddiirreekkttoorriijjaa 66..11.. DDiirreekkttoorriijjii:: oossnnoovvnnee ssttvvaarrii Vidjeli smo razlike izmedu datoteka pod DOSWinom i Linuxom. Sto se tice direktorija, pod DOSWinom je root direktorij \, a pod Linuxom /. Tako se pod DOSWinom ugnijezdeni direktoriji razdvajaju znakom \, a pod Linuxom /. Primjeri staza datoteka: DLOiSnux C/:h\oDmOeK/UgMuEiNdTo\/GdEoOkLuOmGeInJt\iS/RgEeDo.lnorgi3jbao/tsr0e>d?n0ja.nr 3bot 0>?0 Kao i obicno, .. je direktorij roditelj, a . trenutni direktorij. Sjetite se da vam sustav nece dopustiti cd, rd ili md gdje god zelite. Svaki korisnik ima svoje stvari u direktoriju koji se naziva hhoommee (dom), koji mu je dao administrator sustava; na primjer, na mojem PC-u moj je home direktorij /home/guido. 66..22.. DDoozzvvoollee ddiirreekkttoorriijjaa I direktoriji imaju dozvole. Ono sto smo vidjeli u dijelu ``Dozvole i vlasnistvo'' vrijedi i za direktorije (korisnik, grupa, ostali). Za direktorij rx znaci da mozete uci u njega, a w znaci da u njemu mozete izbrisati datoteku (naravno, prema dozvolama datoteke) ili sam direktorij. Na primjer, kako bi sprijecili njuskanje ostalih korisnika po /home/guido/tekst: $ chmod o-rwx /home/guido/tekst 66..33.. DDiirreekkttoorriijjii:: pprreevvooddeennjjee nnaarreeddbbii DIR ls, find, du CD cd, pwd MD mkdir RD rmdir DELTREE rm -rf MOVE mv 66..33..11.. PPrriimmjjeerrii DOS Linux ---------------------------------- ----------------------- C:\GUIDO>DIR $ ls C:\GUIDO>DIR DATOTEKA.TXT $ ls datoteka.txt C:\GUIDO>DIR *.H *.C $ ls *.h *.c C:\GUIDO>DIR/P $ ls | more C:\GUIDO>DIR/A $ ls -l C:\GUIDO>DIR *.TMP /S $ find / -name "*.tmp" C:\GUIDO>CD $ pwd nema - pogledajte napomenu $ cd isto $ cd ~ isto $ cd ~/temp C:\GUIDO>CD \OSTALO $ cd /ostalo C:\GUIDO>CD ..\TEMP\SMECE $ cd ../temp/smece C:\GUIDO>MD NOVIPROG $ mkdir noviprogrami C:\GUIDO>MOVE PROGRAM .. $ mv program .. C:\GUIDO>MD \PROGRAMI\TURBO $ mkdir /programi/turbo C:\GUIDO>DELTREE TEMP\SMECE $ rm -rf temp/smece C:\GUIDO>RD NOVIPROG $ rmdir noviprogrami C:\GUIDO>RD \PROGRAMI\TURBO $ rmdir /programi/turbo Napomene: · Kad koristite rmdir, direktorij mora biti prazan. Za brisanje direktorija i njegovog sadrzaja koristite rm -rf (na svoju odgovornost). · Znak ~ je kratica za ime vaseg home direktorija. Naredbe cd ili cd ~ ce vas odvesti u vas home direktorij bez obzira na trenutni; naredba cd ~/tmp ce vas odvesti u /home/vas_home/tmp. · cd - vas vraca u direktorij iz kojeg ste posljednji put pokrenuli cd. 77.. DDiisskkeettee,, ttvvrrddii ddiisskkoovvii ii sslliiccnnoo S uredajima pod Linuxom mozete raditi na dva nacina: DOS nacin i Unix nacin. Izaberite sami. 77..11.. RRaadd ss uurreeddaajjiimmaa nnaa DDOOSS nnaacciinn S vecinom distribucija dolazi Mtools kolekcija, skup naredbi koje su posve jednake DOS pandanima, osim sto pocinju s ``m'': mformat, mdir, mdel, mmd, itd. Mogu cak sacuvati duga imena, ali ne i dozvole datoteka. Ako mtools konfigurirate uredivanjem datoteke /etc/mtools.conf (primjer je u distribuciji), mozete pristupiti i DOS/Windows particiji, CD-ROM-u ili Zip driveu. Ipak, za formatiranje nove diskete mformat nije dovoljan. Prije toga cete morati kao root zadati ovu naredbu: # fdformat /dev/fd0H1440 Ne mozete pristupati datotekama na disketi naredbom kao sto je less a:datoteka.txt! To je mana DOS nacina pristupanja diskovima. 77..22.. RRaadd ss uurreeddaajjiimmaa nnaa UUnniixx nnaacciinn Unix s uredajima radi drukcije. Nema odvojenih diskova kao sto je A: ili C:; disk, bio on disketa ili nesto drugo, postaje dio lokalnog datotecnog sustava operacijom mmoonnttiirraannjjaa. Kada ste gotovi s njime, prije nego sto ga izvadite, morate ga ddeemmoonnttiirraattii. Fizicko formatiranje diska je jedna stvar, a stvaranje datotecnog sustava na njemu sasvim druga. DOS naredba FORMAT A: obavlja obje, ali pod Linuxom postoje odvojene naredbe. Za formatiranje diskete pogledajte prethodni dio; za stvaranje datotecnog sustava: # mkfs -t ext2 -c /dev/fd0H1440 Umjesto ext2 mozete koristiti dos, vfat (preporucen) ili druge formate. Kada je disk pripremljen, montirajte ga naredbom # mount -t ext2 /dev/fd0 /mnt tocno navodeci datotecni sustav ako niste koristili ext2. Sada mozete raditi s datotekama na disketi koristeci /mnt umjesto A: ili B:. Primjeri: DOS Linux ---------------------------- ------------------------- C:\GUIDO>DIR A: $ ls /mnt C:\GUIDO>COPY A:*.* $ cp /mnt/* . C:\GUIDO>COPY *.ZIP A: $ cp *.zip /mnt C:\GUIDO>EDIT A:DATOTEKA.TXT $ jstar /mnt/datoteka.txt C:\GUIDO>A: $ cd /mnt A:> _ /mnt/$ _ Kad ste gotovi, prije nego izvadite disketu, mmoorraattee ju demontirati naredbom # umount /mnt Ocito, fdformat i mkfs morate koristiti samo na neformatiranim disketama, a ne na prethodno koristenim. Ako koristite B: pogon, obracajte mu se s fd1H1440 i fd1 umjesto fd0H1440 i fd0 u gornjim primjerima. Naravno, sto vrijedi za diskete, vrijedi i za druge uredaje; na primjer, mozete montirati drugi tvrdi disk ili CD-ROM. CD-ROM montirate ovako: # mount -t iso9660 /dev/cdrom /mnt Ovo je ``sluzbeni'' nacin za montiranje diskova, ali to se moze i jednostavnije. Posto je malo iritantno sto morate biti root kako bi montirali disketu ili CD-ROM, njihovo montiranje se ovako moze dopustiti svakomu: · Ucinite sljedece kao root: # mkdir /mnt/floppy ; mkdir /mnt/cdrom # chmod 777 /mnt/floppy /mnt/cd* # # pazite da navedete pravi CD-ROM uredaj # chmod 666 /dev/hdb ; chmod 666 /dev/fd* · Dodajte u /etc/fstab ove redove: /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 0 /dev/fd0 /mnt/floppy vfat user,noauto 0 0 Ako sada zelite montirati DOS disketu ili CD-ROM: $ mount /mnt/floppy $ mount /mnt/cdrom Direktorijima /mnt/floppy i /mnt/cdrom sada moze pristupiti svaki korisnik. Ako vas zanima, ovakvo dopustanje montiranja diskova svakom ogromna je sigurnosna rupa. Jos dvije korisne naredbe su df, koji daje informacije o montiranim datotecnim sustavima, te du imedirektorija, koji ispisuje prostor na disku koji direktorij zauzima. 77..33.. BBaacckkuupp Pomoci ce vam nekoliko paketa, no najmanje sto mozete uciniti za backup na vise diskova je (kao root): # tar -M -cvf /dev/fd0H1440 direktorij_za_backup/ Mora biti ubacena formatirana disketa, a jos nekoliko njih spremno. Kako biste vratili svoje stvari, ubacite prvu i napisite: # tar -M -xpvf /dev/fd0H1440 88.. AA ssttoo jjee ss WWiinnddoowwssiimmaa?? Pandan Windowsima je graficko sucelje X Window System. Za razliku od Windowsa ili Maca, X11 nije napravljen za lako koristenje ili lijep izgled, nego samo za dodavanje grafickih mogucnosti Unix radnim stanicama. Ovo su glavne razlike: · Windows izgleda isto sirom svijeta, a X11 ne: puno je prilagodljiviji. Ukupni izgled X11-a odreduje kljucni dio zvan _w_i_n_d_o_w _m_a_n_a_g_e_r. Sirok je izbor window managera: fvwm, spartanski, ali zgodan i djelotvoran s memorijom; fvwm2-95; Afterstep, WindowMaker, Enlightenment i mnogi drugi. Obicno se pokrece iz .xinitrc. · Vas WM se moze konfigurirati tako da prozor reagira kao u, eh, Windowsima: kliknete na njega i dolazi u prednji plan. Druga je mogucnost da u prednji plan dode kada preko njega prijedete misem (fokus). Smjestaj prozora na zaslonu moze biti automatski ili interaktivan: ako se umjesto vaseg programa pojavi cudan okvir, lijevim klikom odaberite gdje ce se smjestiti. · Vecina opcija se moze prilagoditi uredivanjem jedne ili vise konfiguracijskih datoteka. Procitajte dokumentaciju svog WM-a; konfiguracijska datoteka moze biti .fvwmrc, .fvwm2rc95, .steprc, itd. Primjer konfiguracijske datoteke se obicno nalazi u /etc/X11/ime-window-managera/system.ime-window-managera. · X11 aplikacije su pisane pomocu posebnih librarya (_w_i_d_g_e_t _s_e_t_s); posto ih ima nekoliko, aplikacije izgledaju razlicito. Najosnovnije koriste Athena widgete (2D izgled; xdvi, xman, xcalc); drugi koriste Motif (netscape), a drugi pak Tcl/Tk, XForms, Qt, Gtk, itd. Skoro svi od tih librarya pruzaju izgled i osjecaj Windowsa. · Osjecaj, nazalost, moze biti nepotpun. Na primjer, ako odaberete red teksta misem i pritisnete <BACKSPACE>, ocekujete da red nestane, ne? S aplikacijama na Atheni to ne radi, ali radi s drugim widget setovima. · Kako radi pomicanje i mijenjanje velicine prozora ovisi o WM-u i widget setu. Uputa: ako scrollbarovi ne rade kako ocekujete, probajte ih micati sredisnjom tipkom misa ili s obje tipke zajedno. · Aplikacije ne moraju imati ikonu, ali mogu ih imati mnogo. Vecina WM-a vam daje izbornik koji pozivate klikanjem na desktop (root prozor); naravno, izbornik se moze mijenjati. Za mijenjanje izgleda root prozora koristite xsetroot ili xloadimage. · _C_l_i_p_b_o_a_r_d moze sadrzavati samo tekst i ponasa se cudno. Kad izaberete tekst, on je vec kopiran u clipboard: pomaknite se i pritisnite srednju tipku za lijepljenje. xclipboard pruza visestruke clipboard spremnike. · _D_r_a_g _& _d_r_o_p je moguc, no dostupan je samo ako koristite X11 aplikacije i/ili WM-ove koji ga podrzavaju. Trebali biste koristiti aplikacije koje koriste iste librarye jer time stedite memoriju, no to je tesko ostvariti u praksi. Postoje projekti kojima je cilj izgled i ponasanje X11 uciniti dosljednim kao na Windowsima. Gnome, <http://www.gnome.org>, i KDE, <http://www.kde.org>, su zakon. Probajte ih: vise necete zaliti za svojim Windows desktopom. 99.. PPrriillaaggooddaavvaannjjee ssuussttaavvaa 99..11.. IInniicciijjaalliizzaacciijjsskkee ddaattootteekkee ssuussttaavvaa Dvije vazne datoteke pod DOS-om su AUTOEXEC.BAT i CONFIG.SYS, koje se pri dizanju sustava koriste za inicijalizaciju, postavljanje nekih varijabli okruzja kao sto je PATH i FILES, i, mozda, pokretanje programa ili batch datoteke. Pod Linuxom ima puno inicijalizacijskih datoteka. Neke bolje ne dirajte ako ne znate sto radite. Uglavnom, evo najvaznijih: Datoteke Napomene /etc/inittab zasad ne dirajte! /etc/rc.d/* isto Ako zelite samo postaviti $PATH i druge varijable okruzja, ili zelite promijeniti poruke pri loginu, automatski pokrenuti program nakon njega, pogledajte ove datoteke: · /etc/issue: poruka prije logina · /etc/motd: poruka poslije logina · /etc/profile: $PATH i druge varijable, itd. · /etc/bashrc: aliasi i funkcije, itd. · /home/vas_home/.bashrc: vasi aliasi i funkcije · /home/vas_home/.bash_profile: ili · /home/vas_home/.profile: okruzje i pokretanje vasih programa Ako ova zadnja datoteka postoji (skrivena je), naredbe u njoj ce se izvrsiti nakon logina. Primjer -- pogledajte ovaj .bash_profile: # ja sam komentar echo Okruzje: printenv | less # pandan naredbi SET pod DOS-om alias d='ls -l' # lako je shvatiti sto je alias alias up='cd ..' echo "Podsjecam te da je PATH "$PATH echo "Danas je `date`" # koristimo izlaz naredbe `date` echo "Lijepo se provedi, "$LOGNAME # a ovo je "funkcija ljuske" ctgz() # Ispisuje sadrzaj .tar.gz arhive. { for datoteka in $* do gzip -dc ${datoteka} | tar tf - done } # kraj .profile-a Pogodili ste -- $PATH i $LOGNAME su varijable okruzja. Ima ih jos puno; RMP za aplikacije kao sto je less ili bash. Stavljanjem ovog reda u svoj /etc/profile dobit cete grub ekvivalent PROMPT $P$G: export PS1="\w\\$ " 99..22.. IInniicciijjaalliizzaacciijjsskkee ddaattootteekkee pprrooggrraammaa Pod Linuxom je skoro sve prilagodljivo vasim potrebama. Vecina programa ima jednu ili vise inicijalizacijskih datoteka s kojima se mozete igrati, obicno .imeprogramarc u vasem home direktoriju. Prve koje cete zeljeti mijenjati su: · .inputrc: koristi ju bash za definiranje tipkovnice; · .xinitrc: koristi ju startx za inicijalizaciju X Window Systema; · .fvwmrc: koristi ju window manager fvwm; · .joerc, .jstarrc: koristi ih editor joe; · .jedrc: koristi ju editor jed; · .pinerc: koristi ju citac poste pine; · .Xdefault: koriste ju mnogi X programi. Za sve ove i druge koje cete prije ili poslije sresti, RMP. Mozda vas zanima _K_o_n_f_i_g_u_r_i_r_a_n_j_e _K_A_K_O na <http://dokumentacija.linux.hr/Konfiguriranje-KAKO.html>? 1100.. MMrreezzee:: kkoonncceeppttii Ne samo sto je ``Dialup Networking'' dostupan pod Linuxom, nego je i stabilniji i brzi. Radi se o PPP-u, protokolu koristenom za spajanje na Internet pomocu modema. Trebat ce vam kernel koji podrzava PPP i alat koji bira broj i uspostavlja vezu. Kako biste skidali postu s ISP-ovog posluzitelja, potreban vam je alat zvan ``e-mail fetcher'' koji koristi POP protokol; nakon skidanja, poruke ce izgledati kao da su izravno isporucene na vas Linux stroj. Potom cete s njima raditi koristeci MUA (_M_a_i_l _U_s_e_r _A_g_e_n_t -- korisnikov postanski agent) kao sto je pine, mutt, elm i mnogi drugi. Dok se pod Windowsima uspostavljanje veze automatski pokrene kada pokrenete Internet aplikaciju, pod Linuxom je obratno: prvo uspostavite vezu, a zatim pokrenete aplikaciju. Stvar zvana diald nudi uobicajeno ponasanje. Instaliranje i konfiguriranje spajanja na mrezu modemom je nekad bila jedna od najtezih stvari pod Linuxom, ali vise nije: pogledajte _K_o_n_f_i_g_u_r_i_r_a_n_j_e _K_A_K_O. Na kraju, nesto o ``Network neighborhood'': vasa Linux radna stanica moze izgledati kao Windows NT/9x u lokalnoj mrezi Windows strojeva! Carobna rijec je Samba: ne razuzdani brazilski ples, nego implementacija SMB protokola za Linux. Otidite na <http://samba.anu.edu.au/samba>. 1111.. MMaalloo pprrooggrraammiirraannjjaa 1111..11.. SSkkrriippttee uu lljjuussccii:: ..BBAATT ddaattootteekkee nnaa sstteerrooiiddiimmaa Ako ste koristili .BAT datoteke kao precice do dugih naredbi (ja jesam, puno), to mozete odgovarajucim alias redovima (pogledajte gornji primjer) u profile ili .bash_profile. Ali ako su vam .BAT-ovi bili slozeniji, onda cete obozavati jezik ljuske: mocan je kao dobri stari QBasic, ako ne i vise. Ima varijable, konstrukte kao while, for, case, if... then... else i puno drugih mogucnosti: dobra je alternativa ``pravom'' programskom jeziku. Za pisanje skripte -- ekvivalenta .BAT datoteci pod DOS-om -- samo trebate napisati standardnu ASCII datoteku koja sadrzi instrukcije, snimiti ju, a onda uciniti izvrsnom naredbom chmod +x <skripta>. Ako ju hocete izvrsiti, samo napisite njeno ime. Malo upozorenje. Editor sustava se zove vi i po mom iskustvu vrlo je tezak za vecinu novih korisnika. Necu vam objasnjavati kako ga upotrebljavati; pogledajte knjigu Matta Welsha ili potrazite upute na mrezi. Ovdje cu reci samo ovo: · za ubacivanje teksta pritisnite <i>, a onda upisite tekst; · za brisanje znakova pritisnite <ESC>, pa <x>; · za izlaz bez snimanja pritisnite <ESC>, pa :q!; · za snimanje i izlaz pritisnite <ESC>, pa :wq. Dobar editor za pocetnika je joe: ako ga pokrenete kao jstar, dobit cete iste tipke kao u DOSWin editoru. jed u WordStar ili IDE modu je jos bolji. Pogledajte dio ``Gdje naci aplikacije'' za informacije gdje ih nabaviti. Pisanje skripti u bashu tako je golema tema da zahtijeva knjigu samo za sebe i necu dublje u nju ulaziti. Samo vam dajem primjer skripte iz koje mozete vidjeti neka osnovna pravila: #!/bin/sh # primjer.sh # ja sam komentar # ne mijenjajte prvi red, on mora biti tamo echo "Ovaj sustav je: `uname -a`" # koristenje izlaza naredbe echo "Moje ime je $0" # ugradene varijable echo "Dali ste mi ovih $# parametara: "$* echo "Prvi parametar je: "$1 echo -n "Kako se zovete? " ; read vase_ime echo pogledajte razliku: "zdravo, $vase_ime" # citiranje s " echo pogledajte razliku: 'zdravo, $vase_ime' # citiranje s ' DIROVI=0 ; DATOTEKE=0 for datoteka in `ls .` ; do if [ -d ${datoteka} ] ; then # ako je datoteka direktorij DIROVI=`expr $DIROVI + 1` # DIROVI = DIROVI + 1 elif [ -f ${datoteka} ] ; then DATOTEKE=`expr $DATOTEKE + 1` fi case ${datoteka} in *.gif|*jpg) echo "${datoteka}: graficka datoteka" ;; *.txt|*.tex) echo "${datoteka}: tekstualna datoteka" ;; *.c|*.f|*.for) echo "${datoteka}: datoteka s izvornim kodom" ;; *) echo "${datoteka}: opcenita datoteka" ;; esac done echo "ima ${DIROVI} direktorija i ${DATOTEKE} datoteka" ls | grep "ZxY--!!!WKW" if [ $? != 0 ] ; then # izlazni kod zadnje naredbe echo "ZxY--!!!WKW nije naden" fi echo "dosta... napisite 'man bash' ako hocete jos informacija" 1111..22.. CC zzaa vvaass Pod Unixom jezik sustava je C, svidjelo se to vama ili ne. Tu je i hrpa drugih jezika (Java, FORTRAN, Pascal, LISP, BASIC, Perl, AWK...). Ako znate C, evo nekoliko uputa za one razmazene Turbo C++-om ili nekim njegovim DOS rodakom. Linuxov C kompajler se zove gcc i nedostaju mu svi ukrasi uobicajenih IDE pandana: nema IDE-a, izravnih uputa, integriranog debuggera, itd. To je samo grubi kompajler komandne linije, vrlo mocan i djelotvoran. Za kompajliranje standardnog hello.c napisite: $ gcc hello.c sto ce dati izvrsnu datoteku a.out. Ako hocete drugo ime, napisite $ gcc -o hello hello.c Za vezanje librarya na program, dodajte prekidac -l<imelibrarya>. Na primjer, za vezanje s matematickim libraryem: $ gcc -o matematika matematika.c -lm -l<imelibrarya> kaze gccu da veze library /usr/lib/<imelibrarya>.so, pa -lm veze /usr/lib/libm.so. Zasad je sve u redu. Ali kad se vas program sastoji od vise datoteka, koristit cete alat make. Prepostavimo da ste napisali parser izraza: njegova se datoteka zove parser.c i ukljucuje dva headera, parser.h i xy.h. A onda zelite koristiti funkcije iz parser.c u drugom programu, recimo kalk.c, koji takoder ukljucuje parser.h. Kakva zbrka! Kako cete kompajlirati kalk.c? Napisat cete takozvani Makefile, koji kompajleru pokazuje meduovisnosti izvornih i objektnih kodova. U nasem primjeru: # Ovo je Makefile za kompajliranje kalk.c # Pritisnite <TAB> gdje je oznaceno! kalk: kalk.o parser.o <TAB>gcc -o kalk kalk.o parser.o -lm # kalk ovisi o dvije objektne datoteke: kalk.o i parser.o kalk.o: kalk.c parser.h <TAB>gcc -c kalk.c # kalk.o ovisi o dvije izvorne datoteke parser.o: parser.c parser.h xy.h <TAB>gcc -c parser.c # parser.o ovisi o tri izvorne datoteke # kraj Makefilea Ovu datoteku snimite kao Makefile i napisite make za kompajliranje programa; mozete ju snimiti i kao kalk.mak i napisati make -f kalk.mak. Naravno, RMP. Nesto uputa o C funkcijama pokrivaju man stranice 3. dijela; na primjer, $ man 3 printf Za otklanjanje gresaka koristite gdb. info gdb za njegovo koristenje. Librarya ima puno; medu prvima koje cete zeljeti koristiti su ncurses (efekti u tekstualnom modu) i svgalib (grafika na konzoli). Ako ste dovoljno hrabri za programiranje u X11 (nije to tako tesko), postoje nekoliko librarya koje pisanje X11 programa cine vrlo lakim. Pogledajte <http://www.xnet.com/~blatura/linapp6.html>, imajuci pritom na umu da Gtk postaje Linux standard. Mnogi editori mogu imitirati IDE; na primjer, emacs i jed imaju sintakticko osvjetljavanje, automatsko uvlacenje, itd. Mozete nabaviti i paket RHIDE s <ftp://sunsite.unc.edu/pub/Linux/devel/debuggers/>. To je klon Borlandovog IDE-a i vjerojatno ce vam se svidjeti. 1122.. OOssttaalliihh 11%% Zapravo puno vise od 1%... 1122..11.. KKoorriisstteennjjee ttaarraa ii ggzziippaa Pod Unixom postoje siroko koristene aplikacije za arhiviranje i sazimanje datoteka. tar se koristi za stvaranje arhiva -- kao PKZIP ili Winzip, ali bez kompresije. Za novu arhivu: $ tar -cvf <ime_arhive.tar> <datoteka> [datoteka...] Za dearhiviranje datoteka: $ tar -xpvf <ime_arhive.tar> [datoteka...] Za ispis sadrzaja arhive: $ tar -tf <ime_arhive.tar> | less Datoteke mozete sazeti pomocu compressa, koji je zastario i ne bi ga vise trebalo koristiti, ili gzipa: $ compress <datoteka> $ gzip <datoteka> sto ce proizvesti sazetu datoteku s ekstenzijom .Z (compress) ili .gz (gzip). Ovi programi mogu sazeti samo jednu datoteku odjednom. Za dekompresiju: $ compress -d <datoteka.Z> $ gzip -d <datoteka.gz> RMP. Tu su i unarj, zip i unzip (PK*ZIP kompatibilni) alati. Datoteke s ekstenzijom .tar.gz ili .tgz (arhivirane tarom, a onda sazete gzipom) ceste su u Unix svijetu kao .ZIP datoteke pod DOS-om. Ovako cete ispisati sadrzaj .tar.gz arhive: $ tar -ztf <datoteka.tar.gz> | less 1122..22.. IInnssttaalliirraannjjee aapplliikkaacciijjaa Prvo, instaliranje paketa rootov je posao. Vecina Linux aplikacija se distribuira u .tar.gz arhivama, koje obicno sadrze odgovarajuce nazvan direktorij s datotekama i/ili poddirektorijima. Takve pakete je najbolje instalirati u /usr/local naredbom # tar -zxf <arhiva.tar.gz> te zatim procitati datoteku README ili INSTALL. U vecini slucajeva, aplikacija se distribuira kao izvorni kod koji morate kompajlirati; cesto ce biti dovoljno napisati samo make pa make install. Ako arhiva sadrzi configure skriptu, najprije pokrenite nju. Ocito, potreban vam je gcc odnosno g++ kompajler. Druge arhive treba otpakirati iz /; tako je s Slackwareovim .tgz arhivama. A druge pak arhive sadrze datoteke, ali ne i poddirektorij -- pazite da ne pomijesate stvari! Prije instalacije uvijek pogledajte sadrzaj arhive. Debian i Red Hat imaju posebne formate arhiva; .deb i .rpm. Drugi postaje sve popularniji; za instalaciju rpm paketa napisite # rpm -i paket.rpm 1122..33.. TTrriikkoovvii bbeezz kkoojjiihh ssee nnee mmoozzee PPoogglleedd uunnaattrraagg:: pritisak na <SHIFT>-<PgUp> (siva tipka) ce pokazati zadnjih nekoliko stranica zaslona, ovisno o kolicini video memorije. RReesseett zzaasslloonnaa:: ako more ili cat prikaze binarnu datoteku, zaslon ce zavrsiti pun smeca. Da to sredite, naslijepo napisite reset ili ovaj niz znakova: echo CTRL-V ESC c ENTER. LLiijjeepplljjeennjjee tteekkssttaa:: za konzolu pogledajte dolje; u X-u, kliknite i vucite odabravsi tako tekst u xterm prozoru, a zatim pritisnite srednju tipku (ili obje zajedno ako vas mis ima dvije tipke) za lijepljenje. Tu je i xclipboard (ali samo za tekst); ne dajte se zbuniti njegovom sporoscu. KKoorriisstteennjjee mmiissaa:: ako ste instalirali gpm, program za misa na konzoli, mozete kliknuti i vuci kako bi odabrali tekst i desnom tipkom odabrani tekst zalijepiti. Radi i medu razlicitim VC-ima. PPoorruukkee kkeerrnneellaa:: kao root pogledajte /var/adm/messages ili /var/log/messages da vidite sto vam kernel ima reci, kao i poruke pri dizanju sustava. Dobro dode i naredba dmesg. 1122..44.. GGddjjee nnaaccii aapplliikkaacciijjee Ako se pitate mozete li zamijeniti svoju staru i provjerenu DOS/Win aplikaciju Linux aplikacijom, predlazem vam da pregledate glavne arhive Linux softvera: <ftp://sunsite.unc.edu/pub/Linux>, <ftp://tsx-11.mit.edu/pub/linux> i <ftp://ftp.funet.fi/pub/Linux>. Druga dobra mjesta za pocinjanje su ``_L_i_n_u_x _A_p_p_l_i_c_a_t_i_o_n_s _a_n_d _U_t_i_l_i_t_i_e_s _P_a_g_e'', <http://www.xnet.com/~blatura/linapps.shtml>, i ``sluzbene'' Linux stranice, <http://www.linux.org>. 1122..55.. NNeekkoolliikkoo ssttvvaarrii kkoojjee nniissttee mmooggllii Linux moze strasno puno stvari koje su pod DOS/Windowsima zapetljane, slozene ili nemoguce. Evo kratkog popisa koji ce vam dovesti slinu u usta: · at omogucava pokretanje programa u odredeno vrijeme. · awk je jednostavan, ali mocan jezik za rad s datotekama s podacima (i ne samo to). Na primjer, ako je podaci.pod datoteka od vise stupaca, $ awk '$2 ~ "abc" {print $1, "\t", $4}' podaci.pod ispisuje 1. i 4. polje svakog reda u podaci.pod cije drugo polje sadrzi ``abc''. · cron je koristan za redovito obavljanje zadataka, u odredeni dan i vrijeme. man 5 crontab. · file <imedatoteke> ce vam reci sto je <imedatoteke> (ASCII tekst, izvrsna, arhiva, itd.). · find (pogledajte dio ``Direktoriji: prevodenje naredbi'') je jedna od najmocnijih i najkorisnijih naredbi. Koristi se za nalazenje datoteka koje imaju neke osobine i obavljanje poslova na njima. Opcenito se koristi ovako: $ find <direktorij> <izraz> gdje <izraz> opisuje kriterije za trazenje i radnje. Primjeri: $ find . -type l -exec ls -l {} \; nalazi sve datoteke koje su simbolicke veze i prikazuje na sto one pokazuju. $ find / -name "*.staro" -ok rm {} \; nalazi sve datoteke koje odgovaraju uzorku i brise ih, pitajuci vas za dopustenje. $ find . -perm +111 nalazi sve datoteke cije su dozvole 111 (izvrsne). $ find . -user root nalazi sve datoteke koje pripadaju rootu. Ovdje ima jos mnogo mogucnosti -- RMP. · grep nalazi uzorke teksta u datotekama. Na primjer, $ grep -l "geologija" *.tex ce ispisati datoteke *.tex koje sadrze rijec "geologija". Varijanta zgrep radi na gzip-anim datotekama. RMP. · Regularni izrazi su slozen, ali prokleto mocan nacin za operacije trazenja teksta. Na primjer, ^a[^a-m]X{4,}txt$ odgovara redu koji pocinje s a, kojeg slijedi bilo koji znak izmedu a i m, kojeg slijedi 4 ili vise X, a zavrsava na ``txt''. Koristite ih u naprednim editorima, lessu i mnogim drugim aplikacijama. man grep ce vam dati uvod. · script <imetranskripta> sadrzaj ekrana ispisuje u imetranskripta dok ne zadate naredbu exit. Korisno za otklanjanje gresaka. · sudo korisnicima omogucava izvodenje nekih rootovih poslova (dakle, formatiranje i montiranje disketa; RMP). · uname -a daje informacije o vasem sustavu. · zcat i zless su korisni za pregledavanje i piping gzip-anih datoteka bez njihove dekompresije. Na primjer: $ zless tekst.gz $ zcat tekst.gz | lpr · Ove naredbe cesto zgodno posluze: bc, cal, chsh, cmp, cut, fmt, head, hexdump, nl, passwd, printf, sort, split, strings, tac, tail, tee, touch, uniq, w, wall, wc, whereis, write, xargs, znew. RMP. 1122..66.. PPrraakkttiicciirraannjjee UUNNIIXX--aa ppoodd DDOOSS//WWiinnddoowwssiimmaa Vjerovali ili ne, postoje dobri alati koji pruzaju UNIX-oliko okruzje pod DOS/Windowsima! Jedan od njih je DJGPP paket, <http://www.delorie.com/djgpp>, za DOS; Cygnus, <http://www.cygnus.com>, je slozeniji port za Win32. Oba sadrze iste GNU razvojne i ostale alate kao Linux; ipak, necete dobiti istu stabilnost i performanse. Ako zelite probati okus Linuxa, probajte DJGPP. Skinite i instalirajte sljedece datoteke (u vrijeme pisanja najnovija verzija je 2.02): djdev202.zip, bnu281b.zip, bsh1147b.zip, fil316b.zip, find41b.zip, grep22b.zip, gwk303b.zip, lss332b.zip, shl112b.zip. Instalacijske upute su ukljucene, a pomoc mozete dobiti u comp.os.msdos.djgpp. Konkretno, koristiti bash pod DOSWinom je pravo osvjezenje. Kako biste ga pravilno konfigurirali, editirajte danu datoteku BOOT.BAT tako da odgovara vasoj instalaciji; zatim ove datoteke smjestite u svoj home direktorij (na Windows particiji) umjesto vec danih: # ovo je _bashrc LS_OPTIONS="-F -s --color=yes" alias cp='cp -i' alias d='ls -l' alias l=less alias ls="ls $LS_OPTIONS" alias mv='mv -i' alias rm='rm -i' alias u='cd ..' # ovo je _bprof if [ -f ~/_bashrc ]; then . ~/_bashrc fi PS1='\w\$ ' PS2='> ' CDPATH="$CDPATH:~" # stvari za less(1) LESS="-M-Q" # duzi prompt, tiho LESSEDIT="%E ?lt+%lt. %f" # sredujemo red na vrhu VISUAL="jed" # editor LESSCHARSET=latin1 # prikazuje naglasene znakove export PS1 PS2 CDPATH LS_OPTIONS LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET 1122..77.. UUoobbiiccaajjeennee eekksstteennzziijjee ii ppoovveezzaannii pprrooggrraammii Susrest cete se s puno ekstenzija. Iskljucujuci egzoticnije (fontovi, itd.), evo tko-je-tko popisa: · 1 ... 8: man stranice. Citajte ih pomocu groff -Tascii -man <datoteka.1>. · arj: arhiva stvorena pomocu ARJ. · dvi: izlazna datoteka TeX-a (pogledajte dalje). xdvi za prikaz, dvips za pretvaranje u PostScript .ps datoteku. · gz: arhiva stvorena gzipom. · info: info datoteka (alternativa man stranicama). Nabavite info. · lsm: Linux Software Map datoteka. To je obicna ASCII datoteka koja opisuje paket. · ps: PostScript datoteka. Za prikaz ili ispis nabavite gs i, ako zelite, ghostview ili gv. · rpm: Red Hat paket. Mozete ga instalirati na bilo kojem sustavu koristeci rpm. · taz, tar.Z: arhiva stvorena tarom i sazeta compressom. · tgz, tar.gz: arhiva stvorena tarom i sazeta gzipom. · tex: tekstualna datoteka za TeX, mocan sustav izdavastva. Nabavite paket tex ukljucen u mnogim distribucijama. · texi: texinfo datoteka, iz koje moze nastati i TeX i info datoteka (pogledajte info). Nabavite texinfo. · xbm, xpm, xwd: graficka datoteka. · Z: arhiva stvorena compressom. 1122..88.. PPrreettvvaarraannjjee ddaattootteekkaa Ako zelite razmjenjivati tekstualne datoteke izmedu DOS/Windowsa i Linuxa, budite svjesni problema s krajem reda. Pod DOS-om svaki red zavrsava s CR/LF (to jest, ASCII 13 i ASCII 10), a pod Linuxom s LF. Ako editirate DOS tekstualnu datoteku pod Linuxom, svaki ce red vjerojatno zavrsavati cudnim "M" znakom; Linux tekstualna datoteka pod DOS-om ce izgledati kao kilometarski red bez odlomaka. Nekoliko ce alata, dos2unix i unix2dos, pretvoriti datoteke. Ako vase tekstualne datoteke sadrze naglasene znakove, napravite ih u Windowsima (pomocu Notepada), a ne obicnom DOS-u; inace ce svi naglaseni znakovi biti potpuno zeznuti. Pretvaranje Word ili Word Perfect datoteka u obicni tekst je zapetljano, ali moguce. Trebat ce vam jedan od alata s CTAN posluzitelja; jedan od njih je ftp.tex.ac.uk. Uzmite program word2x iz direktorija /pub/tex/tools/, ili pogledajte programe u direktoriju /pub/tex/support/. word2x pretvara Word 6 datoteke; za Word 97 datoteke ce vam trebati mswordview, <http://www.csn.ul.ie/~caolan/docs/MSWordView.html>, koji ih pretvara u HTML. 1122..99.. BBeessppllaattnnii uurreeddsskkii ppaakkeettii Ako pretvaranje datoteka nije dovoljno, mozete isprobati jedan od (besplatnih!) paketa slicnih Microsoft Officeu. Paket StarOffice je besplatan za osobnu uporabu. Velik je, pomalo spor, ali ipak vrlo dobar: nudi mnogo mogucnosti koje Microsoft Office nema. Takoder moze citati Word i Excel datoteke, iako pretvaranje nije uvijek savrseno. WWW stranice: <http://www.stardivision.com>. Jos jedan dobar paket je Corel WordPerfect, cije je besplatno izdanje dostupno na WWW-u. Trebam li jos sto reci? Skinite ga: <http://www.corel.com>. 1133.. KKrraajj,, zzaa ssaaddaa Cestitam! Naceli ste malo Unixa i spremni ste poceti raditi. Nemojte zaboraviti da je vase znanje sustava jos uvijek ograniceno i da je potrebno jos prakse s Linuxom za udoban rad. Ali ako je sve sto ste htjeli dobiti hrpu aplikaciju i poceti raditi s njima, ovo je dosta. Siguran sam da cete uzivati u Linuxu i nastaviti uciti vise o njemu -- svi to rade. Kladio bih se da se nikad necete vratiti DOSWinu! Nadam se da sam bio razumljiv i dobro usluzio svoja 3 ili 4 citatelja. 1133..11.. AAuuttoorrsskkaa pprraavvaa Ako nije drukcije izrazeno, autorska prava na Linux KAKO dokumente posjeduju njihovi autori. KAKO dokumente moze se reproducirati i distribuirati u cjelosti ili djelomicno, na mediju fizickom ili elektronickom, dok je ova obavijest na svim primjercima. Komercijalna distribucija dopustena je i ohrabrena; medutim, autor bi o takvom distribuiranju zelio biti obavijesten. Svi prijevodi, izvedeni ili sazeti radovi koji ukljucuju Linux KAKO dokumente moraju biti pod ovom licencom. Dakle, ne smijete napraviti rad izveden iz KAKO-a i nametati dodatna ogranicenja na njegovu distribuciju. Iznimke ovim pravilima moguce su pod odredenim uvjetima; kontaktirajte Linux KAKO koordinatora na dolje danoj adresi. Ukratko, zelimo ohrabriti sirenje ovih informacija kroz sto je vise moguce kanala. Medutim, zelimo zadrzati autorska prava na KAKO dokumente i htjeli bi biti obavijesteni o bilo kakvim namjerama redistribuiranja KAKO-a. Ako imate pitanja, kontaktirajte Tima Bynuma, Linux KAKO koordinatora, na linux-howto@sunsite.unc.edu. 1133..22.. AAuuttoorr _S _D_O_S_/_W_i_n_d_o_w_s_a _n_a _L_i_n_u_x je napisao Guido Gonzato, OBRISI_MEguido@ibogeo.df.unibo.it. (Obrisite ``OBRISI_ME''.) Puno hvala Mattu Welshu, autoru _L_i_n_u_x _I_n_s_t_a_l_l_a_t_i_o_n _a_n_d _G_e_t_t_i_n_g _S_t_a_r_t_e_d, Ianu Jacksonu, autoru _L_i_n_u_x _c_e_s_t_o _p_o_s_t_a_v_l_j_a_n_a _p_i_t_a_n_j_a _u_z _o_d_g_o_v_o_r_e, Giuseppeu Zanettiju, autoru _L_i_n_u_x, svima koji su mi poslali prijedloge, te posebno Linusu Torvaldsu i GNU-u koji su nam dali Linux. Ovaj dokument je ``kakav je''. Ulozeno puno truda da bude sto tocniji, ali ove informacije koristite na vlastitu odgovornost. Ni u kojem slucaju autor nije odgovoran za bilo kakve stete proizasle iz koristenja ovog djela. Primjedbe su dobrodosle. Slobodno mi se obratite zahtjevima, prijedlozima, flejmovima, itd. Uzivajte u Linuxu i zivotu, Guido =8-) 1144.. HHrrvvaattsskkii pprriijjeevvoodd Najnovija verzija ovog prijevoda moze se naci na <http://dokumentacija.linux.hr/DOS-Win-na-Linux-KAKO.html>. Odrzava ga Matej Vela, mvela@public.srce.hr. Svi su prilozi, primjedbe i prijedlozi dobrodosli.