S DOS/Windowsa na Linux KAKO

Guido Gonzato, OBRIŠI_MEguido@ibogeo.df.unibo.it (Obrišite “OBRIŠI_ME”.) verzija 1.3.2, 22. veljače 1999.

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.

Sadržaj

1 Uvod 2 1.1 Je li Linux za vas? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.2 Da. Hoću još. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3

1.2.1 Uvodni koncepti . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2.2 Upute . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

1.3 Konvencije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4

2 Za nestrpljive 5

3 Upoznajte bash 5

4 Datoteke i programi 6 4.1 Datoteke: osnovne stvari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 4.2 Simboličke veze . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7

5 Dozvole i vlasništvo 7

5.1 Datoteke: prevođenje naredbi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

5.1.1 Primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 5.2 Pokretanje programa: višezadaćnost i sesije . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 5.3 Pokretanje programa na udaljenim računalima . . . . . . . . . . . . . . . . . . . . . . . . . . 10

6 Korištenje direktorija 11 6.1 Direktoriji: osnovne stvari . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.2 Dozvole direktorija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11 6.3 Direktoriji: prevođenje naredbi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

6.3.1 Primjeri . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

7 Diskete, tvrdi diskovi i slično 12 7.1 Rad s uređajima na DOS način . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12 7.2 Rad s uređajima na Unix način . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13

7.3 Backup . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

8 A što je s Windowsima? 14

9 Prilagođavanje sustava 15 9.1 Inicijalizacijske datoteke sustava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15 9.2 Inicijalizacijske datoteke programa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

10 Mreže: koncepti 17

11 Malo programiranja 17 11.1 Skripte u ljusci: .BAT datoteke na steroidima . . . . . . . . . . . . . . . . . . . . . . . . . . . 17 11.2 C za vas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

12 Ostalih 1% 19 12.1 Korištenje tara i gzipa . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 12.2 Instaliranje aplikacija . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 12.3 Trikovi bez kojih se ne može . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 12.4 Gdje naći aplikacije . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 12.5 Nekoliko stvari koje niste mogli . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 12.6 Prakticiranje UNIX-a pod DOS/Windowsima . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 12.7 Uobičajene ekstenzije i povezani programi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23 12.8 Pretvaranje datoteka . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24 12.9 Besplatni uredski paketi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

13 Kraj, za sada 24 13.1 Autorska prava . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 13.2 Autor . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25

14 Hrvatski prijevod 25

1 Uvod

1.1 Je li Linux za vas?

Ž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:

• 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.

• 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.

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 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:

• znate osnovne naredbe i ideje DOS-a;

• Linux je, možda s X Window Systemom (ili kraće X11), pravilno instaliran na vašem PC-u;

• vaša ljuska (pandan COMMAND.COM-u) je bash.

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 <ftp://sunsite.unc.edu/pub/

Linux/docs/howto>.

1.2 Da. Hoću još.

Linux i programi koji vam trebaju instalirani su na vašem PC-u. Napravili ste si account – korisnički račun (ako niste, odmah pokrenite 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:

• 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;

• prilagođavanje sustava;

• surfanje Internetom;

• pisanje .BAT datoteka i programa u vašem omiljenom jeziku;

• preostalih 1%.

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.

1.2.1 Uvodni koncepti

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:

• 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>. Nikad nemojte izravno gasiti ili resetirati PC: tako možete oštetiti datotečni sustav.

• 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 5 (Dozvole i vlasništvo)). DOS i Windows vam dopuštaju da izbrišete cijeli disk.

• Posebni korisnik 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 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.

• 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ć.

• 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.

1.2.2 Upute

Pod Linuxom upute možete dobiti na mnogo načina. Najvažniji su:

• Č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: Linux Installation and Getting Started

Matta Welsha, <http://sunsite.unc.edu/mdw/LDP/gs/gs.html>, Linux User Guide Larrya Gre-
enfielda, <ftp://sunsite.unc.edu/pub/Linux/docs/linux-doc-project/users-guide>, i Linux
FAQ, <http://dokumentacija.linux.hr/Linux-FAQ.html>. Na vama je da pročitate barem jednu.

• Dokumentacija instaliranih paketa često je u poddirektorijima /usr/doc.

