S DOS/Windowsa na Linux KAKO <author>Guido Gonzato, <htmlurl url="mailto:OBRIŠI_MEguido@ibogeo.df.unibo.it" name="OBRIŠI_MEguido@ibogeo.df.unibo.it"> (Obrišite ``OBRIŠI_ME''.) <date>verzija 1.3.2, 22. veljače 1999. <abstract> Ovo je KAKO za sve (uskoro bivše?) korisnike DOS-a i Windowsa koji su odlučili prijeći na Linux, besplatni klon Unixa. Pokušava pomoći čitatelju u primjeni njegovog znanja DOS-a i Windowsa u Linux okružju, te razmjeni datoteka i resursa među tim OS-evima. <toc> <sect>Uvod <p> <sect1>Je li Linux za vas? <p> Želite prijeći iz DOS svijeta (ta definicija uključuje Windowse) na Linux? Dobra ideja: Linux je tehnički superioran DOS-u, Windowsima 9x, čak i Windowsima NT. Ali pazite: možda vama neće biti koristan. Ovo su glavne razlike između DOS/Windowsa i Linuxa: <itemize> <item> Na Windowsima radi Microsoft Office i puno igara; smatra se da ga je lako instalirati i konfigurirati; poznat je po nestabilnosti; jadnih performansi; rušenja su česta. <item> Na Linuxu radi StarOffice, hrpa tehničkog softvera i manje igara; može biti teško instalirati ga i konfigurirati; stabilan je kao stijena; besprijekornih performansi; rušenja su izuzetno rijetka. </itemize> Na vama je da odlučite što vam treba. Nadalje, Linux vam daje moć, ali treba vremena dok naučite kako je iskoristiti. Dakle, ako trebate većinom komercijalni softver, ili vam se ne sviđa učenje novih naredbi i koncepata, bolje tražite drugdje. Budite svjesni da mnogi početnici odustaju zbog početnih teškoća. Radi se na pojednostavljivanju Linuxa, ali <bf/ne očekujte djelotvornost bez čitanja puno dokumentacije i barem nekoliko mjeseci korištenja/. Linux rezultate ne daje odmah. Unatoč ovim upozorenjima, 100% sam siguran da, ako ste prava vrsta korisnika, Linux će postati vaša Nirvana. Inače, Linux i DOS/Windows sretno mogu živjeti zajedno na istom računalu. Što vam je potrebno za ovaj KAKO: pretpostavit ću da: <itemize> <item> znate osnovne naredbe i ideje DOS-a; <item> Linux je, možda s X Window Systemom (ili kraće X11), pravilno instaliran na vašem PC-u; <item> vaša ljuska (pandan <tt/COMMAND.COM/-u) je <tt/bash/. </itemize> Osim ako je drukčije rečeno, sve informacije u ovom dokumentu odnose se na loši stari DOS. O Windowsima ima nešto tu i tamo jer su oni i Linux potpuno različiti, za razliku od DOS-a, jadne imitacije Unixa. Također, shvatite da ovo nije ni potpun uvod ni vodič u konfiguriranju! Najnovija verzija ovog dokumenta je dostupna u nekoliko formata na <url url="ftp://sunsite.unc.edu/pub/Linux/docs/howto">. <sect1>Da. Hoću još. <p> Linux i programi koji vam trebaju instalirani su na vašem PC-u. Napravili ste si account -- korisnički račun (ako niste, <bf/odmah/ pokrenite <tt/adduser vašeime/) i Linux radi. Upravo ste napisali svoje ime i šifru, i gledate na zaslon misleći ``A što sad?''. Ne očajavajte. 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: <itemize> <item> pokretanje programa i stvaranje, kopiranje, pregledavanje, brisanje, ispisivanje, preimenovanje datoteka; <item> <tt/CD/, <tt/MD/, <tt/RD/, i <tt/DIR/ u direktorijima; <item> formatiranje disketa i kopiranje datoteka s/na njih; <item> prilagođavanje sustava; <item> surfanje Internetom; <item> pisanje <tt/.BAT/ datoteka i programa u vašem omiljenom jeziku; <item> preostalih 1%. </itemize> Ovi se zadaci pod Linuxom mogu izvesti slično kao pod DOS-om. Pod DOS-om, obični korisnik od svih 100 koristi samo neke naredbe: isto donekle vrijedi za Linux. <sect2>Uvodni koncepti <p> Najbolji način za učenje je skakanje ravno u vodu. Svakako eksperimentirajte i igrajte se s Linuxom: osim ako se logirate kao ``root'', nema mu se što dogoditi. Nekoliko napomena: <itemize> <item> Najprije, kako ugasiti Linux. Ako ste u tekstualnom modu, pritisnite <CTRL>-<ALT>-<DEL>, pričekajte da se sustav digne i ugasite PC. Ako radite pod X-om, prvo pritisnite <CTRL>-<ALT>-<BACKSPACE>, a zatim <CTRL>-<ALT>-<DEL>. <bf/Nikad/ nemojte izravno gasiti ili resetirati PC: tako možete oštetiti datotečni sustav. <item> Za razliku od DOS-a ili Windowsa, u Linux su ugrađeni sigurnosni mehanizmi. Datoteke i direktoriji imaju dozvole; zato obični korisnik nekima ne može pristupiti (pogledajte poglavlje <ref id="Dozvole" name="Dozvole i vlasništvo">). DOS i Windows vam dopuštaju da izbrišete cijeli disk. <item> Posebni korisnik <bf/root/, administrator sustava, ima potpunu vlast nad životom i smrću računala. Ako radite na svom PC-u, možete biti i root. No to je <bf/opasno/: svaka greška može ozbiljno oštetiti ili uništiti sustav kao i u DOS/Windowsima. Ne budite root kad to nije potrebno. <item> Linux je toliko složen jer je vrlo prilagodljiv: gotovo svaka mogućnost i program mogu se prilagoditi preko jedne ili više konfiguracijskih datoteka. Složenost je cijena koju plaćate za moć. <item> Redirekcija i piping, sporedne mogućnosti u DOS-u, vrlo su važne i puno moćnije pod Linuxom. Jednostavne naredbe mogu se povezati za složene poslove. Toplo preporučam da ih naučite koristiti. </itemize> <sect2>Upute <p> Pod Linuxom upute možete dobiti na mnogo načina. Najvažniji su: <itemize> <item> <bf/Čitanje dokumentacije/ -- mislim ozbiljno. Iako KAKO koji čitate može poslužiti kao uvod u Linux, ima nekoliko knjiga koje biste stvarno trebali pročitati: <em/Linux Installation and Getting Started/ Matta Welsha, <url url="http://sunsite.unc.edu/mdw/LDP/gs/gs.html">, <em/Linux User Guide/ Larrya Greenfielda, <url url="ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/users-guide">, i <em/Linux FAQ/, <url url="http://dokumentacija.linux.hr/Linux-FAQ.html">. Na vama je da pročitate barem jednu. <item> Dokumentacija instaliranih paketa često je u poddirektorijima <file>/usr/doc</file>. <item> Za upute o ``internim naredbama'' ljuske napišite <tt/help/, ili, još bolje, <tt/man bash/ ili <tt/info bash/. <item> Za upute o nekoj naredbi napišite <tt/man naredba/ što će prikazati man (<bf/man/ual -- priručnik) stranicu za <tt/naredba/. <tt/info naredba/ prikazuje, ako postoji, info stranicu za <tt/naredba/. <tt/info/ je hipertekstualni sustav dokumentacije, ne baš intuitivan. Na kraju, probajte <tt/apropos naredba/ ili <tt/whatis naredba/. Kod svih njih rad možete prekinuti pomoću <q>. <item> Konačno, na Internetu: pravo mjesto za dobivanje pomoći je Usenet, na primjer <htmlurl url="news:comp.os.linux.setup" name="comp.os.linux.setup">. Molim vas, nemojte od mene tražiti pomoć, jer sam prilično preopterećen. </itemize> <sect1>Konvencije <p> U ovom dokumentu, primjeri često slijede ovaj format: <tt/<...>/ je nužan argument, a <tt/[...]/ opcionalan. Na primjer: <verb> $ tar -tf <datoteka.tar> [> redir_datoteka ] </verb> <file/datoteka.tar/ se mora navesti, ali redirekcija u <file/redir_datoteka/ nije obavezna. RMP (<em/Read Man Pages/) vas upućuje na daljnje čitanje man stranica. Ne mogu naglasiti koliko je važno čitanje dokumentacije. ``DOSWin'' označava ``DOS/Windows''. Kada je prompt u primjeru naredbe <tt/#/, naredbu može izvršiti samo root. <sect>Za nestrpljive <p> Hoćete se istaći? Pogledajte malo ovo: <verb> DOS Linux ------------------------ ------------------------- ATTRIB (+-)atr datoteka chmod <mod> datoteka potpuno drukčije BACKUP tar -Mcvf uređaj dir/ isto CD dir\ cd dir/ skoro ista sintaksa COPY datoteka1 datoteka2 cp datoteka1 datoteka2 isto DEL datoteka rm datoteka pažljivo: nema undelete DELTREE dir rm -R dir isto DIR ls ne baš jednaka sintaksa DIR datoteka /S find . -name datoteka potpuno drukčije EDIT datoteka vi datoteka mislim da vam se neće svidjeti jstar datoteka slično DOS-ovom EDIT-u EDLIN datoteka ed datoteka zaboravite na to FORMAT fdformat, mount, umount prilično različita 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 više datoteka RESTORE tar -Mxpvf uređaj drukčija sintaksa TYPE datoteka less datoteka puno bolje WIN startx totalno drukčije! </verb> Za nešto više od popisa naredbi pročitajte sljedeća poglavlja. <sect>Upoznajte bash <p> Dobre vijesti: uz Linux puno manje tipkate na promptu, jer <tt/bash/ ljuska tipka za vas kad god je moguće, i nudi zgodne mogućnosti editiranja linije. Za početak, tipka strelice gore vraća prošle naredbe; ali tu je još. Pritisak na <TAB> dopunjava imena datoteka i direktorija, pa je tipkanje <verb> $ ls /uTABloTABbTAB </verb> isto kao tipkanje <verb> $ ls /usr/local/bin </verb> Da je bilo dvosmislenosti, kao u <verb> $ ls /uTABloTABiTAB </verb> <tt/bash/ bi stao jer ne zna mislite li na <file>/usr/local/info</file> ili <file>/usr/local/include</file>. Dodajte još znakova i opet pritisnite <TAB>. Druge korisne tipke su <ESC-BACKSPACE>, što briše riječ na lijevo, i <ESC-D>, što briše riječ na desno; <ESC-F> miče kursor jednu riječ desno, <ESC-B> lijevo; <CTRL-A> miče na početak reda, <CTRL-E> na kraj. Tipka <ALT> radi isto što i <ESC>. Dosta za sada. Kada se jednom naviknete na te kombinacije, DOS prompt će vam biti vrlo neudoban... <sect>Datoteke i programi <p> <sect1>Datoteke: osnovne stvari <p> Struktura direktorija i datoteka u Linuxu vrlo je slična onoj u DOSWinu. Datoteke imaju imena po posebnim pravilima, nalaze se u direktorijima, neke su izvršne, a većina takvih ima programske prekidače (<em/switch/). Isto tako, možete koristiti metaznakove, redirekciju i piping. Samo je nekoliko manjih razlika: <itemize> <item> Pod DOS-om, imena imaju tzv. 8.3 oblik; na primjer <file/NIJEDOVO.TXT/. Linux može i bolje. Ako je Linux instaliran na datotečnom sustavu kao što je ext2 ili umsdos, možete koristiti duža imena (do 255 znakova), s više od jedne točke: <file/Ovo_je.VRLO_dugo.ime_datoteke/. Primjetite da sam koristio i velika i mala slova: ustvari... <item> Velika i mala slova u imenima datoteka i naredbi različita su. Prema tome, <file/IME_DATOTEKE.tar.gz/ i <file/ime_datoteke.tar.gz/ su dvije različite datoteke. <tt/ls/ je naredba, <tt/LS/ je greška. <item> Korisnici Windowsa, pazite se kod korištenja dugih imena pod Linuxom. Ako u imenu ima razmaka (nije preporučljivo, ali je moguće), morate ga okružiti navodnicima. Na primjer: <verb> $ # ova naredba stvorit će direktorij "Moje stare datoteke" $ mkdir "Moje stare datoteke" $ ls Moje stare datoteke bin tmp </verb> Neke znakove ne bi trebalo koristiti: među njima su <tt/! * $ & #/. <item> Nema određenih ekstenzija kao što je <tt/.COM/ i <tt/.EXE/ za programe, ili <tt/.BAT/ za batch datoteke. Kada zadate naredbu <tt/ls -F/, izvršne datoteke označava zvjezdica (<tt/*/) na kraju imena. Na primjer: <verb> $ ls -F Ja_sam_direktorij/ cindy.jpg cjpg* pismo_Jurici moja_1._skripta* staro~ </verb> Datoteke <file/cjpg*/ i <file/moja_1._skripta/ su izvršne, odnosno programi. Pod DOS-om, backup datoteke završavaju na <tt/.BAK/, a pod Linuxom s tildom, <tt/~/. Zatim, datoteka čije ime počinje točkom je skrivena. Na primjer, datoteku <file/.Ja.sam.skrivena.datoteka/ naredba <tt/ls/ neće pokazati. <item> U DOS-u programski prekidači izgledaju kao <tt>/prekidač</tt>, a u Linuxu <tt/-prekidač/ ili <tt/--prekidač/. Na primjer: <tt>DIR /S</tt> postaje <tt/ls -R/. Mnogi DOS programi, kao što je <tt/PKZIP/ ili <tt/ARJ/, koriste Unix-olike prekidače. </itemize> Sad možete preskočiti do dijela <ref id="Datoteke" name="Datoteke: prevođenje naredbi">, ali, da sam na vašem mjestu, ja bih nastavio. <sect1>Simboličke veze <p> Pod Unixom postoji vrsta datoteke kakve nema pod DOS-om: simbolička veza. To je nešto poput pokazivača na datoteku ili direktorij, a može se koristiti umjesto datoteke ili direktorija na koji pokazuje; slična je prečicama (<em/shortcuts/) iz Windowsa. Primjeri simboličkih veza su <file>/usr/X11</file>, koja pokazuje na <file>/usr/X11R6</file>; <file>/dev/modem</file> koji pokazuje na <file>/dev/ttyS0</file> ili <file>/dev/ttyS1</file>. Simboličku vezu ćete napraviti ovako: <verb> $ ln -s <datoteka_ili_direktorij> <ime_veze> </verb> Na primjer: <verb> $ ln -s /usr/doc/g77/DOC g77upute.txt </verb> Sada možete pozivati <file/g77upute.txt/ umjesto <file>/usr/doc/g77/DOC</file>. Veze ovako izgledaju u ispisu direktorija: <verb> $ ls -F g77upute.txt@ $ ls -l (nekoliko stvari...) g77upute.txt -> /usr/doc/g77/DOC </verb> <sect>Dozvole i vlasništvo<label id="Dozvole"> <p> DOS datoteke i direktoriji imaju ove atribute: A (arhiviran), H (skriven), R (samo za čitanje) i S (sustav). Samo H i R imaju smisla pod Linuxom: skrivene datoteke počinju točkom, a za R atribut čitajte dalje. Pod Unixom datoteka ima <bf/dozvole/ i <bf/vlasnika/, koji pripada <bf/grupi/. Pogledajte ovo: <verb> $ ls -l /bin/ls -rwxr-xr-x 1 root bin 27281 Aug 15 1995 /bin/ls* </verb> Prvo polje sadrži dozvole za datoteku <file>/bin/ls</file>, koja pripada rootu, grupi bin. Bez obzira na to, zapamtite što <tt/-rwxr-xr-x/ znači, s lijeva na desno: <tt/-/ je tip datoteke (<tt/-/: obična, <tt/d/: direktorij, <tt/l/: veza, itd.); <tt/rwx/ su dozvole za vlasnika datoteke (čitanje, pisanje, izvršavanje); <tt/r-x/ su dozvole za grupu vlasnika datoteke (čitanje, izvršavanje) (neću objašnjavati grupe, preživjet ćete bez toga dok ste početnik ;-); <tt/r-x/ su dozvole za sve ostale korisnike (čitanje, izvršavanje). I direktorij <file>/bin</file> ima dozvole: pogledajte dio <ref id="DirDozvole" name="Dozvole direktorija"> za detalje. Zato ne možete obrisati datoteku <file>/bin/ls</file> osim ako ste root: za to nemate dozvole. Naredba za mijenjanje dozvola datoteka je: <verb> $ chmod <tkoXdozvola> <datoteka> </verb> gdje je <tt/tko/ <tt/u/ (korisnik, tj. vlasnik), <tt/g/ (grupa), <tt/o/ (ostali); X je <tt/+/ ili <tt/-/; dozvola je <tt/r/ (čitanje), <tt/w/ (pisanje), <tt/x/ (izvršavanje). Evo čestih primjera korištenja chmoda: <verb> $ chmod +x datoteka </verb> To postavlja dozvolu za izvršavanje datoteke. <verb> $ chmod go-rw datoteka </verb> To oduzima dozvole za čitanje i pisanje svima osim vlasniku. <verb> $ chmod ugo+rwx datoteka </verb> To svima daje dozvole za čitanje, pisanje i izvršavanje. <verb> $ chmod +s datoteka </verb> Time dobivamo takozvanu <em/setuid/ ili <bf/suid/ datoteku -- svatko ju može izvršiti s privilegijama njenog vlasnika. Najčešće su root suid datoteke; to obično važne datoteke sustava, kao što je X server. Kraći način za pisanje dozvola je brojkama: <tt/rwxr-xr-x/ možemo izraziti kao 755 (svako slovo odgovara bitu: <tt/---/ je 0, <tt/--x/ je 1, <tt/-w-/ je 2, <tt/-wx/ je 3). Izgleda teško, ali shvatit ćete uz malo prakse. root kao nadkorisnik može mijenjati dozvole svake datoteke. RMP. <sect1>Datoteke: prevođenje naredbi<label id="Datoteke"> <p> Na lijevoj strani su DOS naredbe; na desnoj Linux pandani. <tabular ca="ll"> <tt/ATTRIB/|<tt/chmod/@ <tt/COPY/|<tt/cp/@ <tt/DEL/|<tt/rm/@ <tt/MOVE/|<tt/mv/@ <tt/REN/|<tt/mv/@ <tt/TYPE/|<tt/more/, <tt/less/, <tt/cat/@ <tt/nul/|<file>/dev/null</file>@ <tt/prn/, <tt/lpt1/|<file>/dev/lp0</file> ili <file>/dev/lp1</file>; lpr </tabular> Operatori za redirekciju i piping: <tt/< > >> |/ Metaznakovi: <tt/* ?/ <sect2>Primjeri <p> <verb> 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 </verb> Napomene: <itemize> <item> <tt/*/ je pametniji pod Linuxom: <tt/*/ odgovara svim datotekama osim skrivenima; <tt/.*/ odgovara svim skrivenim datotekama (ali i trenutnom direktoriju <file/./ i roditeljskom direktoriju <file/../: pazite na to!); <tt/*.*/ odgovara samo datotekama s <tt/./ u sredini ili na kraju; <tt/p*r/ odgovara i ``<tt/petar/'' i ``<tt/papir/''; <tt/*c*/ odgovara i ``<tt/crv/'' i ``<tt/svizac/''. <item> Kada koristite <tt/more/, pritisnite razmak za slijedeću stranicu, <q> za izlaz. <tt/less/ je intuitivniji i dopušta korištenje strelica. <item> <tt/UNDELETE/ ne postoji, pa pažljivo razmislite prije brisanja datoteka. <item> Uz DOS-ove <tt/< > >>/, Linux ima <tt/2>/ za preusmjeravanje poruka o greškama (<em/stderr/); <tt/2>&1/ preusmjerava stderr na stdout, a <tt/1>&2/ stdout na stderr. <item> Linux ima još jedan metaznak: <tt/[]/. Korištenje: <tt/[abc]*/ odgovara datotekama koje počinju s <tt/a/, <tt/b/ i <tt/c/; <tt/*[I-N1-3]/ odgovara datotekama koje završavaju s <tt/I/, <tt/J/, <tt/K/, <tt/L/, <tt/M/, <tt/N/, <tt/1/, <tt/2/ i <tt/3/. <item> <tt/lpr <datoteka>/ ispisuje datoteku u pozadini. Za provjeru stanja reda za ispis služi <tt/lpq/; za brisanje datoteke iz reda za ispis <tt/lprm/. <item> Ne postoji <tt/RENAME/ sličan DOS-ovom; to jest, <tt/mv *.xxx *.yyy/ neće raditi. <tt/REN/-olika naredba se može naći na <url url="ftp://sunsite.unc.edu/pub/Linux/utils/file">. <item> Ako želite upozorenje kad bi datoteka trebala biti prepisana, koristite <tt/cp -i/ i <tt/mv -i/. </itemize> <sect1>Pokretanje programa: višezadaćnost i sesije <p> Kako biste pokrenuli program, napišite njegovo ime kao i pod DOS-om. Ako je direktorij (poglavlje <ref id="Direktoriji" name="Korištenje direktorija">) u kojem je program smješten uključen u <tt/$PATH/ (poglavlje <ref id="Inicijalizacija" name="Inicijalizacijske datoteke sustava">), program će se pokrenuti. Iznimka: za razliku od DOS-a, pod Linuxom se program u trenutnom direktoriju neće pokrenuti osim ako je taj direktorij u <tt/$PATH/-u. Rješenje: ako je <tt/prog/ vaš program, napišite <tt>./prog</tt>. Ovako izgleda tipična naredba: <verb> $ naredba [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< ulaz] [> izlaz] </verb> gdje su <tt/-s1/, ..., <tt/-sn/ programski prekidači; <tt/par1/, ..., <tt/parn/ programski parametri. U jednom redu možete pokrenuti više programa: <verb> $ naredba1 ; naredba2 ; ... ; naredban </verb> To je sve o pokretanju programa, ali lako je nastaviti. Jedan od glavnih razloga za korištenje Linuxa je višezadaćnost. Više programa (od sada, procesa) radi u isto vrijeme. Možete ih pokretati u pozadini i nastaviti rad bez prekida. Linux vam dopušta i nekoliko sesija: kao da radite na više računala odjednom! <itemize> <item> Za prebacivanje između 1.-6. sesije na virtualnim konzolama, pritisnite <ALT>-<F1> ... <ALT>-<F6>. <item> Za pokretanje nove sesije u istoj VC bez napuštanja trenutne, napišite <tt/su lt;login>/. Na primjer: <tt/su - root/. Ovo je korisno kada obavljate zadatak koji može obaviti samo root. <item> Za kraj sesije napišite <tt/exit/. Upozorit će vas ako ima zaustavljenih poslova (čut ćete o tome kasnije). <item> Za pokretanje procesa u pozadini, dodajte ampersand (<tt/&/) na kraju naredbe: <verb> $ imeprograma [-prekidači] [parametri] [< ulaz] [> izlaz] & [1] 123 </verb> Ljuska procese označava brojem posla (<tt/[1]/; vidi dolje) i PID-om (<em/Process Identification/ -- identifikacijski broj procesa; u našem primjeru 123). <item> Za broj procesa napišite <tt/ps ax/. To će ispisati popis procesa koji trenutno rade. <item> Da biste ubili (terminirali) proces, napišite <tt/kill <PID>/. Možda ćete ga morati ubiti ako ne znate kako pravilno izaći... Ako niste root, ne možete ubijati tuđe procese. Ponekad će proces ubiti jedino <tt>kill -SIGKILL <PID></tt>. I ljuska vam omogućava zaustavljanje ili privremeno suspendiranje procesa, slanje procesa u pozadinu i u prednji plan. U tom kontekstu procese nazivamo poslovima. <item> Za broj poslova napišite <tt/jobs/. Tu su označeni brojem posla, a ne PID-om. <item> Za zaustavljanje procesa u prednjem planu pritisnite <CTRL>-<C> (neće uvijek raditi). <item> Za suspendiranje procesa u prednjem planu pritisnite <CTRL>-<Z> (isto). <item> Za slanje suspendiranog procesa u pozadinu napišite <tt/bg <%posao>/ (postaje <tt/posao/). <item> Za slanje posla u prednji plan, napišite <tt/fg <%posao>/. Za slanje posljednjeg procesa poslatog u pozadinu u prednji plan jednostavno napišite <tt/fg/. <item> Za ubijanje posla napišite <tt/kill <%posao>/. <tt/<posao>/ može biti 1, 2, 3... </itemize> Korištenjem ovih naredbi možete formatirati disketu, arhivirati hrpu datoteka, kompajlirati program i otpakirati arhivu skoro istovremeno, i još uvijek imati prompt pred sobom. Probajte to na Windowsima, samo da vidite razliku u brzini (naravno, ako se ne sruše). <sect1>Pokretanje programa na udaljenim računalima <p> Kako biste pokrenuli program na udaljenom računalu čije je ime <tt/udaljeno.računalo.edu/, napišite: <verb> $ telnet udaljeno.računalo.edu </verb> Nakon što se ulogirate, pokrenite svoj omiljeni program. Naravno, na tom računalu morate imati korisnički račun. Ako imate X11, čak možete na udaljenom računalu pokrenuti X aplikaciju, prikazanu na vašem X prikazu. Neka je <tt/udaljeno.računalo.edu/ udaljeno X računalo i <tt/moja.linux.kanta/ vaš Linux sustav. Kako biste s <tt/moja.linux.kanta/ pokrenuli X program koji se nalazi na <tt/udaljeno.računalo.edu/, učinite slijedeće: <itemize> <item> Pokrenite X11 i <tt/xterm/ ili sličan emulator terminala, a zatim napišite: <verb> $ xhost +udaljeno.računalo.edu $ telnet udaljeno.računalo.edu </verb> <item> Nakon što se logirate, napišite: <verb> udaljeno:$ DISPLAY=moja.linux.kanta:0.0 udaljeno:$ imeprograma & </verb> (Umjesto <tt/DISPLAY.../ ćete možda morati napisati: <tt>setenv DISPLAY moja.linux.kanta:0.0</tt>. Ovisi o ljusci.) </itemize> Eto! Sada će se <tt/imeprograma/ pokrenuti na <tt/udaljeno.računalo.edu/ i prikazati na vašem stroju. No nemojte ovo pokušavati preko modema -- presporo je da bi se moglo koristiti. Štoviše, ovo je gruba i nesigurna metoda: pročitajte ``X na daljinu mini-KAKO'' na <url url="http://dokumentacija.linux.hr/X-na-daljinu.html">. <sect>Korištenje direktorija<label id="Direktoriji"> <p> <sect1>Direktoriji: osnovne stvari <p> Vidjeli smo razlike između datoteka pod DOSWinom i Linuxom. Što se tiče direktorija, pod DOSWinom je root direktorij <file/\/, a pod Linuxom <file>/</file>. Tako se pod DOSWinom ugniježđeni direktoriji razdvajaju znakom <tt/\/, a pod Linuxom <file>/</file>. Primjeri staza datoteka: <tabular ca="ll"> DOS|<file/C:\DOKUMENT\GEOLOGIJ\SRED_KRE.TEX/@ Linux|<file>/home/guido/dokumenti/geologija/srednja_kreda.tex</file> </tabular> Kao i obično, <file/../ je direktorij roditelj, a <file/./ trenutni direktorij. Sjetite se da vam sustav neće dopustiti <tt/cd/, <tt/rd/ ili <tt/md/ gdje god želite. Svaki korisnik ima svoje stvari u direktoriju koji se naziva <bf/home/ (dom), koji mu je dao administrator sustava; na primjer, na mojem PC-u moj je home direktorij <file>/home/guido</file>. <sect1>Dozvole direktorija<label id="DirDozvole"> <p> I direktoriji imaju dozvole. Ono što smo vidjeli u dijelu <ref id="Dozvole" name="Dozvole i vlasništvo"> vrijedi i za direktorije (korisnik, grupa, ostali). Za direktorij <tt/rx/ znači da možete ući u njega, a <tt/w/ znači da u njemu možete izbrisati datoteku (naravno, prema dozvolama datoteke) ili sam direktorij. Na primjer, kako bi spriječili njuškanje ostalih korisnika po <file>/home/guido/tekst</file>: <verb> $ chmod o-rwx /home/guido/tekst </verb> <sect1>Direktoriji: prevođenje naredbi<label id="PrevDirektoriji"> <p> <tabular ca="ll"> <tt/DIR/|<tt/ls/, <tt/find/, <tt/du/@ <tt/CD/|<tt/cd/, <tt/pwd/@ <tt/MD/|<tt/mkdir/@ <tt/RD/|<tt/rmdir/@ <tt/DELTREE/|<tt/rm -rf/@ <tt/MOVE/|<tt/mv/ </tabular> <sect2>Primjeri <p> <verb> 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\SMEĆE $ cd ../temp/smeće C:\GUIDO>MD NOVIPROG $ mkdir noviprogrami C:\GUIDO>MOVE PROGRAM .. $ mv program .. C:\GUIDO>MD \PROGRAMI\TURBO $ mkdir /programi/turbo C:\GUIDO>DELTREE TEMP\SMEĆE $ rm -rf temp/smeće C:\GUIDO>RD NOVIPROG $ rmdir noviprogrami C:\GUIDO>RD \PROGRAMI\TURBO $ rmdir /programi/turbo </verb> Napomene: <itemize> <item> Kad koristite <tt/rmdir/, direktorij mora biti prazan. Za brisanje direktorija i njegovog sadržaja koristite <tt/rm -rf/ (na svoju odgovornost). <item> Znak <tt/~/ je kratica za ime vašeg home direktorija. Naredbe <tt/cd/ ili <tt/cd ~/ će vas odvesti u vaš home direktorij bez obzira na trenutni; naredba <tt>cd ~/tmp</tt> će vas odvesti u <file>/home/vaš_home/tmp</file>. <item> <tt/cd -/ vas vraća u direktorij iz kojeg ste posljednji put pokrenuli <tt/cd/. </itemize> <sect>Diskete, tvrdi diskovi i slično <p> S uređajima pod Linuxom možete raditi na dva načina: DOS način i Unix način. Izaberite sami. <sect1>Rad s uređajima na DOS način <p> S većinom distribucija dolazi Mtools kolekcija, skup naredbi koje su posve jednake DOS pandanima, osim što počinju s ``<tt/m/'': <tt/mformat/, <tt/mdir/, <tt/mdel/, <tt/mmd/, itd. Mogu čak sačuvati duga imena, ali ne i dozvole datoteka. Ako mtools konfigurirate uređivanjem datoteke <file>/etc/mtools.conf</file> (primjer je u distribuciji), možete pristupiti i DOS/Windows particiji, CD-ROM-u ili Zip driveu. Ipak, za formatiranje nove diskete <tt/mformat/ nije dovoljan. Prije toga ćete morati kao root zadati ovu naredbu: <verb> # fdformat /dev/fd0H1440 </verb> Ne možete pristupati datotekama na disketi naredbom kao što je <tt/less a:datoteka.txt/! To je mana DOS načina pristupanja diskovima. <sect1>Rad s uređajima na Unix način <p> Unix s uređajima radi drukčije. Nema odvojenih diskova kao što je A: ili C:; disk, bio on disketa ili nešto drugo, postaje dio lokalnog datotečnog sustava operacijom <bf/montiranja/. Kada ste gotovi s njime, prije nego što ga izvadite, morate ga <bf/demontirati/. Fizičko formatiranje diska je jedna stvar, a stvaranje datotečnog sustava na njemu sasvim druga. DOS naredba <tt/FORMAT A:/ obavlja obje, ali pod Linuxom postoje odvojene naredbe. Za formatiranje diskete pogledajte prethodni dio; za stvaranje datotečnog sustava: <verb> # mkfs -t ext2 -c /dev/fd0H1440 </verb> Umjesto ext2 možete koristiti dos, vfat (preporučen) ili druge formate. Kada je disk pripremljen, montirajte ga naredbom <verb> # mount -t ext2 /dev/fd0 /mnt </verb> točno navodeći datotečni sustav ako niste koristili ext2. Sada možete raditi s datotekama na disketi koristeći <file>/mnt</file> umjesto <tt/A:/ ili <tt/B:/. Primjeri: <verb> 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/$ _ </verb> Kad ste gotovi, prije nego izvadite disketu, <bf/morate/ ju demontirati naredbom <verb> # umount /mnt </verb> Očito, <tt/fdformat/ i <tt/mkfs/ morate koristiti samo na neformatiranim disketama, a ne na prethodno korištenim. Ako koristite B: pogon, obraćajte mu se s <file/fd1H1440/ i <file/fd1/ umjesto <file/fd0H1440/ i <file/fd0/ u gornjim primjerima. Naravno, što vrijedi za diskete, vrijedi i za druge uređaje; na primjer, možete montirati drugi tvrdi disk ili CD-ROM. CD-ROM montirate ovako: <verb> # mount -t iso9660 /dev/cdrom /mnt </verb> Ovo je ``službeni'' način za montiranje diskova, ali to se može i jednostavnije. Pošto je malo iritantno što morate biti root kako bi montirali disketu ili CD-ROM, njihovo montiranje se ovako može dopustiti svakomu: <itemize> <item> Učinite sljedeće kao root: <verb> # mkdir /mnt/floppy ; mkdir /mnt/cdrom # chmod 777 /mnt/floppy /mnt/cd* # # pazite da navedete pravi CD-ROM uređaj # chmod 666 /dev/hdb ; chmod 666 /dev/fd* </verb> <item> Dodajte u <file>/etc/fstab</file> ove redove: <verb> /dev/cdrom /mnt/cdrom iso9660 ro,user,noauto 0 0 /dev/fd0 /mnt/floppy vfat user,noauto 0 0 </verb> </itemize> Ako sada želite montirati DOS disketu ili CD-ROM: <verb> $ mount /mnt/floppy $ mount /mnt/cdrom </verb> Direktorijima <file>/mnt/floppy</file> i <file>/mnt/cdrom</file> sada može pristupiti svaki korisnik. Ako vas zanima, ovakvo dopuštanje montiranja diskova svakom ogromna je sigurnosna rupa. Još dvije korisne naredbe su <tt/df/, koji daje informacije o montiranim datotečnim sustavima, te <tt/du imedirektorija/, koji ispisuje prostor na disku koji direktorij zauzima. <sect1>Backup <p> Pomoći će vam nekoliko paketa, no najmanje što možete učiniti za backup na više diskova je (kao root): <verb> # tar -M -cvf /dev/fd0H1440 direktorij_za_backup/ </verb> Mora biti ubačena formatirana disketa, a još nekoliko njih spremno. Kako biste vratili svoje stvari, ubacite prvu i napišite: <verb> # tar -M -xpvf /dev/fd0H1440 </verb> <sect>A što je s Windowsima? <p> Pandan Windowsima je grafičko sučelje X Window System. Za razliku od Windowsa ili Maca, X11 nije napravljen za lako korištenje ili lijep izgled, nego samo za dodavanje grafičkih mogućnosti Unix radnim stanicama. Ovo su glavne razlike: <itemize> <item> Windows izgleda isto širom svijeta, a X11 ne: puno je prilagodljiviji. Ukupni izgled X11-a određuje ključni dio zvan <em/window manager/. Širok je izbor window managera: <tt/fvwm/, spartanski, ali zgodan i djelotvoran s memorijom; <tt/fvwm2-95/; Afterstep, WindowMaker, Enlightenment i mnogi drugi. Obično se pokreće iz <file/.xinitrc/. <item> Vaš WM se može konfigurirati tako da prozor reagira kao u, eh, Windowsima: kliknete na njega i dolazi u prednji plan. Druga je mogućnost da u prednji plan dođe kada preko njega prijeđete mišem (fokus). Smještaj prozora na zaslonu može biti automatski ili interaktivan: ako se umjesto vašeg programa pojavi čudan okvir, lijevim klikom odaberite gdje će se smjestiti. <item> Većina opcija se može prilagoditi uređivanjem jedne ili više konfiguracijskih datoteka. Pročitajte dokumentaciju svog WM-a; konfiguracijska datoteka može biti <file/.fvwmrc/, <file/.fvwm2rc95/, <file/.steprc/, itd. Primjer konfiguracijske datoteke se obično nalazi u <file>/etc/X11/ime-window-managera/system.ime-window-managera</file>. <item> X11 aplikacije su pisane pomoću posebnih librarya (<em/widget sets/); pošto ih ima nekoliko, aplikacije izgledaju različito. Najosnovnije koriste Athena widgete (2D izgled; <tt/xdvi/, <tt/xman/, <tt/xcalc/); drugi koriste Motif (<tt/netscape/), a drugi pak Tcl/Tk, XForms, Qt, Gtk, itd. Skoro svi od tih librarya pružaju izgled i osjećaj Windowsa. <item> Osjećaj, nažalost, može biti nepotpun. Na primjer, ako odaberete red teksta mišem i pritisnete <BACKSPACE>, očekujete da red nestane, ne? S aplikacijama na Atheni to ne radi, ali radi s drugim widget setovima. <item> Kako radi pomicanje i mijenjanje veličine prozora ovisi o WM-u i widget setu. Uputa: ako scrollbarovi ne rade kako očekujete, probajte ih micati središnjom tipkom miša ili s obje tipke zajedno. <item> Aplikacije ne moraju imati ikonu, ali mogu ih imati mnogo. Većina WM-a vam daje izbornik koji pozivate klikanjem na desktop (root prozor); naravno, izbornik se može mijenjati. Za mijenjanje izgleda root prozora koristite <tt/xsetroot/ ili <tt/xloadimage/. <item> <em/Clipboard/ može sadržavati samo tekst i ponaša se čudno. Kad izaberete tekst, on je već kopiran u clipboard: pomaknite se i pritisnite srednju tipku za lijepljenje. <tt/xclipboard/ pruža višestruke clipboard spremnike. <item> <em/Drag & drop/ je moguć, no dostupan je samo ako koristite X11 aplikacije i/ili WM-ove koji ga podržavaju. </itemize> Trebali biste koristiti aplikacije koje koriste iste librarye jer time štedite memoriju, no to je teško ostvariti u praksi. Postoje projekti kojima je cilj izgled i ponašanje X11 učiniti dosljednim kao na Windowsima. Gnome, <url url="http://www.gnome.org">, i KDE, <url url="http://www.kde.org">, su zakon. Probajte ih: više nećete žaliti za svojim Windows desktopom. <sect>Prilagođavanje sustava <p> <sect1>Inicijalizacijske datoteke sustava<label id="Inicijalizacija"> <p> Dvije važne datoteke pod DOS-om su <file/AUTOEXEC.BAT/ i <file/CONFIG.SYS/, koje se pri dizanju sustava koriste za inicijalizaciju, postavljanje nekih varijabli okružja kao što je <tt/PATH/ i <tt/FILES/, i, možda, pokretanje programa ili batch datoteke. Pod Linuxom ima puno inicijalizacijskih datoteka. Neke bolje ne dirajte ako ne znate što radite. Uglavnom, evo najvažnijih: <tabular ca="ll"> Datoteke|Napomene@ <file>/etc/inittab</file>|zasad ne dirajte!@ <file>/etc/rc.d/*</file>|isto </tabular> Ako želite samo postaviti <tt/$PATH/ i druge varijable okružja, ili želite promijeniti poruke pri loginu, automatski pokrenuti program nakon njega, pogledajte ove datoteke: <itemize> <item><file>/etc/issue</file>: poruka prije logina <item><file>/etc/motd</file>: poruka poslije logina <item><file>/etc/profile</file>: <tt/$PATH/ i druge varijable, itd. <item><file>/etc/bashrc</file>: aliasi i funkcije, itd. <item><file>/home/vaš_home/.bashrc</file>: vaši aliasi i funkcije <item><file>/home/vaš_home/.bash_profile</file>: ili <item><file>/home/vaš_home/.profile</file>: okružje i pokretanje vaših programa </itemize> Ako ova zadnja datoteka postoji (skrivena je), naredbe u njoj će se izvršiti nakon logina. Primjer -- pogledajte ovaj <file/.bash_profile/: <verb> # ja sam komentar echo Okružje: printenv | less # pandan naredbi SET pod DOS-om alias d='ls -l' # lako je shvatiti što je alias alias up='cd ..' echo "Podsjećam 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 sadržaj .tar.gz arhive. { for datoteka in $* do gzip -dc ${datoteka} | tar tf - done } # kraj .profile-a </verb> Pogodili ste -- <tt/$PATH/ i <tt/$LOGNAME/ su varijable okružja. Ima ih još puno; RMP za aplikacije kao što je <tt/less/ ili <tt/bash/. Stavljanjem ovog reda u svoj <file>/etc/profile</file> dobit ćete grub ekvivalent <tt/PROMPT $P$G/: <verb> export PS1="\w\\$ " </verb> <sect1>Inicijalizacijske datoteke programa <p> Pod Linuxom je skoro sve prilagodljivo vašim potrebama. Većina programa ima jednu ili više inicijalizacijskih datoteka s kojima se možete igrati, obično <file/.imeprogramarc/ u vašem home direktoriju. Prve koje ćete željeti mijenjati su: <itemize> <item><file/.inputrc/: koristi ju <tt/bash/ za definiranje tipkovnice; <item><file/.xinitrc/: koristi ju <tt/startx/ za inicijalizaciju X Window Systema; <item><file/.fvwmrc/: koristi ju window manager <tt/fvwm/; <item><file/.joerc/, <file/.jstarrc/: koristi ih editor <tt/joe/; <item><file/.jedrc/: koristi ju editor <tt/jed/; <item><file/.pinerc/: koristi ju čitač pošte <tt/pine/; <item><file/.Xdefault/: koriste ju mnogi X programi. </itemize> Za sve ove i druge koje ćete prije ili poslije sresti, RMP. Možda vas zanima <em/Konfiguriranje KAKO/ na <url url="http://dokumentacija.linux.hr/Konfiguriranje-KAKO.html">? <sect>Mreže: koncepti <p> Ne samo što je ``Dialup Networking'' dostupan pod Linuxom, nego je i stabilniji i brži. Radi se o PPP-u, protokolu korištenom za spajanje na Internet pomoću modema. Trebat će vam kernel koji podržava PPP i alat koji bira broj i uspostavlja vezu. Kako biste skidali poštu s ISP-ovog poslužitelja, potreban vam je alat zvan ``e-mail fetcher'' koji koristi POP protokol; nakon skidanja, poruke će izgledati kao da su izravno isporučene na vaš Linux stroj. Potom ćete s njima raditi koristeći MUA (<em/Mail User Agent/ -- korisnikov poštanski agent) kao što je <tt/pine/, <tt/mutt/, <tt/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 <tt/diald/ nudi uobičajeno ponašanje. Instaliranje i konfiguriranje spajanja na mrežu modemom je nekad bila jedna od najtežih stvari pod Linuxom, ali više nije: pogledajte <em/Konfiguriranje KAKO/. Na kraju, nešto o ``Network neighborhood'': vaša Linux radna stanica može izgledati kao Windows NT/9x u lokalnoj mreži Windows strojeva! Čarobna riječ je Samba: ne razuzdani brazilski ples, nego implementacija SMB protokola za Linux. Otiđite na <url url="http://samba.anu.edu.au/samba">. <sect>Malo programiranja <p> <sect1>Skripte u ljusci: .BAT datoteke na steroidima<label id="Skripte"> <p> Ako ste koristili <tt/.BAT/ datoteke kao prečice do dugih naredbi (ja jesam, puno), to možete odgovarajućim alias redovima (pogledajte gornji primjer) u <file/profile/ ili <file/.bash_profile/. Ali ako su vam .BAT-ovi bili složeniji, onda ćete obožavati jezik ljuske: moćan je kao dobri stari QBasic, ako ne i više. Ima varijable, konstrukte kao while, for, case, if... then... else i puno drugih mogućnosti: dobra je alternativa ``pravom'' programskom jeziku. Za pisanje skripte -- ekvivalenta <tt/.BAT/ datoteci pod DOS-om -- samo trebate napisati standardnu ASCII datoteku koja sadrži instrukcije, snimiti ju, a onda učiniti izvršnom naredbom <tt/chmod +x <skripta>/. Ako ju hoćete izvršiti, samo napišite njeno ime. Malo upozorenje. Editor sustava se zove <tt/vi/ i po mom iskustvu vrlo je težak za većinu novih korisnika. Neću vam objašnjavati kako ga upotrebljavati; pogledajte knjigu Matta Welsha ili potražite upute na mreži. Ovdje ću reći samo ovo: <itemize> <item>za ubacivanje teksta pritisnite <i>, a onda upišite tekst; <item>za brisanje znakova pritisnite <ESC>, pa <x>; <item>za izlaz bez snimanja pritisnite <ESC>, pa <tt/:q!/; <item>za snimanje i izlaz pritisnite <ESC>, pa <tt/:wq/. </itemize> Dobar editor za početnika je <tt/joe/: ako ga pokrenete kao <tt/jstar/, dobit ćete iste tipke kao u DOSWin editoru. <tt/jed/ u WordStar ili IDE modu je još bolji. Pogledajte dio <ref id="Gdje" name="Gdje naći aplikacije"> za informacije gdje ih nabaviti. Pisanje skripti u <tt/bash/u tako je golema tema da zahtijeva knjigu samo za sebe i neću dublje u nju ulaziti. Samo vam dajem primjer skripte iz koje možete vidjeti neka osnovna pravila: <verb> #!/bin/sh # primjer.sh # ja sam komentar # ne mijenjajte prvi red, on mora biti tamo echo "Ovaj sustav je: `uname -a`" # korištenje izlaza naredbe echo "Moje ime je $0" # ugrađene 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}: grafička datoteka" ;; *.txt|*.tex) echo "${datoteka}: tekstualna datoteka" ;; *.c|*.f|*.for) echo "${datoteka}: datoteka s izvornim kodom" ;; *) echo "${datoteka}: općenita 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 nađen" fi echo "dosta... napišite 'man bash' ako hoćete još informacija" </verb> <sect1>C za vas <p> 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 razmažene Turbo C++-om ili nekim njegovim DOS rođakom. Linuxov C kompajler se zove <tt/gcc/ i nedostaju mu svi ukrasi uobičajenih IDE pandana: nema IDE-a, izravnih uputa, integriranog debuggera, itd. To je samo grubi kompajler komandne linije, vrlo moćan i djelotvoran. Za kompajliranje standardnog <file/hello.c/ napišite: <verb> $ gcc hello.c </verb> što će dati izvršnu datoteku <file/a.out/. Ako hoćete drugo ime, napišite <verb> $ gcc -o hello hello.c </verb> Za vezanje librarya na program, dodajte prekidač -l<imelibrarya>. Na primjer, za vezanje s matematičkim libraryem: <verb> $ gcc -o matematika matematika.c -lm </verb> <tt/-l<imelibrarya>/ kaže <tt/gcc/u da veže library <file>/usr/lib/<imelibrarya>.so</file>, pa <tt/-lm/ veže <file>/usr/lib/libm.so</file>. Zasad je sve u redu. Ali kad se vaš program sastoji od više datoteka, koristit ćete alat <tt/make/. Prepostavimo da ste napisali parser izraza: njegova se datoteka zove <file/parser.c/ i uključuje dva headera, <file/parser.h/ i <file/xy.h/. A onda želite koristiti funkcije iz <file/parser.c/ u drugom programu, recimo <file/kalk.c/, koji također uključuje <file/parser.h/. Kakva zbrka! Kako ćete kompajlirati <file/kalk.c/? Napisat ćete takozvani <file/Makefile/, koji kompajleru pokazuje međuovisnosti izvornih i objektnih kodova. U našem primjeru: <verb> # Ovo je Makefile za kompajliranje kalk.c # Pritisnite <TAB> gdje je označeno! 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 </verb> Ovu datoteku snimite kao <file/Makefile/ i napišite <tt/make/ za kompajliranje programa; možete ju snimiti i kao <file/kalk.mak/ i napisati <tt/make -f kalk.mak/. Naravno, RMP. Nešto uputa o C funkcijama pokrivaju man stranice 3. dijela; na primjer, <verb> $ man 3 printf </verb> Za otklanjanje grešaka koristite <tt/gdb/. <tt/info gdb/ za njegovo korištenje. Librarya ima puno; među prvima koje ćete željeti koristiti su <tt/ncurses/ (efekti u tekstualnom modu) i <tt/svgalib/ (grafika na konzoli). Ako ste dovoljno hrabri za programiranje u X11 (nije to tako teško), postoje nekoliko librarya koje pisanje X11 programa čine vrlo lakim. Pogledajte <url url="http://www.xnet.com/~blatura/linapp6.html">, imajući pritom na umu da Gtk postaje Linux standard. Mnogi editori mogu imitirati IDE; na primjer, <tt/emacs/ i <tt/jed/ imaju sintaktičko osvjetljavanje, automatsko uvlačenje, itd. Možete nabaviti i paket RHIDE s <url url="ftp://sunsite.unc.edu/pub/Linux/devel/debuggers/">. To je klon Borlandovog IDE-a i vjerojatno će vam se svidjeti. <sect>Ostalih 1% <p> Zapravo puno više od 1%... <sect1>Korištenje tara i gzipa <p> Pod Unixom postoje široko korištene aplikacije za arhiviranje i sažimanje datoteka. <tt/tar/ se koristi za stvaranje arhiva -- kao <tt/PKZIP/ ili Winzip, ali bez kompresije. Za novu arhivu: <verb> $ tar -cvf <ime_arhive.tar> <datoteka> [datoteka...] </verb> Za dearhiviranje datoteka: <verb> $ tar -xpvf <ime_arhive.tar> [datoteka...] </verb> Za ispis sadržaja arhive: <verb> $ tar -tf <ime_arhive.tar> | less </verb> Datoteke možete sažeti pomoću <tt/compress/a, koji je zastario i ne bi ga više trebalo koristiti, ili <tt/gzip/a: <verb> $ compress <datoteka> $ gzip <datoteka> </verb> što će proizvesti sažetu datoteku s ekstenzijom <tt/.Z/ (<tt/compress/) ili <tt/.gz/ (<tt/gzip/). Ovi programi mogu sažeti samo jednu datoteku odjednom. Za dekompresiju: <verb> $ compress -d <datoteka.Z> $ gzip -d <datoteka.gz> </verb> RMP. Tu su i <tt/unarj/, <tt/zip/ i <tt/unzip/ (PK*ZIP kompatibilni) alati. Datoteke s ekstenzijom <tt/.tar.gz/ ili <tt/.tgz/ (arhivirane <tt/tar/om, a onda sažete <tt/gzip/om) česte su u Unix svijetu kao .ZIP datoteke pod DOS-om. Ovako ćete ispisati sadržaj <tt/.tar.gz/ arhive: <verb> $ tar -ztf <datoteka.tar.gz> | less </verb> <sect1>Instaliranje aplikacija <p> Prvo, instaliranje paketa rootov je posao. Većina Linux aplikacija se distribuira u <tt/.tar.gz/ arhivama, koje obično sadrže odgovarajuće nazvan direktorij s datotekama i/ili poddirektorijima. Takve pakete je najbolje instalirati u <file>/usr/local</file> naredbom <verb> # tar -zxf <arhiva.tar.gz> </verb> te zatim pročitati datoteku <file/README/ ili <file/INSTALL/. U većini slučajeva, aplikacija se distribuira kao izvorni kod koji morate kompajlirati; često će biti dovoljno napisati samo <tt/make/ pa <tt/make install/. Ako arhiva sadrži <tt/configure/ skriptu, najprije pokrenite nju. Očito, potreban vam je <tt/gcc/ odnosno <tt/g++/ kompajler. Druge arhive treba otpakirati iz <file>/</file>; tako je s Slackwareovim <tt/.tgz/ arhivama. A druge pak arhive sadrže datoteke, ali ne i poddirektorij -- pazite da ne pomiješate stvari! Prije instalacije uvijek pogledajte sadržaj arhive. Debian i Red Hat imaju posebne formate arhiva; <tt/.deb/ i <tt/.rpm/. Drugi postaje sve popularniji; za instalaciju <tt/rpm/ paketa napišite <verb> # rpm -i paket.rpm </verb> <sect1>Trikovi bez kojih se ne može <p> <descrip> <tag/Pogled unatrag:/ pritisak na <SHIFT>-<PgUp> (siva tipka) će pokazati zadnjih nekoliko stranica zaslona, ovisno o količini video memorije. <tag/Reset zaslona:/ ako <tt/more/ ili <tt/cat/ prikaže binarnu datoteku, zaslon će završiti pun smeća. Da to sredite, naslijepo napišite <tt/reset/ ili ovaj niz znakova: <tt/echo CTRL-V ESC c ENTER/. <tag/Lijepljenje teksta:/ za konzolu pogledajte dolje; u X-u, kliknite i vucite odabravši tako tekst u xterm prozoru, a zatim pritisnite srednju tipku (ili obje zajedno ako vaš miš ima dvije tipke) za lijepljenje. Tu je i xclipboard (ali samo za tekst); ne dajte se zbuniti njegovom sporošću. <tag/Korištenje miša:/ ako ste instalirali <tt/gpm/, program za miša na konzoli, možete kliknuti i vući kako bi odabrali tekst i desnom tipkom odabrani tekst zalijepiti. Radi i među različitim VC-ima. <tag/Poruke kernela:/ kao root pogledajte <file>/var/adm/messages</file> ili <file>/var/log/messages</file> da vidite što vam kernel ima reći, kao i poruke pri dizanju sustava. Dobro dođe i naredba <tt/dmesg/. </descrip> <sect1>Gdje naći aplikacije<label id="Gdje"> <p> Ako se pitate možete li zamijeniti svoju staru i provjerenu DOS/Win aplikaciju Linux aplikacijom, predlažem vam da pregledate glavne arhive Linux softvera: <url url="ftp://sunsite.unc.edu/pub/Linux">, <url url="ftp://tsx-11.mit.edu/pub/linux"> i <url url="ftp://ftp.funet.fi/pub/Linux">. Druga dobra mjesta za počinjanje su ``<em/Linux Applications and Utilities Page/'', <url url="http://www.xnet.com/~blatura/linapps.shtml">, i ``službene'' Linux stranice, <url url="http://www.linux.org">. <sect1>Nekoliko stvari koje niste mogli <p> Linux može strašno puno stvari koje su pod DOS/Windowsima zapetljane, složene ili nemoguće. Evo kratkog popisa koji će vam dovesti slinu u usta: <itemize> <item> <tt/at/ omogućava pokretanje programa u određeno vrijeme. <item> <tt/awk/ je jednostavan, ali moćan jezik za rad s datotekama s podacima (i ne samo to). Na primjer, ako je <file/podaci.pod/ datoteka od više stupaca, <verb> $ awk '$2 ~ "abc" {print $1, "\t", $4}' podaci.pod </verb> ispisuje 1. i 4. polje svakog reda u <file/podaci.pod/ čije drugo polje sadrži ``abc''. <item> <tt/cron/ je koristan za redovito obavljanje zadataka, u određeni dan i vrijeme. <tt/man 5 crontab/. <item> <tt/file <imedatoteke>/ će vam reći što je <imedatoteke> (ASCII tekst, izvršna, arhiva, itd.). <item> <tt/find/ (pogledajte dio <ref id="PrevDirektoriji" name="Direktoriji: prevođenje naredbi">) je jedna od najmoćnijih i najkorisnijih naredbi. Koristi se za nalaženje datoteka koje imaju neke osobine i obavljanje poslova na njima. Općenito se koristi ovako: <verb> $ find <direktorij> <izraz> </verb> gdje <izraz> opisuje kriterije za traženje i radnje. Primjeri: <verb> $ find . -type l -exec ls -l {} \; </verb> nalazi sve datoteke koje su simboličke veze i prikazuje na što one pokazuju. <verb> $ find / -name "*.staro" -ok rm {} \; </verb> nalazi sve datoteke koje odgovaraju uzorku i briše ih, pitajući vas za dopuštenje. <verb> $ find . -perm +111 </verb> nalazi sve datoteke čije su dozvole 111 (izvršne). <verb> $ find . -user root </verb> nalazi sve datoteke koje pripadaju rootu. Ovdje ima još mnogo mogućnosti -- RMP. <item> <tt/grep/ nalazi uzorke teksta u datotekama. Na primjer, <verb> $ grep -l "geologija" *.tex </verb> će ispisati datoteke <tt/*.tex/ koje sadrže riječ "geologija". Varijanta <tt/zgrep/ radi na <tt/gzip/-anim datotekama. RMP. <item> Regularni izrazi su složen, ali prokleto moćan način za operacije traženja teksta. Na primjer, <tt/^a[^a-m]X{4,}txt$/ odgovara redu koji počinje s a, kojeg slijedi bilo koji znak između a i m, kojeg slijedi 4 ili više X, a završava na ``txt''. Koristite ih u naprednim editorima, <tt/less/u i mnogim drugim aplikacijama. <tt/man grep/ će vam dati uvod. <item> <tt/script <imetranskripta>/ sadržaj ekrana ispisuje u <file/imetranskripta/ dok ne zadate naredbu <tt/exit/. Korisno za otklanjanje grešaka. <item> <tt/sudo/ korisnicima omogućava izvođenje nekih rootovih poslova (dakle, formatiranje i montiranje disketa; RMP). <item> <tt/uname -a/ daje informacije o vašem sustavu. <item> <tt/zcat/ i <tt/zless/ su korisni za pregledavanje i piping <tt/gzip/-anih datoteka bez njihove dekompresije. Na primjer: <verb> $ zless tekst.gz $ zcat tekst.gz | lpr </verb> <item> Ove naredbe često zgodno posluže: <tt/bc/, <tt/cal/, <tt/chsh/, <tt/cmp/, <tt/cut/, <tt/fmt/, <tt/head/, <tt/hexdump/, <tt/nl/, <tt/passwd/, <tt/printf/, <tt/sort/, <tt/split/, <tt/strings/, <tt/tac/, <tt/tail/, <tt/tee/, <tt/touch/, <tt/uniq/, <tt/w/, <tt/wall/, <tt/wc/, <tt/whereis/, <tt/write/, <tt/xargs/, <tt/znew/. RMP. </itemize> <sect1>Prakticiranje UNIX-a pod DOS/Windowsima <p> Vjerovali ili ne, postoje dobri alati koji pružaju UNIX-oliko okružje pod DOS/Windowsima! Jedan od njih je DJGPP paket, <url url="http://www.delorie.com/djgpp">, za DOS; Cygnus, <url url="http://www.cygnus.com">, je složeniji port za Win32. Oba sadrže iste GNU razvojne i ostale alate kao Linux; ipak, nećete dobiti istu stabilnost i performanse. Ako želite probati okus Linuxa, probajte DJGPP. Skinite i instalirajte sljedeće datoteke (u vrijeme pisanja najnovija verzija je 2.02): <file/djdev202.zip/, <file/bnu281b.zip/, <file/bsh1147b.zip/, <file/fil316b.zip/, <file/find41b.zip/, <file/grep22b.zip/, <file/gwk303b.zip/, <file/lss332b.zip/, <file/shl112b.zip/. Instalacijske upute su uključene, a pomoć možete dobiti u <htmlurl url="news:comp.os.msdos.djgpp" name="comp.os.msdos.djgpp">. Konkretno, koristiti <tt/bash/ pod DOSWinom je pravo osvježenje. Kako biste ga pravilno konfigurirali, editirajte danu datoteku <file/BOOT.BAT/ tako da odgovara vašoj instalaciji; zatim ove datoteke smjestite u svoj home direktorij (na Windows particiji) umjesto već danih: <verb> # 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 ..' </verb> <verb> # ovo je _bprof if [ -f ~/_bashrc ]; then . ~/_bashrc fi PS1='\w\$ ' PS2='> ' CDPATH="$CDPATH:~" # stvari za less(1) LESS="-M-Q" # duži prompt, tiho LESSEDIT="%E ?lt+%lt. %f" # sređujemo red na vrhu VISUAL="jed" # editor LESSCHARSET=latin1 # prikazuje naglašene znakove export PS1 PS2 CDPATH LS_OPTIONS LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET </verb> <sect1>Uobičajene ekstenzije i povezani programi <p> Susrest ćete se s puno ekstenzija. Isključujući egzotičnije (fontovi, itd.), evo tko-je-tko popisa: <itemize> <item> <tt/1 ... 8/: man stranice. Čitajte ih pomoću <tt/groff -Tascii -man <datoteka.1>/. <item> <tt/arj/: arhiva stvorena pomoću <tt/ARJ/. <item> <tt/dvi/: izlazna datoteka TeX-a (pogledajte dalje). <tt/xdvi/ za prikaz, <tt/dvips/ za pretvaranje u PostScript <tt/.ps/ datoteku. <item> <tt/gz/: arhiva stvorena <tt/gzip/om. <item> <tt/info/: info datoteka (alternativa man stranicama). Nabavite <tt/info/. <item> <tt/lsm/: Linux Software Map datoteka. To je obična ASCII datoteka koja opisuje paket. <item> <tt/ps/: PostScript datoteka. Za prikaz ili ispis nabavite <tt/gs/ i, ako želite, <tt/ghostview/ ili <tt/gv/. <item> <tt/rpm/: Red Hat paket. Možete ga instalirati na bilo kojem sustavu koristeći <tt/rpm/. <item> <tt/taz/, <tt/tar.Z/: arhiva stvorena <tt/tar/om i sažeta <tt/compress/om. <item> <tt/tgz/, <tt/tar.gz/: arhiva stvorena <tt/tar/om i sažeta <tt/gzip/om. <item> <tt/tex/: tekstualna datoteka za TeX, moćan sustav izdavaštva. Nabavite paket tex uključen u mnogim distribucijama. <item> <tt/texi/: texinfo datoteka, iz koje može nastati i TeX i info datoteka (pogledajte <tt/info/). Nabavite <tt/texinfo/. <item> <tt/xbm/, <tt/xpm/, <tt/xwd/: grafička datoteka. <item> <tt/Z/: arhiva stvorena <tt/compress/om. </itemize> <sect1>Pretvaranje datoteka <p> Ako želite razmjenjivati tekstualne datoteke između DOS/Windowsa i Linuxa, budite svjesni problema s krajem reda. Pod DOS-om svaki red završava s CR/LF (to jest, ASCII 13 i ASCII 10), a pod Linuxom s LF. Ako editirate DOS tekstualnu datoteku pod Linuxom, svaki će red vjerojatno završavati čudnim "M" znakom; Linux tekstualna datoteka pod DOS-om će izgledati kao kilometarski red bez odlomaka. Nekoliko će alata, dos2unix i unix2dos, pretvoriti datoteke. Ako vaše tekstualne datoteke sadrže naglašene znakove, napravite ih u Windowsima (pomoću Notepada), a ne običnom DOS-u; inače će svi naglašeni znakovi biti potpuno zeznuti. Pretvaranje Word ili Word Perfect datoteka u obični tekst je zapetljano, ali moguće. Trebat će vam jedan od alata s CTAN poslužitelja; jedan od njih je <htmlurl url="ftp://ftp.tex.ac.uk" name="ftp.tex.ac.uk">. Uzmite program <tt/word2x/ iz direktorija <htmlurl url="ftp://ftp.tex.ac.uk/pub/tex/tools/" name="/pub/tex/tools/">, ili pogledajte programe u direktoriju <htmlurl url="ftp://ftp.tex.ac.uk/pub/tex/support/" name="/pub/tex/support/">. <tt/word2x/ pretvara Word 6 datoteke; za Word 97 datoteke će vam trebati <tt/mswordview/, <url url="http://www.csn.ul.ie/~caolan/docs/MSWordView.html">, koji ih pretvara u HTML. <sect1>Besplatni uredski paketi <p> Ako pretvaranje datoteka nije dovoljno, možete isprobati jedan od (besplatnih!) paketa sličnih Microsoft Officeu. Paket StarOffice je besplatan za osobnu uporabu. Velik je, pomalo spor, ali ipak vrlo dobar: nudi mnogo mogućnosti koje Microsoft Office nema. Također može čitati Word i Excel datoteke, iako pretvaranje nije uvijek savršeno. WWW stranice: <url url="http://www.stardivision.com">. Još jedan dobar paket je Corel WordPerfect, čije je besplatno izdanje dostupno na WWW-u. Trebam li još što reći? Skinite ga: <url url="http://www.corel.com">. <sect>Kraj, za sada <p> Čestitam! Načeli ste malo Unixa i spremni ste početi raditi. Nemojte zaboraviti da je vaše znanje sustava još uvijek ograničeno i da je potrebno još prakse s Linuxom za udoban rad. Ali ako je sve što ste htjeli dobiti hrpu aplikaciju i početi raditi s njima, ovo je dosta. Siguran sam da ćete uživati u Linuxu i nastaviti učiti više o njemu -- svi to rade. Kladio bih se da se nikad nećete vratiti DOSWinu! Nadam se da sam bio razumljiv i dobro uslužio svoja 3 ili 4 čitatelja. <sect1>Autorska prava <p> Ako nije drukčije izraženo, autorska prava na Linux KAKO dokumente posjeduju njihovi autori. KAKO dokumente može se reproducirati i distribuirati u cjelosti ili djelomično, na mediju fizičkom ili elektroničkom, dok je ova obavijest na svim primjercima. Komercijalna distribucija dopuštena je i ohrabrena; međutim, autor bi o takvom distribuiranju želio biti obaviješten. Svi prijevodi, izvedeni ili sažeti radovi koji uključuju Linux KAKO dokumente moraju biti pod ovom licencom. Dakle, ne smijete napraviti rad izveden iz KAKO-a i nametati dodatna ograničenja na njegovu distribuciju. Iznimke ovim pravilima moguće su pod određenim uvjetima; kontaktirajte Linux KAKO koordinatora na dolje danoj adresi. Ukratko, želimo ohrabriti širenje ovih informacija kroz što je više moguće kanala. Međutim, želimo zadržati autorska prava na KAKO dokumente i htjeli bi biti obaviješteni o bilo kakvim namjerama redistribuiranja KAKO-a. Ako imate pitanja, kontaktirajte Tima Bynuma, Linux KAKO koordinatora, na <htmlurl url="mailto:linux-howto@sunsite.unc.edu" name="linux-howto@sunsite.unc.edu">. <sect1>Autor <p> <em>S DOS/Windowsa na Linux</em> je napisao Guido Gonzato, <htmlurl url="mailto:OBRIŠI_MEguido@ibogeo.df.unibo.it" name="OBRIŠI_MEguido@ibogeo.df.unibo.it">. (Obrišite ``OBRIŠI_ME''.) Puno hvala Mattu Welshu, autoru <em/Linux Installation and Getting Started/, Ianu Jacksonu, autoru <em/Linux često postavljana pitanja uz odgovore/, Giuseppeu Zanettiju, autoru <em/Linux/, svima koji su mi poslali prijedloge, te posebno Linusu Torvaldsu i GNU-u koji su nam dali Linux. Ovaj dokument je ``kakav je''. Uloženo puno truda da bude što točniji, ali ove informacije koristite na vlastitu odgovornost. Ni u kojem slučaju autor nije odgovoran za bilo kakve štete proizašle iz korištenja ovog djela. Primjedbe su dobrodošle. Slobodno mi se obratite zahtjevima, prijedlozima, flejmovima, itd. Uživajte u Linuxu i životu, Guido <tt/=8-)/ <sect>Hrvatski prijevod <p> Najnovija verzija ovog prijevoda može se naći na <url url="http://dokumentacija.linux.hr/DOS-Win-na-Linux-KAKO.html">. Održava ga Matej Vela, <htmlurl url="mailto:mvela@public.srce.hr" name="mvela@public.srce.hr">. Svi su prilozi, primjedbe i prijedlozi dobrodošli. </article>