• Za upute o “internim naredbama” ljuske napišite help, ili, još bolje, man bash ili info bash.

• Za upute o nekoj naredbi napišite man naredba što će prikazati man (manual – priručnik) stranicu za naredba. info naredba prikazuje, ako postoji, info stranicu za naredba. info je hipertekstualni sustav dokumentacije, ne baš intuitivan. Na kraju, probajte apropos naredba ili whatis naredba. Kod svih njih rad možete prekinuti pomoću <q>.

• Konačno, na Internetu: pravo mjesto za dobivanje pomoći je Usenet, na primjer comp.os.linux.setup. Molim vas, nemojte od mene tražiti pomoć, jer sam prilično preopterećen.

1.3 Konvencije

U ovom dokumentu, primjeri često slijede ovaj format: <...> je nužan argument, a [...] opcionalan.

Na primjer:

$ tar -tf <datoteka.tar> [> redir_datoteka ]

datoteka.tar se mora navesti, ali redirekcija u redir\_datoteka nije obavezna.

RMP (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 #, naredbu može izvršiti samo root.

2 Za nestrpljive

Hoćete se istaći? Pogledajte malo ovo:

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!

Za nešto više od popisa naredbi pročitajte sljedeća poglavlja.

3 Upoznajte bash

Dobre vijesti: uz Linux puno manje tipkate na promptu, jer 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

$ 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 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...

4 Datoteke i programi

4.1 Datoteke: osnovne stvari

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 (switch). Isto tako, možete koristiti metaznakove, redirekciju i piping. Samo je nekoliko manjih razlika:

• Pod DOS-om, imena imaju tzv. 8.3 oblik; na primjer 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: 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 različita su. Prema tome, IME\_DATOTEKE.tar.gz i ime\_datoteke.tar.gz su dvije različite datoteke. ls je naredba, LS je greška.

• 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:

$ # ova naredba stvorit će direktorij "Moje stare datoteke"
$ mkdir "Moje stare datoteke"
$ ls
Moje stare datoteke    bin    tmp

Neke znakove ne bi trebalo koristiti: među njima su ! * $ & #.

• Nema određenih ekstenzija kao što je .COM i .EXE za programe, ili .BAT za batch datoteke. Kada zadate naredbu ls -F, izvršne datoteke označava 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 izvršne, odnosno programi. Pod DOS-om, backup datoteke završavaju na .BAK, a pod Linuxom s tildom, ˜ . Zatim, datoteka čije ime počinje točkom je skrivena. Na primjer, datoteku .Ja.sam.skrivena.datoteka naredba ls neće pokazati.

• U DOS-u programski prekidači izgledaju kao /prekidač, a u Linuxu -prekidač ili –prekidač. Na primjer: DIR /S postaje ls -R. Mnogi DOS programi, kao što je PKZIP ili ARJ, koriste Unix-olike prekidače.

Sad možete preskočiti do dijela 5.1 (Datoteke: prevođenje naredbi), ali, da sam na vašem mjestu, ja bih nastavio.

4.2 Simboličke veze

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 (shortcuts) iz Windowsa. Primjeri simboličkih veza su /usr/X11, koja pokazuje na /usr/X11R6;

/dev/modem koji pokazuje na /dev/ttyS0 ili /dev/ttyS1.

Simboličku vezu ćete napraviti ovako:

$ ln -s <datoteka_ili_direktorij> <ime_veze>

Na primjer:

$ ln -s /usr/doc/g77/DOC g77upute.txt

Sada možete 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

5 Dozvole i vlasništvo

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 dozvole i vlasnika, koji pripada grupi. Pogledajte ovo:

$ ls -l /bin/ls
-rwxr-xr-x  1  root  bin  27281 Aug 15 1995 /bin/ls*

Prvo polje sadrži dozvole za datoteku /bin/ls, koja pripada rootu, grupi bin. Bez obzira na to, zapamtite što -rwxr-xr-x znači, s lijeva na desno:

- je tip datoteke (-: obična, d: direktorij, l: veza, itd.); rwx su dozvole za vlasnika datoteke (čitanje, pisanje, izvršavanje); 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 ;-); r-x su dozvole za sve ostale korisnike (čitanje, izvršavanje).

I direktorij /bin ima dozvole: pogledajte dio 6.2 (Dozvole direktorija) za detalje. Zato ne možete 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 (čitanje), w (pisanje), x (izvršavanje). Evo čestih primjera korištenja chmoda:

$ chmod +x datoteka

To postavlja dozvolu za izvršavanje datoteke.

$ chmod go-rw datoteka

To oduzima dozvole za čitanje i pisanje svima osim vlasniku.

$ chmod ugo+rwx datoteka

To svima daje dozvole za čitanje, pisanje i izvršavanje.

$ chmod +s datoteka

Time dobivamo takozvanu setuid ili 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: rwxr-xr-x možemo izraziti kao 755 (svako slovo odgovara bitu: –- je 0, –x je 1, -w- je 2, -wx je 3). Izgleda teško, ali shvatit ćete uz malo prakse. root kao nadkorisnik može mijenjati dozvole svake datoteke. RMP.

5.1 Datoteke: prevođenje naredbi

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: * ?

5.1.1 Primjeri

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 slijedeću stranicu, <q> za izlaz. less je intuitivniji i dopušta korištenje strelica.

• UNDELETE ne postoji, pa pažljivo razmislite prije brisanja datoteka.

• Uz DOS-ove < > >>, Linux ima 2> za preusmjeravanje poruka o greškama (stderr); 2>&1 preusmjerava stderr na stdout, a 1>&2 stdout na stderr.

• Linux ima još jedan metaznak: []. Korištenje: [abc]* odgovara datotekama koje počinju s a, b i c; *[I-N1-3] odgovara datotekama koje završavaju s I, J, K, L, M, N, 1, 2 i 3.

• lpr <datoteka> ispisuje datoteku u pozadini. Za provjeru stanja reda za ispis služi lpq; za brisanje datoteke iz reda za ispis lprm.

• Ne postoji RENAME sličan DOS-ovom; to jest, mv *.xxx *.yyy neće raditi. REN-olika naredba se može

     naći na <ftp://sunsite.unc.edu/pub/Linux/utils/file>.

• Ako želite upozorenje kad bi datoteka trebala biti prepisana, koristite cp -i i mv -i.

5.2 Pokretanje programa: višezadaćnost i sesije

Kako biste pokrenuli program, napišite njegovo ime kao i pod DOS-om. Ako je direktorij (poglavlje 6 (Korištenje direktorija)) u kojem je program smješten uključen u $PATH (poglavlje 9.1 (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 $PATH-u. Rješenje: ako je prog vaš program, napišite

./prog.

Ovako izgleda tipična naredba:

$ naredba [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< ulaz] [> izlaz]

gdje su -s1, ..., -sn programski prekidači; par1, ..., parn programski parametri. U jednom redu možete pokrenuti više programa:

$ naredba1 ; naredba2 ; ... ; naredban

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!

• Za prebacivanje između 1.-6. sesije na virtualnim konzolama, pritisnite <ALT>-<F1> ... <ALT>- <F6>.

• Za pokretanje nove sesije u istoj VC bez napuštanja trenutne, napišite su lt;login>. Na primjer: su - root. Ovo je korisno kada obavljate zadatak koji može obaviti samo root.

• Za kraj sesije napišite exit. Upozorit će vas ako ima zaustavljenih poslova (čut ćete o tome kasnije).

• Za pokretanje procesa u pozadini, dodajte ampersand (&) na kraju naredbe:

  $ imeprograma [-prekidači] [parametri] [< ulaz] [> izlaz] &
  [1] 123

Ljuska procese označava brojem posla ([1]; vidi dolje) i PID-om (Process Identification – identifikacijski broj procesa; u našem primjeru 123).

• Za broj procesa napišite ps ax. To će ispisati popis procesa koji trenutno rade.

• Da biste ubili (terminirali) proces, napišite 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

  kill -SIGKILL <PID>.

I ljuska vam omogućava zaustavljanje ili privremeno suspendiranje procesa, slanje procesa u pozadinu i u prednji plan. U tom kontekstu procese nazivamo poslovima.

• Za broj poslova napišite jobs. Tu su označeni brojem posla, a ne PID-om.

• Za zaustavljanje procesa u prednjem planu pritisnite <CTRL>-<C> (neće uvijek raditi).

• Za suspendiranje procesa u prednjem planu pritisnite <CTRL>-<Z> (isto).

• Za slanje suspendiranog procesa u pozadinu napišite bg <%posao> (postaje posao).

• Za slanje posla u prednji plan, napišite fg <%posao>. Za slanje posljednjeg procesa poslatog u pozadinu u prednji plan jednostavno napišite fg.

• Za ubijanje posla napišite kill <%posao>. <posao> može biti 1, 2, 3...

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).

5.3 Pokretanje programa na udaljenim računalima

Kako biste pokrenuli program na udaljenom računalu čije je ime udaljeno.računalo.edu, napišite:

$ telnet udaljeno.računalo.edu

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 udaljeno.računalo.edu udaljeno X računalo i moja.linux.kanta vaš Linux sustav. Kako biste s moja.linux.kanta pokrenuli X program koji se nalazi na udaljeno.računalo.edu, učinite slijedeće:

• Pokrenite X11 i xterm ili sličan emulator terminala, a zatim napišite:

  $ xhost +udaljeno.računalo.edu
  $ telnet udaljeno.računalo.edu

• Nakon što se logirate, napišite:

     udaljeno:$ DISPLAY=moja.linux.kanta:0.0
     udaljeno:$ imeprograma &
     (Umjesto DISPLAY... ćete možda morati napisati: setenv DISPLAY moja.linux.kanta:0.0. Ovisi

o ljusci.)

Eto! Sada će se imeprograma pokrenuti na 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 <http://dokumentacija.linux.hr/X-na-daljinu.html>.

6 Korištenje direktorija

6.1 Direktoriji: osnovne stvari

Vidjeli smo razlike između datoteka pod DOSWinom i Linuxom. Što se tiče direktorija, pod DOSWinom je root direktorij $\backslash$, a pod Linuxom /. Tako se pod DOSWinom ugniježđeni direktoriji razdvajaju znakom \, a pod Linuxom /. Primjeri staza datoteka:

 DOS C:$\backslash$DOKUMENT$\backslash$GEOLOGIJ$\backslash$SRED\hskip0.16667emKRE.TEX
 Linux /home/guido/dokumenti/geologija/srednja\hskip0.16667emkreda.tex

Kao i obično, .. je direktorij roditelj, a . trenutni direktorij. Sjetite se da vam sustav neće dopustiti cd, rd ili md gdje god želite. Svaki korisnik ima svoje stvari u direktoriju koji se naziva home (dom), koji mu je dao administrator sustava; na primjer, na mojem PC-u moj je home direktorij /home/guido.

6.2 Dozvole direktorija

I direktoriji imaju dozvole. Ono što smo vidjeli u dijelu 5 (Dozvole i vlasništvo) vrijedi i za direktorije (korisnik, grupa, ostali). Za direktorij rx znači da možete ući u njega, a 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 /home/guido/tekst:

$ chmod o-rwx /home/guido/tekst

6.3 Direktoriji: prevođenje naredbi

                                   DIR      ls, find, du
                                   CD       cd, pwd
                                   MD       mkdir
                                   RD       rmdir
                                   DELTREE  rm -rf
                                   MOVE     mv

6.3.1 Primjeri

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

Napomene:

• Kad koristite rmdir, direktorij mora biti prazan. Za brisanje direktorija i njegovog sadržaja koristite rm -rf (na svoju odgovornost).

• Znak ˜ je kratica za ime vašeg home direktorija. Naredbe cd ili cd ˜ će vas odvesti u vaš home direktorij bez obzira na trenutni; naredba cd ˜ /tmp će vas odvesti u /home/vaź\_home/tmp.

• cd - vas vraća u direktorij iz kojeg ste posljednji put pokrenuli cd.

7 Diskete, tvrdi diskovi i slično

S uređajima pod Linuxom možete raditi na dva načina: DOS način i Unix način. Izaberite sami.

7.1 Rad s uređajima na DOS način

S većinom distribucija dolazi Mtools kolekcija, skup naredbi koje su posve jednake DOS pandanima, osim što počinju s “m”: mformat, mdir, mdel, mmd, itd. Mogu čak sačuvati duga imena, ali ne i dozvole datoteka. Ako mtools konfigurirate uređivanjem datoteke /etc/mtools.conf (primjer je u distribuciji), možete pristupiti i DOS/Windows particiji, CD-ROM-u ili Zip driveu. Ipak, za formatiranje nove diskete mformat nije dovoljan. Prije toga ćete morati kao root zadati ovu naredbu:

# fdformat /dev/fd0H1440

Ne možete pristupati datotekama na disketi naredbom kao što je less a:datoteka.txt! To je mana DOS načina pristupanja diskovima.

7.2 Rad s uređajima na Unix način

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 montiranja. Kada ste gotovi s njime, prije nego što ga izvadite, morate ga demontirati.

Fizičko formatiranje diska je jedna stvar, a stvaranje datotečnog 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 datotečnog sustava:

# mkfs -t ext2 -c /dev/fd0H1440

Umjesto ext2 možete koristiti dos, vfat (preporučen) ili druge formate. Kada je disk pripremljen, montirajte ga naredbom

# mount -t ext2 /dev/fd0 /mnt

točno navodeći datotečni sustav ako niste koristili ext2. Sada možete raditi s datotekama na disketi koristeći /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, morate ju demontirati naredbom

# umount /mnt

Očito, fdformat i mkfs morate koristiti samo na neformatiranim disketama, a ne na prethodno korištenim. Ako koristite B: pogon, obraćajte mu se s fd1H1440 i fd1 umjesto fd0H1440 i 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:

# mount -t iso9660 /dev/cdrom /mnt

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:

• Učinite sljedeće kao root:

     # 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*

• 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 želite montirati DOS disketu ili CD-ROM:

$ mount /mnt/floppy
$ mount /mnt/cdrom

Direktorijima /mnt/floppy i /mnt/cdrom sada može pristupiti svaki korisnik. Ako vas zanima, ovakvo dopuštanje montiranja diskova svakom ogromna je sigurnosna rupa.

Još dvije korisne naredbe su df, koji daje informacije o montiranim datotečnim sustavima, te du imedirektorija, koji ispisuje prostor na disku koji direktorij zauzima.

7.3 Backup

Pomoći će vam nekoliko paketa, no najmanje što možete učiniti za backup na više diskova je (kao root):

# tar -M -cvf /dev/fd0H1440 direktorij_za_backup/

Mora biti ubačena formatirana disketa, a još nekoliko njih spremno. Kako biste vratili svoje stvari, ubacite prvu i napišite:

# tar -M -xpvf /dev/fd0H1440

8 A što je s Windowsima?

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:

• Windows izgleda isto širom svijeta, a X11 ne: puno je prilagodljiviji. Ukupni izgled X11-a određuje ključni dio zvan window manager. Širok je izbor window managera: fvwm, spartanski, ali zgodan i djelotvoran s memorijom; fvwm2-95; Afterstep, WindowMaker, Enlightenment i mnogi drugi. Obično se pokreće iz .xinitrc.

• 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.

• 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 .fvwmrc, .fvwm2rc95, .steprc, itd. Primjer konfiguracijske datoteke se obično nalazi u /etc/X11/ime-window-managera/system.

     ime-window-managera.

• X11 aplikacije su pisane pomoću posebnih librarya (widget sets); pošto ih ima nekoliko, aplikacije izgledaju različito. 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 pružaju izgled i osjećaj Windowsa.

• 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.

• 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.

• 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 xsetroot ili xloadimage.

• 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. xclipboard pruža višestruke clipboard spremnike.

• Drag & drop je moguć, no dostupan je samo ako koristite X11 aplikacije i/ili WM-ove koji ga podržavaju.

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, <http://www.gnome.org>, i KDE, <http://www.kde.org>, su zakon. Probajte ih: više nećete žaliti za svojim Windows desktopom.

9 Prilagođavanje sustava

9.1 Inicijalizacijske datoteke sustava

Dvije važne datoteke pod DOS-om su AUTOEXEC.BAT i CONFIG.SYS, koje se pri dizanju sustava koriste za inicijalizaciju, postavljanje nekih varijabli okružja kao što je PATH i 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:

Datoteke  Napomene
/etc/inittab zasad ne dirajte!

                               /etc/rc.d/* isto

Ako želite samo postaviti $PATH i druge varijable okružja, ili želite 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/vaź\_home/.bashrc: vaši aliasi i funkcije
   • /home/vaź\_home/.bash\_profile: ili

• /home/vaź\_home/.profile: okružje i pokretanje vaših programa Ako ova zadnja datoteka postoji (skrivena je), naredbe u njoj će se izvršiti nakon logina.

Primjer – pogledajte ovaj .bash\_profile:

# 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

Pogodili ste – $PATH i $LOGNAME su varijable okružja. Ima ih još puno; RMP za aplikacije kao što je less ili

bash.

Stavljanjem ovog reda u svoj /etc/profile dobit ćete grub ekvivalent PROMPT $P$G:

export PS1="\w\\$ "

9.2 Inicijalizacijske datoteke programa

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 .imeprogramarc u vašem home direktoriju. Prve koje ćete željeti 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 čitač pošte pine;

• .Xdefault: koriste ju mnogi X programi.

Za sve ove i druge koje ćete prije ili poslije sresti, RMP. Možda vas zanima Konfiguriranje KAKO na

<http://dokumentacija.linux.hr/Konfiguriranje-KAKO.html>?

10 Mreže: koncepti

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 (Mail User Agent – korisnikov poštanski agent) kao što 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 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 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 <http://samba.anu.edu.au/samba>.

11 Malo programiranja

11.1 Skripte u ljusci: .BAT datoteke na steroidima

Ako ste koristili .BAT datoteke kao prečice do dugih naredbi (ja jesam, puno), to možete odgovarajućim alias redovima (pogledajte gornji primjer) u profile ili .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 .BAT datoteci pod DOS-om – samo trebate napisati standardnu ASCII datoteku koja sadrži instrukcije, snimiti ju, a onda učiniti izvršnom naredbom chmod +x <skripta>. Ako ju hoćete izvršiti, samo napišite njeno ime.

Malo upozorenje. Editor sustava se zove 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:

• za ubacivanje teksta pritisnite <i>, a onda upišite 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 početnika je joe: ako ga pokrenete kao jstar, dobit ćete iste tipke kao u DOSWin editoru. jed u WordStar ili IDE modu je još bolji. Pogledajte dio 12.4 (Gdje naći aplikacije) za informacije gdje ih nabaviti.

Pisanje skripti u bashu 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:

#!/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"

11.2 C za vas

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 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 hello.c napišite:

$ gcc hello.c

što će dati izvršnu datoteku a.out. Ako hoćete drugo ime, napišite

$ gcc -o hello hello.c

Za vezanje librarya na program, dodajte prekidač -l<imelibrarya>. Na primjer, za vezanje s matematičkim libraryem:

$ gcc -o matematika matematika.c -lm

-l<imelibrarya> kaže gccu da veže library /usr/lib/$<$imelibrarya$>$.so, pa -lm veže /usr/lib/
libm.so.

Zasad je sve u redu. Ali kad se vaš program sastoji od više datoteka, koristit ćete alat make. Prepostavimo da ste napisali parser izraza: njegova se datoteka zove parser.c i uključuje dva headera, parser.h i xy.h. A onda želite koristiti funkcije iz parser.c u drugom programu, recimo kalk.c, koji također uključuje parser.h. Kakva zbrka! Kako ćete kompajlirati kalk.c?

Napisat ćete takozvani Makefile, koji kompajleru pokazuje međuovisnosti izvornih i objektnih kodova. U našem primjeru:

# 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

Ovu datoteku snimite kao Makefile i napišite make za kompajliranje programa; možete ju snimiti i kao kalk.mak i napisati make -f kalk.mak. Naravno, RMP. Nešto uputa o C funkcijama pokrivaju man stranice 3. dijela; na primjer,

$ man 3 printf

Za otklanjanje grešaka koristite gdb. info gdb za njegovo korištenje.

Librarya ima puno; među prvima koje ćete željeti koristiti su ncurses (efekti u tekstualnom modu) i 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 <http://www.xnet.com/~blatura/linapp6. html>, imajući pritom na umu da Gtk postaje Linux standard.

Mnogi editori mogu imitirati IDE; na primjer, emacs i jed imaju sintaktičko osvjetljavanje, automatsko uv-

lačenje, itd. Možete nabaviti i paket RHIDE s <ftp://sunsite.unc.edu/pub/Linux/devel/debuggers/>.

To je klon Borlandovog IDE-a i vjerojatno će vam se svidjeti.

12 Ostalih 1%

Zapravo puno više od 1%...

12.1 Korištenje tara i gzipa

Pod Unixom postoje široko korištene aplikacije za arhiviranje i sažimanje 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 sadržaja arhive:

$ tar -tf <ime_arhive.tar> | less

Datoteke možete sažeti pomoću compressa, koji je zastario i ne bi ga više trebalo koristiti, ili gzipa:

$ compress <datoteka>
$ gzip <datoteka>

što će proizvesti sažetu datoteku s ekstenzijom .Z (compress) ili .gz (gzip). Ovi programi mogu sažeti 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 sažete gzipom) česte su u Unix svijetu kao .ZIP datoteke pod DOS-om. Ovako ćete ispisati sadržaj .tar.gz arhive:

$ tar -ztf <datoteka.tar.gz> | less

12.2 Instaliranje aplikacija

Prvo, instaliranje paketa rootov je posao. Većina Linux aplikacija se distribuira u .tar.gz arhivama, koje obično sadrže odgovarajuće nazvan direktorij s datotekama i/ili poddirektorijima. Takve pakete je najbolje instalirati u /usr/local naredbom

# tar -zxf <arhiva.tar.gz>

te zatim pročitati datoteku README ili INSTALL. U većini slučajeva, aplikacija se distribuira kao izvorni kod koji morate kompajlirati; često će biti dovoljno napisati samo make pa make install. Ako arhiva sadrži configure skriptu, najprije pokrenite nju. Očito, potreban vam je gcc odnosno g++ kompajler. Druge arhive treba otpakirati iz /; tako je s Slackwareovim .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; .deb i .rpm. Drugi postaje sve popularniji; za instalaciju rpm paketa napišite

# rpm -i paket.rpm

12.3 Trikovi bez kojih se ne može

Pogled unatrag:

pritisak na <SHIFT>-<PgUp> (siva tipka) će pokazati zadnjih nekoliko stranica zaslona, ovisno o količini video memorije.

Reset zaslona:

ako more ili cat prikaže binarnu datoteku, zaslon će završiti pun smeća. Da to sredite, naslijepo napišite reset ili ovaj niz znakova: echo CTRL-V ESC c ENTER.

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.

Korištenje miša:

ako ste instalirali 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.

Poruke kernela:

kao root pogledajte /var/adm/messages ili /var/log/messages da vidite što vam kernel ima reći, kao i poruke pri dizanju sustava. Dobro dođe i naredba dmesg.

12.4 Gdje naći aplikacije

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: <ftp://sunsite.unc.edu/pub/Linux>, <ftp://tsx-11.
mit.edu/pub/linux> i <ftp://ftp.funet.fi/pub/Linux>. Druga dobra mjesta za počinjanje su “Linux

Applications and Utilities Page”, <http://www.xnet.com/~blatura/linapps.shtml>, i “službene” Linux

stranice, <http://www.linux.org>.

12.5 Nekoliko stvari koje niste mogli

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:

• at omogućava pokretanje programa u određeno vrijeme.

• awk je jednostavan, ali moćan jezik za rad s datotekama s podacima (i ne samo to). Na primjer, ako je podaci.pod datoteka od više stupaca,

$ awk '$2 ~ "abc" {print $1, "\t", $4}' podaci.pod

ispisuje 1. i 4. polje svakog reda u podaci.pod čije drugo polje sadrži “abc”.

• cron je koristan za redovito obavljanje zadataka, u određeni dan i vrijeme. man 5 crontab.

• file <imedatoteke> će vam reći što je <imedatoteke> (ASCII tekst, izvršna, arhiva, itd.).

• find (pogledajte dio 6.3 (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:

$ find <direktorij> <izraz>

gdje <izraz> opisuje kriterije za traženje i radnje. Primjeri:

$ find . -type l -exec ls -l {} \;

nalazi sve datoteke koje su simboličke veze i prikazuje na što one pokazuju.

$ find / -name "*.staro" -ok rm {} \;

nalazi sve datoteke koje odgovaraju uzorku i briše ih, pitajući vas za dopuštenje.

$ find . -perm +111

nalazi sve datoteke čije su dozvole 111 (izvršne).

$ find . -user root

nalazi sve datoteke koje pripadaju rootu. Ovdje ima još mnogo mogućnosti – RMP.

• grep nalazi uzorke teksta u datotekama. Na primjer,

$ grep -l "geologija" *.tex

će ispisati datoteke *.tex koje sadrže riječ "geologija". Varijanta zgrep radi na gzip-anim datotekama. RMP.

• Regularni izrazi su složen, ali prokleto moćan način za operacije traženja teksta. Na primjer, ˆ 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, lessu i mnogim drugim aplikacijama. man grep će vam dati uvod.

• script <imetranskripta> sadržaj ekrana ispisuje u imetranskripta dok ne zadate naredbu exit. Korisno za otklanjanje grešaka.

• sudo korisnicima omogućava izvođenje nekih rootovih poslova (dakle, formatiranje i montiranje disketa; RMP).

• uname -a daje informacije o vašem 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 često zgodno posluže: 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.

12.6 Prakticiranje UNIX-a pod DOS/Windowsima

Vjerovali ili ne, postoje dobri alati koji pružaju UNIX-oliko okružje pod DOS/Windowsima! Jedan od njih

je DJGPP paket, <http://www.delorie.com/djgpp>, za DOS; Cygnus, <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 pisa-

nja 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 uključene, a pomoć možete dobiti u comp.os.msdos.djgpp.

Konkretno, koristiti bash pod DOSWinom je pravo osvježenje. Kako biste ga pravilno konfigurirali, editirajte danu datoteku BOOT.BAT tako da odgovara vašoj instalaciji; zatim ove datoteke smjestite u svoj home direktorij (na Windows particiji) umjesto već 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"                     # 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

12.7 Uobičajene ekstenzije i povezani programi

Susrest ćete se s puno ekstenzija. Isključujući egzotičnije (fontovi, itd.), evo tko-je-tko popisa:

• 1 ... 8: man stranice. Čitajte ih pomoću groff -Tascii -man <datoteka.1>.

• arj: arhiva stvorena pomoću 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 obična ASCII datoteka koja opisuje paket.

• ps: PostScript datoteka. Za prikaz ili ispis nabavite gs i, ako želite, ghostview ili gv.

• rpm: Red Hat paket. Možete ga instalirati na bilo kojem sustavu koristeći rpm.

• taz, tar.Z: arhiva stvorena tarom i sažeta compressom.

• tgz, tar.gz: arhiva stvorena tarom i sažeta gzipom.

• tex: tekstualna datoteka za TeX, moćan sustav izdavaštva. Nabavite paket tex uključen u mnogim distribucijama.

• texi: texinfo datoteka, iz koje može nastati i TeX i info datoteka (pogledajte info). Nabavite texinfo.

• xbm, xpm, xwd: grafička datoteka.

• Z: arhiva stvorena compressom.

12.8 Pretvaranje datoteka

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 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 će vam trebati mswordview, <http://www.csn.ul.ie/~caolan/docs/MSWordView.

html>, koji ih pretvara u HTML.

12.9 Besplatni uredski paketi

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: <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: <http://www.corel.com>.

13 Kraj, za sada

Č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.

13.1 Autorska prava

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 linuxhowto@sunsite.unc.edu.

13.2 Autor

S DOS/Windowsa na Linux je napisao Guido Gonzato, OBRIŠI_MEguido@ibogeo.df.unibo.it. (Obrišite “OBRIŠI_ME”.) Puno hvala Mattu Welshu, autoru Linux Installation and Getting Started, Ianu Jacksonu, autoru Linux često postavljana pitanja uz odgovore, Giuseppeu Zanettiju, autoru 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 =8-)

14 Hrvatski prijevod

Najnovija verzija ovog prijevoda može se naći na <http://dokumentacija.linux.hr/ DOS-Win-na-Linux-KAKO.html>. Održava ga Matej Vela, mvela@public.srce.hr. Svi su prilozi, primjedbe i prijedlozi dobrodošli.