Z DOS/Windows na Linux <author>Guido Gonzato, <tt>ggonza@itin.it</tt> <date>v1.3.5, 31. avgust 2000 <abstract> Ta HOWTO je posvečen vsem bodočim nekdanjim uporabnikom sistemov DOS in Windows, ki se bodo odločili preiti na Linux, prosti operacijski sistem, podoben Unixu. Ta spis naj bi bralcu pomagal prestaviti znanje o sistemih DOS in Windows v novo okolje, hkrati pa mu svetoval, kako izmenjavati datoteke in vire med enim in drugim operacijskim sistemom. </abstract> <toc> <sect> Uvod <p> <sect1>Je Linux prava stvar za vas? <p> Začnimo s politično pravovernim uvodom. Čeprav v spisu vseskozi uporabljamo izraz Linux, z njim mislimo operacijski sistem GNU/Linux. Spis na naslovu <url url="http://www.lugos.si/linux/linux-in-gnu.html"> razloži razliko med enim in drugim. Bi tudi vi radi prešli z okolja DOS/Windows na Linux? Dobra zamisel: Linux je tehnično superioren v primerjavi z okolji DOS, Windows 95 in celo Windows NT. Ampak, pazite: če niste prave vrste uporabnik, morda za vas ne bo uporaben. V naslednjih točkah bomo našteli razlike med sistemi DOS/Windows in Linux: <itemize> <item>V DOS in Windows teče Microsoft Office in veliko igric; sistem je enostavno namestiti in nastaviti; razvpit je po svoji nestabilnosti; ni najhitrejši; pogosto zmrzne. <item>V Linuxu teče StarOffice, precej tehničnega programja, malo igric; namestitev in nastavitev sta lahko problematični; zelo je stabilen; je hiter; zmrzne zelo poredko. </itemize> Na vas je, da se odločite, kaj potrebujete. Na kratko: Linux ponuja več moči, vendar traja nekaj časa, da se ga naučite uporabljati. Če večinoma uporabljate komercialno programje ali če ne marate izgubljati časa z učenjem novih ukazov in konceptov, potem verjetno ni za vas. Zavedajte se, da številni novi uporabniki vržejo puško v koruzo prav zaradi začetnih težav. Vsi si prizadevamo, da bi bilo Linux enostavneje uporabljati, a kljub temu <em>ne pričakujte, da ga boste obvladali, ne da bi prebrali veliko dokumentacije in ga vsaj nekaj mesecev uporabljali</em>. Linux vam ne bo dal takojšnjih rezultatov. Navzlic tem opozorilom pa vam trdno zagotavljam, da ste, če ste le prave vrste uporabnica ali uporabnik, v Linuxu našli svojo računalniško nirvano in ne boste nikoli več hoteli nazaj na DOS ali Windows. In mimogrede: Linux ter DOS in Windows lahko mirno sobivajo v istem stroju. Predpogoji za uporabo tega spisa: predpostavili bomo, da <itemize> <item>poznate osnovne ukaze in pojme okolja DOS <item>je Linux, po možnosti skupaj z X Window System, že pravilno nameščen v vašem osebnem računalniku <item>je vaša ukazna lupina v Linuxu (ekvivalent <tt>COMMAND.COM</tt>) <tt>bash</tt>. </itemize> Če ni poudarjeno drugače, se vse informacije v tem spisu nanašajo na zoprni stari DOS. Tu in tam se najde kaj o Windows, védite pa, da sta Windows in Linux popolnoma različna pojma, za razliko od okolja DOS, ki je, resda uborna, vzporednica Unixu. Prosim, razumite tudi, da ta spis ni ne celovit uvod v Linux, ne priročnik za njegovo nastavitev. Najnovejšo izdajo tega spisa najdete na naslovu <url url="http://www.linuxdoc.org">. <sect1>Jeee! Povejte mi več o njem! <p> V svoj računalnik ste namestili Linux in vse potrebne programe. Ustvarili ste si uporabniški račun (če ga še niste, napravite to <em>takojci</em> z ukazom <tt>adduser</tt>), in Linux lepo teče. Ravnokar ste vnesli svoje uporabniško ime in geslo in zdaj ste se zazrli v zaslon z mislijo: ,,Na, kaj pa zdaj?`` Ne obupujte. Skoraj ste že pripravljeni, da boste počeli vse tisto, kar ste počeli v okolju DOS/Windows, in še marsikaj drugega. V prejšnjem okolju ste verjetno počeli naslednje: <itemize> <item>poganjali ste programe; ustvarjali, prepisovali, pregledovali, brisali, tiskali in preimenovali datoteke, <item>z ukazi CD, MD, RD in DIR ste se premikali po svojih imenikih, ustvarjali nove, jih brisali in izpisovali njihovo vsebino, <item>formatirali ste diskete in prepisovali datoteke z njih na disk in nazaj, <item>okolje ste si prikrojili po svoje, <item>deskali ste po internetu, <item>pisali ste datoteke .BAT in programirali v svojem najljubšem programskem jeziku, <item>preostali 1% </itemize> Razveselilo vas bo, da se vsa omenjena opravila izvajajo v Linuxu podobno. V okolju DOS povprečni uporabnik uporablja le kak ducat od nekaj več kot 100 ukazov, podobno pa bolj ali manj velja za Linux. <sect2>Uvodni pojmi <p> Najboljši način, da se naučite česa novega, je, da tudi sami skočite v vodo. Priporočamo vam, da eksperimentirate in se igrate z Linuxom, saj s tem ne morete poškodovati sistema. Nekaj točk: <itemize> <item>Najprej se naučite, kako varno končati delo z Linuxom. Če ste v tekstovnem načinu, pritisnite <CTRL-ALT-DEL>, počakajte, da se sistem znova zažene, in računalnik ugasnite, še preden začne z diska nalagati operacijski sistem. Če delate v okolju X Window System, pritisnite najprej <CTRL-ALT-BACKSPACE>, da se vrnete v tekstovni način, potem pa še <CTRL-ALT-DEL>. <em>Nikoli</em> ne ugašajte računalnika ali pritiskajte tipke Reset sredi dela, ker lahko poškodujete podatke na disku. <item>Za razliko od okolja DOS/Windows so v Linux vgrajeni varnostni mehanizmi. Datoteke in imeniki imajo dovoljenje za pisanje in branje, zato do nekaterih kot navaden uporabnik ne morete (oglejte si še razdelek <ref id="Permissions" name="Dovolilnice in lastništvo datotek">. DOS ali Windows vam po drugi strani dovoli, da zbrišete celotno vsebino diska. <item>Obstaja posebni ,,superuporabnik`` z imenom ,,root``. To je upravitelj sistema, ki ima dovolj moči, da odloča o življenju in smrti stroja. Če delate na svojem osebnem računalniku, boste sami morali tudi upravljati sistem. Delati kot root je <em>nevarno</em>: vsaka napaka lahko resno poškoduje ali celo uniči celoten sistem, enako kot v DOS/Windows. Zato se prijavite kot root le, če res ne gre drugače. <item>Linux je zelo nastavljiv; tako rekoč vsako njegovo lastnost in vsak program si lahko prek ene ali več nastavitvenih datotek prikrojite po svojih željah in potrebah. Zapletenost je pač davek, ki smo ga plačali za to možnost. <item>Preusmeritev in nizanje ukazov sta v DOS obstranska, v Linuxu pa zelo pomembna in predvsem neprimerno močnejša. Preproste ukaze lahko nanizate za dosego zapletenih opravil. Močno priporočam, da se naučite ravnati z njimi. </itemize> <sect2>Kako do pomoči <p> Veliko načinov je, kako priti do pomoči, če se z Linuxom kaj zatakne. Najpomembnejši so: <itemize> <item><em>Branje navodil</em>. Čisto resno. Čeprav lahko spis, ki ga berete, rabi kot uvod v Linux, ne more nadomestiti branja katere od naslednjih knjig: Matt Welsh ,,Linux Installation and Getting Started`` (slovenski prevod je dosegljiv na naslovu <tt><url url="http://www.lugos.si/delo/slo/LIGS-sl/"></tt>), Larry Greenfield ,,Linux User Guide`` (<tt> <url url="ftp://metalab.unc.edu/pub/Linux/docs/linux-doc-project/users-guide"> </tt>), in seznam pogostih vprašanj o Linuxu (<tt> <url url="http://www.lugos.si/delo/slo/HOWTO-sl/Linux-FAQ-sl.html"></tt>). Imejte slabo vest, dokler ne preberete vsaj ene od njih. <item>Dokumentacijo za nameščene programske pakete dostikrat najdete v podimenikih imenika <file>/usr/doc/</file>. <item>Navodila za katerega od internih ukazov ukazne lupine dobite z ukazom <tt>help</tt>. Izčrpnejše informacije dobite z ukazoma <tt>man bash</tt> ali <tt>info bash</tt>. <item>Navodila za posamezen ukaz dobite z ukazom <tt>man ukaz</tt>. Ta prikaže stran iz priročnika (angl. manual), ki pripada iskanemu ukazu. Alternativa je ukaz <tt>info ukaz</tt>. Če je na voljo, prikliče poglavje <tt>ukaz</tt> iz informacijskega sistema info. Hipertekstni informacijski sistem info prvi hip morda ne deluje najbolj intuitivno. In navsezadnje lahko preizkusite <tt>apropos ukaz</tt> ali <tt>whatis ukaz</tt>. Iz vseh naštetih dokumentacijskih sistemov se izmotate s pritiskom na tipko ,q`. </itemize> <sect1>Dogovori <p> V tem spisu bodo zgledi pogosto sledili naslednjemu vzorcu: z <tt><...></tt> označimo obvezni argument ukaza, z <tt>[...]</tt> pa neobveznega. Zgled: <tscreen><verb> $ tar -tf <datoteka.tar> [> preusmerjena_datoteka] </verb></tscreen> <tt>datoteka.tar</tt> mora biti določena, preusmeritev v <tt>preusmerjeno_datoteko</tt> pa je neobvezna. Koderkoli je kot pozivnik pri zgledu ukaza zapisan znak ,#`, to pomeni, da lahko ukaz izvede samo root. <sect>Za nestrpneže <p> Vas že srbijo prsti? Oglejte si naslednjo tabelo: <!-- I'd like to make this an sgml table, but lynx wouldn't display it correctly. I'll think it over. --> <tscreen><verb> DOS Linux Opombe ------------------------------------------------------------------------------ ATTRIB (+-)attr file chmod <mode> file čisto nekaj drugega BACKUP tar -Mcvf device dir/ prav tako CD dirname\ cd dirname/ skoraj enaka skladnja COPY file1 file2 cp file1 file2 prav tako DEL file rm file pazite -- ukaza undelete ni DELTREE dirname rm -R dirname/ prav tako DIR ls različna skladnja DIR file /S find . -name file povsem različna EDIT file vi file morda vam ne bo všeč jstar file ta je tak kot edit v DOS ed file pozabite nanj FORMAT fdformat, mount, umount precej drugačna skladnja HELP command man command, ista filozofija info command MD dirname mkdir dirname/ skoraj enaka skladnja MOVE file1 file2 mv file1 file2 prav tako NUL /dev/null prav tako PRINT file lpr file prav tako PRN /dev/lp0, /dev/lp1 prav tako RD dirname rmdir dirname/ prav tako REN file1 file2 mv file1 file2 ne gre za več datotek RESTORE tar -Mxpvf device različna skladnja TYPE file less file bistveno boljši WIN startx povsem drug svet! </verb></tscreen> Če vam ta tabela ne zadošča, si oglejte naslednje razdelke. <sect>Predstavljamo vam Bash <p> Dobra novica: v Linuxu je tipkanja v ukazni vrstici manj kakor v okolju DOS, ker ukazna lupina <tt>bash</tt> marsikaj postori namesto nas in ponuja vrsto sijajnih možnosti za urejanje ukazne vrstice. Za začetek: puščica navzgor prikliče prejšnje ukaze. Ampak to ni še nič. Pritisk na tipko <TAB> dopolni imena datotek in imenikov. Če natipkamo <tscreen><verb> $ ls /uTABloTABbTAB </verb></tscreen> je to isto kot <tscreen><verb> $ ls /usr/local/bin </verb></tscreen> Kadar okrajšave niso enolične in so mogoči nesporazumi, kot denimo v zgledu <tscreen><verb> $ ls /uTABloTABiTAB </verb></tscreen> se <tt>bash</tt> ustavi, saj ne ve, ali imamo v mislih imenik <file>/usr/local/info</file> ali <file>/usr/local/include</file>. V tem primeru dopišite še kako črko, da se izognete nejasnosti, in znova pritisnite TAB. Druge uporabne zvijače s tipkami so <ESC-BACKSPACE>, ki zbriše besedo levo od kazalca, in <ESC-D>, ki zbriše besedo desno od njega; s kombinacijo <ESC-F> premaknemo kazalec za besedo na desno (F kot Forward, naprej), z <ESC-B> (B kot Backward, nazaj) pa na levo. <CTRL-A> nas premakne na začetek vrstice, <CTRL-E> pa na konec. Tipka <ALT> je enakovredna tipki <ESC>. Bodi zaenkrat dovolj. Ko se boste privadili tem bližnjicam, se vam bo zdela ukazna lupina v DOS nadvse okorna in nadležna... <sect>Datoteke in programi <p> <sect1>Datoteke: uvodni pojmi <p> Struktura imenikov in datotek v Linuxu je zelo podobna tisti v DOS/Windows. Datoteke imajo imena, za katera veljajo določena pravila, in so shranjene v imenikih. Nekatere od njih so programi in večina med temi pozna ukazne izbire. Nadalje, uporabljate lahko džokerje, preusmeritve in nizanje ukazov. Obstaja le nekaj manjših razlik: <itemize> <item>V DOS velja za imena datotek omejitev 8 + 3 (do osem znakov imena, do tri znake pripone), npr. <tt>NOTENOUG.TXT</tt>. V Linuxu je lepše. Če ste namestili Linux z datotečnim sistemom, kot sta na primer ext2 ali umsdos, lahko uporabljate daljša imena datotek (do 255 znakov) in več kot eno piko v imenu, na primer <tt>To_je.zelo_dolgo.IME.datoteke</tt>. Verjetno ste opazili, da sem uporabil velike in male črke, to pa zato, ker... <item>Linux razlikuje med velikimi in malimi črkami v imenih datotek ali ukazov. Zato sta <tt>DATOTEKA.tar.gz</tt> in <tt>datoteka.tar.gz</tt> dve različni datoteki. <tt>ls</tt> pomeni ukaz; <tt>LS</tt> pomeni napako. <item>Posebno opozorilo za uporabnike Windows 95. Če so v imenu datoteke presledki (kar ni pametno, je pa načeloma možno), morate pri vsakem sklicu nanj navesti tako ime med dvojnimi narekovaji. Zgled: <tscreen><verb> $ # naslednji ukaz ustvari imenik "Stare datoteke" $ mkdir "Stare datoteke" $ ls Stare datoteke bin tmp </verb></tscreen> Nadalje: nekateri znaki niso dovoljeni, med njimi so <tt>!*$&#</tt>. <item>Linux ne pozna nobenih obveznih pripon, kot na primer .COM in .EXE za programe ali .BAT za paketne datoteke. Izvedljive datoteke so označene z zvezdico ,<tt>*</tt>` na koncu, kadar izpišete vsebino imenika z ukazom <tt>ls -F</tt>. Na primer: <tscreen><verb> $ ls -F I_am_a_dir/ cindy.jpg cjpg* letter_to_Joe my_1st_script* old~ </verb></tscreen> Datoteki <tt>cjpg*</tt> in <tt>my_1st_script*</tt> sta izvedljivi, torej programa. V DOS imajo varnostne kopije pripono .BAK; v Linuxu se končajo z vijugo ,<tt>˜</tt>`. Še nekaj: če se ime datoteke začne s piko, na primer <tt>.skrita_datoteka</tt>, ga ukaz <tt>ls</tt> ne prikaže. <item>Izbire v programih za DOS navadno uvede poševnica (npr. <tt>/izbira</tt>), v programih v Linuxu in Unixu nasploh pa ena ali dve črtici, torej <tt>-izbira</tt> ali <tt>--dolga-izbira</tt>. Ukaz <tt>dir /s</tt>, denimo, tako postane <tt>ls -R</tt>. Verjetno ste že opazili, da tudi številni programi za DOS uporabljajo ta slog določanja izbir, med njimi <tt>PKZIP</tt> in <tt>ARJ</tt>. </itemize> Zdaj lahko tudi preskočite na razdelek <ref id="Files" name="Datoteke: primerjava ukazov">, na vašem mestu pa bi bral naprej. <sect1>Simbolne povezave <p> Unix pozna zvrst datoteke, ki je v okolju DOS ni: simbolne povezave. Lahko si jih zamišljamo kot kazalce na datoteke ali imenike in jih uporabljamo namesto datotek ali imenikov, na katere kažejo; nekaj podobnega so bližnjice v Windows 95. Zgleda simbolnih povezav sta imenik <file>/usr/X11</file>, ki kaže na <file>/usr/X11R6/</file>, in enota <file>/dev/modem</file>, ki kaže bodisi na <file>/dev/ttyS0</file> bodisi na <file>/dev/ttyS1</file>. Simbolno povezavo napravimo takole: <tscreen><verb> $ ln -s <datoteka_ali_imenik> <ime_povezave> </verb></tscreen> Zgled: <tscreen><verb> $ ln -s /usr/doc/g77/DOC g77manual.txt </verb></tscreen> Zdaj se lahko sklicujemo na <tt>g77manual.txt</tt> namesto na <tt>/usr/doc/g77/DOC</tt>. Simbolnim povezavam se pri izpisu vsebine imenika doda znak ,<tt>@</tt>` na koncu. <tscreen><verb> $ ls -F g77manual.txt@ $ ls -l (druge reči...) g77manual.txt -> /usr/doc/g77/DOC </verb></tscreen> <sect1>Dovolilnice in lastništvo nad datotekami<label id="Permissions"> <p> Datoteke in imeniki v DOS imajo lahko naslednje prilastke: A (arhivski), H (skriti, angl. hidden), R (dovoljeni samo za branje, angl. read-only), ali S (sistemski). Samo H in R sta smiselna tudi v Linuxu: imena skritih datotek in imenikov se začnejo s piko, o prilastku R pa več v nadaljevanju. V Unixu ima vsaka datoteka svoje dovolilnice (angl. permissions) in lastnika (angl. owner), ki nadalje pripada eni ali več skupinam uporabnikov (group). Oglejmo si naslednji zgled: <tscreen><verb> $ ls -l /bin/ls -rwxr-xr-x 1 root bin 27281 Aug 15 1995 /bin/ls* </verb></tscreen> Ime datoteke, <tt>/bin/ls</tt>, je izpisano v zadnjem polju. Prvo polje so dovolilnice za datoteko. Vidimo tudi, da je lastnik datoteke root, pripada pa skupini bin. Druge informacije za zdaj pustimo ob strani in si oglejmo dovolilnice. <tt>-rwxr-xr-x</tt> pomeni, od leve proti desni: Prvi <tt>-</tt> je zvrst datoteke (<tt>-</tt> je navadna datoteka, <tt>d</tt> imenik, <tt>l</tt> simbolna povezava in tako naprej). Preostale znake beremo v trojicah. <tt>rwx</tt> so dovolilnice za lastnika. Ta lahko datoteko bere (read), piše ali briše (write) in izvaja (execute). <tt>r-x</tt> so dovolilnice za uporabnike iz skupine bin. Ti jo lahko berejo (read) in izvajajo (execute), ne morejo pa je spreminjati (pisati ali brisati). Pojma skupine za zdaj ne bomo obravnavali; dokler ste začetnik ali začetnica, lahko preživite tudi brez njega. Zadnji <tt>r-x</tt> so dovolilnice za vse druge uporabnike. Tudi ti lahko datoteko berejo in izvajajo, ne morejo pa je spreminjati. Tudi imenik <file>/bin</file> ima svoje dovolilnice; za podrobnosti si oglejte <ref id="Directories Permissions" name="Imeniki in dovolilnice">. Dovolilnice so razlog, zakaj ne morete zbrisati datoteke <file>/bin/sl</file>: razen če ste root, nimate dovoljenja spreminjati te datoteke. Dovolilnice za posamezno datoteko lahko spreminjate z ukazom: <tscreen><verb> $ chmod <kdoXdovoljenje> <datoteka> </verb></tscreen> ,,Kdo`` je lahko <tt>u</tt> (uporabnik, torej lastnik), <tt>g</tt> (skupina), ali <tt>o</tt> (drugi). Namesto X je bodisi <tt>+</tt> (izdamo dovolilnico) bodisi <tt>-</tt> (prekličemo dovolilnico). In, končno, ,,dovoljenje`` je lahko <tt>r</tt> (dovoljenje za branje, angl. read), <tt>w</tt> (dovoljenje za pisanje ali spreminjanje; angl. write) ali <tt>x</tt> (dovoljenje za izvajanje, angl. execute). Sledi nekaj običajnih zgledov rabe ukaza <tt>chmod</tt>: <tscreen><verb> $ chmod +x datoteka </verb></tscreen> Datoteko smo napravili izvedljivo. <tscreen><verb> $ chmod go-rw datoteka </verb></tscreen> Umaknili smo dovoljenje za branje in pisanje za skupino in vse druge, datoteko lahko bere in spreminja le še lastnik. <tscreen><verb> $ chmod ugo+rwx datoteko. </verb></tscreen> S tako dovolilnico lahko vsakdo bere, spreminja ali izvaja datoteko. <tscreen><verb> # chmod +s datoteka </verb></tscreen> Izdali smo dovolilnico, s katero lahko vsakdo izvaja to datoteko z enakimi pooblastili, kot jih ima lastnik te datoteke (navadno datoteke izvajamo z lastnimi pooblastili). To je tako imenovana datoteka vrste ,,setuid`` ali ,,suid``. Navadno gre za sistemske datoteke, denimo strežnik X, katerih lastnik je root, saj lahko le z njegovimi pooblastili uporabljamo nekatere sistemske vire. Na dovolilnice se lahko sklicujemo tudi z osmiško kodo: <tt>rwxr-xr-x</tt> tako na primer izrazimo kot 755 (vsaki črki iz trojice ustreza en bit: <tt>---</tt> je 0, <tt>--x</tt> je 1, <tt>-w-</tt> je 2, <tt>-wx</tt> je 3 itd.). Na prvi pogled se morda zdi težavno, z nekaj prakse pa boste hitro razumeli koncept. Edino superuporabnik, root, lahko spreminja dovolilnice za katerokoli datoteko v sistemu, drugi pa le svoje. Več informacij v priročniku <sect1>Datoteke: primerjava ukazov<label id="Files"> <p> Na levi je ukaz DOS, na desni enakovredni ukaz v Linuxu <tscreen><verb> ATTRIB: chmod COPY: cp DEL: rm MOVE: mv REN: mv TYPE: more, less, cat </verb></tscreen> Preusmeritev in nizanje ukazov: <tt> < > >> |</tt> Džokerji: <tt>* ?</tt> <tt>nul: /dev/null</tt> <tt>prn, lpt1: /dev/lp0 or /dev/lp1; lpr</tt> <sect2>Zgledi <p> <tscreen><verb> DOS Linux --------------------------------------------------------------------- C:\GUIDO>ATTRIB +R FILE.TXT $ chmod 400 file.txt C:\GUIDO>COPY JOE.TXT JOE.DOC $ cp joe.txt joe.doc C:\GUIDO>COPY *.* TOTAL $ cat * > total C:\GUIDO>COPY FRACTALS.DOC PRN $ cp fractals.doc /dev/lp1 C:\GUIDO>DEL TEMP $ rm temp C:\GUIDO>DEL *.BAK $ rm *~ C:\GUIDO>MOVE PAPER.TXT TMP\ $ mv paper.txt tmp/ C:\GUIDO>REN PAPER.TXT PAPER.ASC $ mv paper.txt paper.asc C:\GUIDO>PRINT LETTER.TXT $ lpr letter.txt C:\GUIDO>TYPE LETTER.TXT $ more letter.txt C:\GUIDO>TYPE LETTER.TXT $ less letter.txt C:\GUIDO>TYPE LETTER.TXT > NUL $ cat letter.txt > /dev/null n/a $ more *.txt *.asc n/a $ cat section*.txt | less </verb></tscreen> Opombe: <itemize> <item>Džoker <tt/*/ je v Linuxu pametnejši: <tt/*/ ujame vse datoteke, razen skritih; <tt/.*/ ujame vse skrite datoteke (vendar tudi trenutni imenik ,<tt/./` in imenik nad njim, ,<tt/../`, zato previdno!); <tt/*.*/ ujame le tiste datoteke, ki imajo sredi imena piko ali se končajo s piko. <tt/p*r/ ujame ,,parameter`` kot ,,papir``; <tt/*c*/ ujame tako ,,Kitajec`` kot ,,akcija``. <item>Pri uporabi <tt/more/ pritiskajte <SPACE> za naslednjo stran, ,q` za konec. Ukaz <tt/less/ je bolj intuitiven in dovoljuje uporabo kurzorskih tipk. <item>Nič takega ni na voljo kot <tt/UNDELETE/, zato <em/dvakrat premislite/, preden karkoli zbrišete. <item>Poleg preusmeritev <tt/< > >>/, ki jih poznamo iz okolja DOS, dovoljuje Linux tudi preusmeritve oblike <tt/2>/. S tem preusmerimo standardni izhod za napake (stderr); konstrukt <tt/2>&1/ tako preusmeri standardni izhod za napake (stderr) na standardni izhod (stdout), <tt/1>&2/ pa nasprotno. <item>Linux pozna še eno zvrst džokerjev <tt/[]/. Uporaba: <tt/[abc]*/ ujame vse datoteke, katerih imena se začnejo z a, b, c; <tt/*[I-N1-3]/ pa vsa imena, ki se končajo na I, J, K, L, M, N, 1, 2, 3; <item>Ukaz <tt/lpr/ <file> natisne datoteko v ozadju. Če vas zanima, kaj se z njo dogaja in na katerem mestu v vrsti za tiskanje je, uporabite <tt/lpq/; iz vrste za tiskanje jo umaknemo z ukazom <tt/lprm/; <item>Nobenega ukaza ni, ki bi se vedel kakor <tt/RENAME/ v DOS; konkretno, <tt/mv *.xxx *.yyy/ ne napravi tega, kar si morda želite, da bi. Namesto tega lahko uporabite skript, dostopen na naslovu <url url="ftp://metalab.unc.edu/pub/Linux/utils/file"> <item>Uporabljajte ukaza <tt/cp -i/ and <tt/mv -i/, ki vas opozorita, preden bi bila kakšna datoteka prepisana. </itemize> <sect1>Poganjanje programov: večopravilnost in seanse <p> Program poženete tako, da vtipkate njegovo ime, torej enako kakor v DOS. Če je imenik (glejte razdelek <ref id="Directories" name="Uporaba imenikov">), v katerem je program, na poti (PATH; razdelek <ref id="System Initialisation" name="Sistemske inicializacijske datoteke">), boste s tem pognali program. Za razliko od DOS pa Linux ne po pognal programa iz trenutnega imenika, če ta imenik ni naveden na poti. Rešitev: iz trenutnega imenika program poženite z ukazom <tt>./program</tt>. Običajna ukazna vrstica je videti nekako takole: <tscreen><verb> $ ukaz [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< vhod] [> izhod] </verb></tscreen> Pri tem so <tt>-s1</tt> ... <tt>-sn</tt> izbire programa, <tt/par1/ ... <tt/parn/ pa parametri. V isti vrstici lahko zaporedoma poženete več ukazov, če jih med seboj ločite s podpičji: <tscreen><verb> $ ukaz1 ; ukaz2 ; ... ; ukazn </verb></tscreen> To je pravzaprav vse, kar morate vedeti o poganjanju programov. Čisto enostaven pa je tudi naslednji korak. Eden poglavitnih razlogov za uporabo Linuxa je ta, da je večopravilni sistem -- več programov (od zdaj bomo programom med tekom rekli procesi) lahko teče hkrati. V ozadju lahko poženete nov proces in nemoteno nadaljujete delo. Še več: v Linuxu ste lahko hkrati večkrat prijavljeni -- kot bi imeli več računalnikov! <itemize> <item>Prijavne seanse 1--6 na navidezni konzoli lahko preklapljate s pritiskom na tipke <ALT-F1> do <ALT-F6> <item>Znotraj prijavne seanso v navidezni konzoli lahko z ukazom <tt/su - <prijavno_ime>/ poženete novo prijavno seanso, ne da bi s tem končali tekočo prijavno seanso. Zgled <tt/su - root/. Stvar je uporabna na primer pri kratkih opravilih, ki pa jih lahko izvaja samo root. <item>Prijavno seanso končate z ukazom <tt/exit/. Če imate še kakšne ustavljene procese (več o njih v nadaljevanju), boste na to opozorjeni. <item>Proces poženete v ozadju tako, da na koncu ukazne vrstice dodaste znak ,<tt/&/`: <tscreen><verb> $ program [-izbire] [parametri] [< vhod] [> izhod] & [1] 123 </verb></tscreen> Ukazna lupina prepoznava procese po številki opravila (npr. <tt/[1]/; več o opravilih v naslednji točki) in po identifikacijski številki procesa (angl. PID, Process Identification Number; v našem zgledu je to 123). <item>Seznam trenutno tekočih procesov dobite z ukazom <tt/ps -ax/. <item>Proces prekinemo z ukazom <tt/kill <PID>/. K temu se moramo včasih zateči, če ne vemo, kako bi končali po običajni poti. Prekinjate lahko samo svoje procese, izjema je root, ki lahko prekine katerikoli proces. Tu in tam je proces mogoče prekiniti samo z ukazom <tt/kill -SIGKILL <PID>/. Ukazna lupina poleg prekinjanja dovoljuje tudi, da proces ustavimo ali začasno zamrznemo, določimo, da se izvaja v ozadju, ali pa prikličeno iz ozadja nazaj v ospredje. V tem kontekstu pravimo procesom ,,opravila``. <item>Seznam tekočih opravil dobite z ukazom <tt/jobs/. Tu so opravila, navedena le s številko opravila, ne s PID. <item>Proces, ki teče v ospredju, ustavimo s pritiskom na <CTRL-C> (ne deluje vedno). <item>Proces v ospredju zamrznemo s pritiskom na <CTRL-Z> (tudi to ne deluje vedno). <item>Zamrznjen proces pošljemo v izvajanje v ozadje z ukazom <tt/bg <job>/ (s tem postane opravilo). <item>Opravilo prikličemo iz ozadja z ukazom <tt/fg <job>/. Brez dodatnega argumenta ukaz <tt/fg/ prikliče v ospredje zadnje opravilo, ki smo ga poslali v ozadje. <item>Opravilo prekinemo z ukazom <tt/kill <%opravilo>/, pri čemer je <opravilo> številka posla: 1, 2, 3... </itemize> S temi ukazi lahko obenem formatirate disk, pospravljate kopico datotek v arhiv, prevajate program in raztegnete drugo arhivsko datoteko, pa imate še vedno dostop do pozivnika. Pa poskusite kaj takega v DOS! Poskusite še v Windows (če bo sistem to preživel) in si oglejte razliko v hitrosti. <sect1>Poganjanje programov v drugih računalnikih <p> Programe v drugem računalniku, katerega popolno omrežno ime je <tt/nekje.drugje.si/, lahko poganjamo tako, da se vanj prijavimo s programom telnet: <tscreen><verb> $ telnet nekje.drugje.si </verb></tscreen> Ko ste prijavljeni, preprosto poženite želeni program. Verjetno je odveč omenjati, da morate tudi v tem drugem računalniku imeti odprt uporabniški račun. V okenskem okolju X11 lahko v drugem računalniku celo poganjamo programe, pisane za to okolje, na svojem pa prikazujemo rezultate. Naj bo <tt/nekje.drugje.si/ oddaljeni računalnik, <tt/moj.linux.si/ pa naš mlinček z Linuxom. Spodnji postopek opisuje, kako z računalnika <tt/moj.linux.si/ poženemo program v drugem računalniku, <tt/nekje.drugje.si/: <itemize> <item>Poženemo X11 in v njem <tt/xterm/ ali ustrezni terminalski posnemovalnik. Potem tipkamo: <tscreen><verb> $ xhost +nekje.drugje.si $ telnet nekje.drugje.si </verb></tscreen> <item>Po prijavi v drug računalnik vtipkamo: <tscreen><verb> remote:$ DISPLAY=moj.linux.si:0.0 remote:$ moj_program & </verb></tscreen> (Odvisno od uporabljene ukazne lupine v drugem računalniku boste morda namesto vrstice <tt/DISPLAY.../ morali natipkati <tt/setenv DISPLAY moj.linux.si:0.0/.) </itemize> Tako! Zdaj se bo <tt/moj_program/ pognal na <tt/nekje.drugje.si/ in uporabljal naš zaslon za prikaz. Ne poskušajte pa tega prek modema -- prepočasi gre, da bi bilo zares uporabno. Kar smo povedali, je tudi zelo groba metoda, ki ni povsem v skladu s pogledi na računalniško varnost. Več o tem si lahko preberete v spisu ,,Remote X Apps mini-HOWTO``, <url url="http://www.linuxdoc.org/HOWTO/mini/Remote-X-Apps.html">. <sect>Imeniki<label id="Directories"> <p> <sect1>Imeniki: pripravljalni pojmi <p> Ogledali smo si že razlike med datotekami v DOS in v Linuxu, zdaj pa so na vrsti imeniki. V DOS se vrhnji imenik imenuje <tt/\/, v Linuxu pa <tt>/</tt>. Podobno je tudi s podimeniki -- v DOS so ravni ločene z obrnjeno poševnico (<tt/\/), v Linuxu pa s poševnico (<tt>/</tt>). Zgleda poti do datotek v enem in drugem primeru: <tscreen><verb> DOS: C:\PAPERS\GEOLOGY\MID_EOC.TEX Linux: /home/guido/papers/geology/middle_eocene.tex </verb></tscreen> Kot običajno <tt/../ označuje imenik nad trenutnim, <tt/./ pa trenutni imenik. Vsak uporabnik ima svoj domači imenik, ki mu ga ustvari upravnik sistema; v mojem domačem računalniku je to na primer <tt>/home/guido</tt>. Spomnite se, da vam sistem ne bo dovolil izvajati ukazov <tt/cd/, <tt/rd/ ali <tt/md/ koderkoli bi želeli. <sect1>Imeniki in dovolilnice<label id="Directories Permissions"> <p> Ne le datoteke, tudi imeniki imajo dovolilnice. Kar smo se v razdelku <ref id="Permissions" name="Lastništvo nad datotekami in dovolilnice"> naučili o lastniku, skupini in drugih uporabnikih, velja tudi za imenike. Pri imeniku <tt/rx/ pomeni, da lahko napravite <tt/cd/ v ta imenik, <tt/w/ pa pomeni, da lahko v njem ustvarite novo datoteko, zbrišete datoteko, če njena dovolilnica to dovoljuje, ali zbrišete sam imenik. Za zgled si oglejmo, kako preprečimo, da bi uporabniki iz drugih skupin vohljali po naših besedilih: <tt>/home/guido/text</tt>: <tscreen><verb> $ chmod o-rwx /home/guido/text </verb></tscreen> <sect1>Imeniki: vzporedba ukazov<label id="Directories: Trans"> <p> <tscreen><verb> DIR: ls, find, du CD: cd, pwd MD: mkdir RD: rmdir DELTREE: rm -R MOVE: mv </verb></tscreen> <sect2>Zgledi <p> <tscreen><verb> DOS Linux --------------------------------------------------------------------- C:\GUIDO>DIR $ ls C:\GUIDO>DIR FILE.TXT $ ls file.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 ga ni - glejte opombe $ cd enako $ cd ~ enako $ cd ~/temp C:\GUIDO>CD \OTHER $ cd /other C:\GUIDO>CD ..\TEMP\TRASH $ cd ../temp/trash C:\GUIDO>MD NEWPROGS $ mkdir newprogs C:\GUIDO>MOVE PROG .. $ mv prog .. C:\GUIDO>MD \PROGS\TURBO $ mkdir /progs/turbo C:\GUIDO>DELTREE TEMP\TRASH $ rm -R temp/trash C:\GUIDO>RD NEWPROGS $ rmdir newprogs C:\GUIDO>RD \PROGS\TURBO $ rmdir /progs/turbo </verb></tscreen> Opombe: <enum> <item>Pri uporabi <tt/rmdir/ mora biti imenik, ki ga želimo zbrisati, prazen. Če bi radi zbrisali imenik z vsemi podimeniki in datotekami v njih, uporabite ukaz <tt/rm -rf/. Na lastno odgovornost, seveda. <item>Vijuga ali tilda (,<tt/˜/`) je bližnjica do imena vašega domačega imenika. Ukaz <tt/cd/ ali <tt/cd ˜/ vas prestavi naravnost v vaš domači imenik, kjerkoli že ste; ukaz <tt>cd ˜/tmp</tt> vas prestavi v imenik <tt/tmp/ vašega domačega imenika. <item>Ukaz <tt/cd -/ prekliče nazadnje izvedeni <tt/cd/. </enum> <sect>Disketniki, diski in podobno<label id="Floppies"> <p> Z enotami lahko v Linuxu delamo na dva načina: tako kakor dela DOS ali pa tako, kakor dela Unix. Izbira je vaša. <sect1>Delo z enotami po dosovsko <p> Večina distribucij Linuxa vsebuje paket Mtools, zbirko ukazov, ki so popolnoma enakovredni svojim dvojnikom v okolju DOS. Od njih se bolj ali manj ločijo le po začetnem ,m` v imenu; torej <tt/mformat/, <tt/mdir/, <tt/mdel/, <tt/mmd/ in tako naprej. Ukazi iz paketa podpirajo tudi dolga imena, dovolilnic za datoteke in imenike pa ne. Paket ukrojite po svojih željah z datoteko <file>/etc/mtools.conf</file> (vzorec je priložen zbirki) in z njim lahko uporabljate particije iz okolij DOS in Windows, CD-ROM ali enote ZIP. Neformatirane diskete pa ne morete formatirati z ukazom <tt/mformat/. Pred njim morate kot root prej pognati <tt/fdformat/: <tscreen><verb> # fdformat /dev/fd0H1440 </verb></tscreen> Pazite: pri tem načinu datotek na disketah ne morete uporabljati enako kakor datoteke na disku; ne morete na primer napraviti <tt/less a:besedilo.txt/. To je slabost opisanega načina dostopa do enot. <sect1>Delo z enotami v duhu Unixa <p> Unix upravlja enote drugače kakor DOS ali Windows. Logičnih enot ne ločuje z oznakami kot A: ali C:, ampak vse enote (diske, diskete, CD-ROM, prek NFS tudi diske v drugih računalnikih) vidimo kot del enotnega datotečnega sistema. Operaciji, s katero dodamo enoto v datotečni sistem, pravimo ,,priklop`` (angl. mount). Ko enote ne potrebujemo več (npr. ko želimo disketo izvreči iz disketnika), jo moramo ,,odklopiti`` (angl. unmount). Fizično formatiranje diska in ustvarjanje datotečnega sistema na njem sta dve različni stvari. Ukaz <tt/FORMAT A:/ v DOS napravi oboje, v Linuxu pa sta ukaza ločena. Ukaz za formatiranje smo si že ogledali malo prej, datotečni sistem na disketi pa napravimo takole: <tscreen><verb> # mkfs -t ext2 -c /dev/fd0H1440 </verb></tscreen> Namesto <tt/ext2/ lahko navedete tudi drugo vrsto datotečnega sistema, npr. <tt/vfat/ (priporočeno), <tt/dos/, <tt>minix</tt> in podobno. Ko ste s tem končali, disketo priklopite z ukazom: <tscreen><verb> # mount -t ext2 /dev/fd0 /mnt </verb></tscreen> Če ste v prejšnjem ukazu namesto <tt/ext2/ uporabili kako drugo vrsto datotečnega sistema, morate tudi zdaj navesti isto. Zdaj lahko uporabljate datoteke na disketi. Vse, kar ste doslej počeli z A: ali B:, se zdaj počne z <tt>/mnt</tt>. Zgledi: <tscreen><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:FILE.TXT $ jstar /mnt/file.txt C:\GUIDO>A: $ cd /mnt A:\>_ /mnt/$ _ </verb></tscreen> Ne pozabite, da morate po opravljenem delu <em/obvezno/ odklopiti enoto: <tscreen><verb> # umount /mnt </verb></tscreen> Verjetno ni treba poudarjati, da ukaza <tt/fdformat/ in <tt/mkfs/ uporabljate samo na neformatiranih disketah, ne pa na tistih, ki ste jih že uporabljali. Če bi radi uporabljali disketno enoto B:, zamenjajte vse <tt/fd0H1440/ in <tt/fd0/ v prejšnjih zgledih s <tt/fd1H1440/ oziroma <tt/fd1/. Odveč je verjetno tudi poudarjati, da vse, kar velja za disketnike, velja tudi za druge enote, kot so diski in CD-ROM. Takole priklopimo slednjega: <tscreen><verb> # mount -t iso9660 /dev/cdrom /mnt </verb></tscreen> To je bil ,,uradni`` način priklopa disketnikov in drugih enot, zdaj pa še zvijača, s katero si lahko delo malce olajšate. Nerodno je namreč, da lahko priklaplja in odklaplja enote samo root; včasih bi bilo prav uporabno, če bi vsaj diskete in CD-ROM lahko priklapljali tudi drugi uporabniki. <itemize> <item>Kot root napravite naslednje (zgled predpostavlja, da je CD-ROM priključen na <file>/dev/hdb</file>, torej kot druga enota na vodilu EIDE; prilagodite svojim razmeram): <tscreen><verb> # mkdir /mnt/floppy ; mkdir /mnt/cdrom # chmod 777 /mnt/floppy /mnt/cd* # # Preverite, ali je enota za CD-ROM pravilna! # chmod 666 /dev/hdb ; chmod 666 /dev/fd* </verb></tscreen> <item>V datoteko <file>/etc/fstab</file> dodamo naslednje tri vrstice: <tscreen><verb> /dev/hdb /mnt/cdrom iso9660 ro,user,noauto 0 0 /dev/fd0 /mnt/floppy vfat user,noauto 0 0 </verb></tscreen> </itemize> Disketo z datotečnim sistemom DOS, disketo z datotečnim sistemom ext2 ali CD-ROM lahko zdaj priklopimo enostavno z ukazi: <tscreen><verb> $ mount /mnt/floppy $ mount /mnt/cdrom </verb></tscreen> Enoti <file>/mnt/floppy</file> in <file>/mnt/cdrom</file> lahko zdaj priklaplja in odklaplja vsak uporabnik. Opozoriti pa vas moramo, da je prav to s stališča varnosti vašega sistema tudi slabost. Dva uporabna ukaza sta še <tt/df/, ki poda informacije o trenutno priklopljenih enotah, ter <tt/du imenik/, ki izpiše porabo prostora za podani imenik. <sect1>Varnostne kopije<label id="Backing Up"> <p> Pri izdelavi varnostnih kopij si lahko pomagate z več paketi. Najosnovnejši ukaz, s katerim lahko kot root naredite varnostno kopijo imenika na disketo (ali več disket, odvisno od velikosti), pa je: <tscreen><verb> # tar -M -cvf /dev/fd0H1440 arhivirani_imenik/ </verb></tscreen> Pazite, da imate ob tem formatirano disketo v disketniku, še več nadaljnih pa pripravljenih. Podatke lahko v celoti restavrirate tako, da vtaknete prvo disketo v disketnik in natipkate: <tscreen><verb> # tar -M -xpvf /dev/fd0H1440 </verb></tscreen> <sect>Kaj pa okna? <p> Okolju Windows ustreza v Linuxu okensko okolje X Window System Ali, na kratko, X11. Za razliko od Macintosha ali Windows prvo izhodišče pri zasnovi X11 nista bila enostavna raba ali lep videz, ampak le ponujanje grafičnih možnosti za delovne postaje s sistemom Unix. Poglavitne razlike med Windows in X11 so naslednje: <itemize> <item>Windows je po vsem svetu videti bolj ali manj podobno, X11 pa ne: neprimerno bolj si ga je mogoče ukrojiti. Videz okolja X11 določa ključni element, imenovan ,,upravljalnik oken`` (angl. window manager). In izbirate lahko med široko paleto slednjih: <tt/fvwm/ -- osnovni, a prijeten in učinkovit pri delu s pomnilnikom; <tt/fvwm2-95/, s katerim je vaš Linux videti kot Windows 95; <tt/Afterstep/, ki mu da videz okolja NEXTstep, in tako naprej. Upravljalnik oken navadno poženemo v datoteki <file>˜/.xinitrc</file>. <item>Upravljalnik oken lahko nastavimo tako, da se okna vedejo tako kakor v okolju Windows: z miško kliknemo okno in ga tako prikličemo na površje. Druga možnost pa je, da priplava na površje samodejno, ko z miško zapeljemo kazalček nanj. Tudi postavljanje novih oken na zaslon lahko poteka samodejno ali pa interaktivno. Slednje se zgodi, če se ob zagonu programa namesto programa na zaslonu prikaže nekakšen okvir. Z miško pripeljite okvir na želeno mesto in pritisnite levi gumb. <item>Vedenje upravljalnika oken lahko večinoma ukrojite po svoje s spremembo te ali one nastavitvene datoteke. Preberite navodila za upravljalnik oken, ki ga uporabljate; datoteka se lahko imenuje <file>.fvwmrc</file>, <file>.fvwm2rc95</file>, <file>.steprc</file> in tako naprej. Vzorčno nastavitveno datoteko navadno najdete v <file>/etc/X11/upravljalnik_oken/system.upravljalnik_oken</file>. <item>Programi za X11 so pisani tako, da uporabljajo posebne knjižnice grafičnih elementov (angl. ,,widget set``). Ker je slednjih več, so tudi programi med seboj videti različno. Najosnovnejši nabor grafičnih prvin je Athena, uporabljajo ga <tt/xdvi/, <tt/xman/ ali <tt/xcalc/. Drugi uporabljajo Motif (npr. <tt/netscape/), Tcl/Tk, Qt, Gtk, XForms ali kaj četrtega. Nekatere, ne pa vse od teh knjižnic, ponujajo približno enak videz in občutek kakor Windows. <item>Za občutek malo prej povedano žal ne velja vedno. Na primer, če z miško pobarvate vrstico besedila in pritisnete <BACKSPACE>, verjetno pričakujete, da bo vrstica izginila, kajne? Res bo, če program uporablja knjižnice Motif, Qt, Gtk ali Tcl/Tk, ne pa tudi, če uporablja Atheno. <item>Delovanje drsnikov in spreminjanje velikosti oken je tudi odvisno od uporabljenega upravljalnika oken ter knjižnice grafičnih elementov. Namig: če se drsnik ne vede tako, kakor bi pričakovali, uporabite namesto levega srednji gumb na miški (ali levega in desnega hkrati, če imate miško s samo dvema gumboma). <item>Programi nimajo nujno privzete ikone; lahko pa jih imajo mnogo. V večini upravljalnikov oken se pokaže menu, če kliknete ozadje (,,korensko okno``, angl. root window). Odveč je govoriti, da je mogoče tudi menu ukrojiti po svoje. Videz korenskega okna lahko spremenite z ukazoma <tt/xsetroot/ ali <tt/xloadimage/. <item>Na odložišče (angl. clipboard) lahko odlagamo le besedilo, in še to se vede nenavadno. Tisti hip, ko ste pobarvali besedilo, je to tudi že na odložišču; premaknite se, kamorkoli želite, in pritisnite srednji gumb na miški, pa ga boste prenesli na novi kraj. Na voljo je tudi program <tt/xclipboard/, ki vas oskrbi z več predalčki za odlaganje. <item>,,Povleci in spusti`` deluje samo v tistih programih za X11, ki to podpirajo. </itemize> Pa vseeno nekaj dobrih novic. Projekta K Desktop Environment (KDE) <url url="http://www.kde.org"> in Gnome <url url="http://www.gnome.org"> sta si zastavila za cilj, da napravita X11 v vedenju enako koherentenkakor Windows. Oba sta videti sijajno in namizja Windows ne boste več pogrešali! <sect>Ukrojitev sistema <p> <sect1>Sistemske inicializacijske datoteke<label id="System Initialisation"> <p> Dve pomembni datoteki v DOS sta <file>AUTOEXEC.BAT</file> in <file>CONFIG.SYS</file>, ki se prebereta ob zagonu in inicializirata sistem, nastavita nekaj spremenljivk okolja (npr. PATH in FILES) in po možnosti zaženeta kakšen program ali skripta. Windows 95 in poznejše različice imajo tudi nesrečni register, ki je vir številnih težav in zapletov. V Linuxu je inicializacijskih datotek mnogo. Nekatere od njih so take, da se jih raje ne dotikajte, če ne veste zelo dobro, kaj počenjate. Te navadno najdemo v imeniku <file>/etc</file>. Vse nastavitvene datoteke so tekstovne datoteke, ki jih enostavno spreminjamo s katerimkoli urejevalnikom besedil. Če želite samo nastaviti PATH ali kakšno drugo spremenljivko okolja, spremeniti prijavno sporočilo ali ob zagonu avtomatično zagnati katerega od programov, vam bo prišel prav naslednji seznam datotek: <tscreen><verb> DATOTEKE OPOMBE /etc/issue nastavi sporočilo pred prijavo /etc/motd nastavi sporočilo takoj po prijavi /etc/profile nastavi $PATH in druge spremenljivke /etc/bashrc nastavi vzdevke, funkcije ipd. /home/uporabnik/.bashrc nastavi uporabniške vzdevke in funkcije /home/uporabnik/.bash_profile ali /home/uporabnik/.profile nastavi uporabniško okolje, zažene prog. </verb></tscreen> Če slednja datoteka obstaja (opazite, da je skrita datoteka), se bo prebrala in tolmačila po prijavi. Za zgled si oglejmo ta <tt/.bash_profile/: <code> # To je komentar echo Spremenljivke okolja: printenv | less # podobno kakor ukaz SET v okolju DOS alias d='ls -l' # enostaven in razumljiv zgled, kaj so vzdevki alias up='cd ..' echo "Ponovimo, pot je "$PATH echo "Današnji datum je `date`" # uporabimo izpis ukaza ,,date`` echo "Lep dan želim, "$LOGNAME # Sledi funkcija ctgz() # Izpis vsebine arhivov .tar.gz { for file in $* do gzip -dc ${file} | tar tf - done } # Konec .profile </code> Pravilno ste uganili, <tt/$PATH/ in <tt/$LOGNAME/ sta spremenljivki okolja. Še več zanimivih je, preberite si priročnik za <tt/less/ in <tt/bash/. Naslednja nastavitev v datoteki <file>/etc/profile</file> predstavlja približek za nastavitev pozivnika <tt>PROMPT $P$G</tt> v DOS: <tscreen><verb> export PS1="\w\\$ " </verb></tscreen> <sect1>Programske inicializacijske datoteke <p> V Linuxu si lahko tako rekoč karkoli ukrojite po svojih potrebah. Večina programov ima eno ali tudi več inicializacijskih datotek, s katerimi lahko eksperimentirate. Navadno se inicializacijski datoteki za program <tt/moj_program/ pravi kar <file>.moj_programrc</file> in počiva v domačem imeniku. Prve, ki bodo verjetno prišle na vrsto za spreminjanje, so: <itemize> <item><file>.inputrc</file>: uporablja jo ukazna lupina <tt/bash/ za določanje pomena tipk <item><file>.xinitrc</file>: prebere jo <tt/startx/ pri zagonu X Window System <item><file>.fvwmrc</file>: uporablja jo upravljalnik oken <tt/fvwm/ <item><file>.joerc</file>: uporablja jo urejevalnik <tt/joe/ <item><file>.jedrc</file>: uporablja jo urejevalnik <tt/jed/ <item><file>.pinerc</file>: uporablja jo program <tt/pine/ za delo z elektronsko pošto <item><file>.Xdefault</file>: uporabljajo jo številni programi za X11 </itemize> Za vse naštete in vse druge, na katere boste naleteli: preberite si priročnik. Za konec mi dovolite, da vam priporočim v branje spis Configuration HOWTO. Najdete ga na <tt><url url="http://www.linuxdoc.org/HOWTO/Config-HOWTO.html"></tt>. <sect>Osnove povezave v omrežja <p> Ne le, da je klicna povezava (angl. dialup networking) v internet dostopna tudi v Linuxu, temveč je tudi hitrejša in bolj stabilna. Vse o tem najdemo pod geslom ,,PPP``, ki je ime protokola za povezavo v internet prek modemov. Potrebujete le orodje, ki pokliče vašega ponudnika internetnih storitev (PIS) in vzpostavi povezavo. Elektronsko pošto prenašate iz strežnika svojega ponudnika internetnih storitev s programom, ki mu pravimo prinašalnik e-pošte (angl. email fetcher). Ta za povezavo s strežnikom PIS uporabi protokol PPP. Ko je pošta prenesena, je tako, kakor če bi bila dostavljena neposredno v vaš računalnik. S katerimkoli programom za branje pošte (angl. mail user agent, MUA), npr. <tt>pine</tt>, <tt>mutt</tt>, <tt>elm</tt> itn., lahko zdaj pošto prebirate, odgovarjate nanjo ipd. V Windows se klicna zveza vzpostavi samodejno, ko poženemo kak program za delo z internetom. V Linuxu je nasprotno: najprej vzpostavimo zvezo, potem pa poženemo program. Programček <tt>diald</tt> omogoča tudi način dela, ki ste ga vajeni. Namestitev in ukrojitev omrežja na klic je bilo svojčas eno najtežjih opravil, a zdaj ni več tako. Nadaljnje podrobnosti najdete v ,,Configuration HOWTO``. Za konec še beseda o ,,Omrežni soseščini``. Vaš računalnik z Linuxom se lahko vede enako kakor računalniki z Windows NT/9x v krajevnem omrežju Microsoft Windows! Čudežna besedica tu je Samba -- ne temperamentni brazilski ples, temveč izvedba protokola SMB za Linux. Več o Sambi najdete na naslovu <url url="http://samba.anu.edu.au/samba">. <sect>Kanček programiranja <p> <sect1>Skripte: datoteke .BAT na steroidih<label id="Shell Scripts"> <p> Če ste, tako kakor pisec, uporabljali datoteke .BAT za to, da ste dolge ukazne vrstice nadomestili z bližnjicami, ste medtem verjetno že ugotovili, da gre v Linuxu to z vzdevki v datoteki <file>.profile</file>. Če pa so bile vaše datoteke .BAT bolj zapletene, boste gotovo navdušeni nad skriptnim jezikom, ki ga ponuja ukazna lupina. Vsaj tako močan je kakor dobri stari QBasic, če ne bolj. Pozna spremenljivke, strukture kot <tt/while/, <tt/for/, <tt/ case/, <tt/if..then..else/, in veliko drugih priboljškov; lahko ga imamo za dober nadomestek ,,pravih`` programskih jezikov. Skript -- ustreznik datoteke .BAT v okolju DOS -- je enostavna tekstovna datoteka z ukazi, ki jo lahko napišemo s katerimkoli urejevalnikom, shranimo in napravimo izvedljivo z ukazom <tt/chmod +x <moja_skript>/. Poženemo ga enostavno tako, da vtipkamo njegovo ime. Drobno opozorilo. S sistemskim urejevalnikom <tt/vi/ ima večina novih uporabnikov precejšnje težave. Tu ne bomo razlagali, kako se ga uporablja, bralec naj poišče razlago v knjigi ,,Namestitev in začetek dela z Linuxom`` ali pa v priročnikih, ki so dostopni v internetu. Zadovoljiti se boste morali z najnujnejšim: <itemize> <item>Novo besedilo vnesemo tako, da pritisnemo tipko <tt>i</tt> in začnemo vnašati <item>Znak zbrišemo tako, da pritisnemo <ESC>, zatem pa <tt>x</tt> <item>Urejevalnik zapustimo, ne da bi shranili spremembe, s pritiskom na tipko <ESC>, zatem pa vtipkamo <tt>:q!</tt> <item>Shranimo in končamo s pritiskom na <ESC>, zatem vtipkamo <tt/:wq/. </itemize> Dober urejevalnik za začetnike je <tt/joe/. Če ga pokličemo z imenom <tt/jstar/, se vede enako kakor urejevalnik v DOS. <tt/jed/ v načinu WordStar ali IDE je še boljši. O tem, kje najdete prvega in drugega, se poučite v razdelku <ref id="Programs" name="Kje najdemo programe">. Pisanje skript v <tt/bash/ je tako obsežna tema, da bi sama zahtevala celotno knjigo. Tu se ne bomo več spuščali v globine te teme, ampak bomo navrgli samo še en zgled skripte, iz katerega se lahko naučite nekaj osnovnih pravil: <code> #!/bin/sh # zgled.sh # To je komentar # Ne spreminjajte prve vrstice! echo "Sistem: `uname -a`" # uporabimo izpis zunanjega ukaza uname echo "Tej skripti je ime $0" # vgrajene spremenljivke echo "Podali ste $# parametrov; ti so: "$* echo "Prvi parameter je: "$1 echo -n "Vaše ime? " ; read ime echo Opazite razliko: "hi $ime" # dvojni narekovaji echo Opazite razliko: 'hi $ime' # enojni narekovaji DIRS=0 ; FILES=0 for file in `ls .` ; do if [ -d ${file} ] ; then # imenik? DIRS=`expr $DIRS + 1` # DIRS = DIRS + 1 elif [ -f ${file} ] ; then FILES=`expr $FILES + 1` fi case ${file} in *.gif|*jpg) echo "${file}: slika" ;; *.txt|*.tex) echo "${file}: besedilo" ;; *.c|*.f|*.for) echo "${file}: izvirna koda programa" ;; *) echo "${file}: druga datoteka" ;; esac done echo "Imenikov je ${DIRS}, datotek pa ${FILES}" ls | grep "ZxY--!!!WKW" if [ $? != 0 ] ; then # izhodna koda zadnjega ukaza echo "ZxY--!!!WKW not found" fi echo "dovolj... 'man bash' vam bo postregel z dodatnimi informacijami." </code> <sect1>C za vas <!-- Besedna igra C for Yourself je na žalost neprevedljiva --> <p> V Unixu je sistemski jezik C, najsi vam je všeč ali ne. Na voljo pa je tudi kopica drugih jezikov: java, fortran, pascal, lisp, perl, awk... Ker verjamemo, da C že znate, bomo tu le navedli nekaj napotkov za tiste, ki vas je razvadil turbo C++ ali kaj sorodnega. Prevajalnik za C na Linuxu se imenuje <tt/gcc/ in ne obsega takih lepot kakor njegovi dvojniki v DOS: nima integriranega okolja za delo, interaktivne pomoči, integriranega razhroščevalnika in podobnega. Je res samo surovi prevajalnik, ki ga poženemo iz ukazne vrstice (kot prevajalnik pa je res zelo močan in učinkovit). Običajni programček <file>hello.c</file> prevedemo z ukazom: <tscreen><verb> $ gcc hello.c </verb></tscreen> To bo proizvedlo izvedljiv program z imenom <file>a.out</file>. Če želimo izvedljiv program poimenovati kako drugače, lahko to navedemo v ukazni vrstici, npr.: <tscreen><verb> $ gcc -o hola hello.c </verb></tscreen> Če bi radi v izvedljiv program povezali še knjižnico, dodamo izbiro -l<ime_knjižnice>. Takole na primer povežemo program s standardno matematično knjižnico: <tscreen><verb> $ gcc -o matemprog matemprog.c -lm </verb></tscreen> (Izbira <tt>-l<nekaj></tt> pove prevajalniku <tt/gcc/, naj v izvedljiv program poveže še knjižnico <file>/usr/lib/lib<nekaj>.a</file>; tako <tt/-lm/ iz prejšnjega zgleda poveže knjižnico <file>/usr/lib/libm.a</file>). To je tako rekoč vse, kar boste potrebovali za prevajanje kratkih programčkov. Kadar pa pišete dolg program, katerega izvirna koda je razbita na več manjših datotek, si boste precej olajšali delo s programom <tt/make/. Recimo, da pišete razčlenjevalnik izrazov. Izvirna koda se imenuje <file>parser.c</file> in kliče deklaracije iz glav <file>parser.h</file> in <file>xy.h</file>. Funkcije, definirane v <file>parser.c</file> pa želite uporabiti v drugem programu, recimo <file>calc.c</file>, ki prav tako prebere glavo <file>parser.h</file>. Kakšna zmešnjava! Kaj morate torej napraviti, da prevedete <file>calc.c</file>? Napisati morate tako imenovani <file>Makefile</file>, ki vodi evidenco o odvisnostih med izvirnimi in prevedenimi datotekami. V našem primeru bi bila taka: <code> # makefile za prevajanje calc.c # Vnesite <TAB>, kjer je označeno calc: calc.o parser.o <TAB>gcc -o calc calc.o parser.o -lm # Program calc je odvisen od dveh prevedenih datotek: calc.o in parser.o calc.o: calc.c parser.h <TAB>gcc -c calc.c # calc.o je odvisen od izvirne datoteke calc.c in glave parser.h parser.o: parser.c parser.h xy.h <TAB>gcc -c parser.c # parser.o je odvisen od izvirne datoteke parser.c in dveh glav # To je vse. </code> Shranite to datoteko pod imenom <file>Makefile</file>. Zdaj preprosto napišete <tt/make/, ki bo prevedel cel paket. Alternativno jo lahko shranite tudi pod drugačnim imenom, denimo <file>calc.mak</file>, le da boste to ime zdaj morali navesti kot parameter: <tt/make -f calc.mak/. Več o tem se boste naučili ob branju priročnika. Tudi funkcije iz standardne knjižnice imajo svoje strani v priročniku, in sicer v tretjem poglavju. Zgled kaže, kako do navodil za funkcijo <tt/printf/: <tscreen><verb> $ man 3 printf </verb></tscreen> Napake v programih lahko odpravljate z razhroščevalnikom <tt/gdb/. Ukaz <tt/info gdb/ vas bo poučil o podrobnostih. Programerju je na voljo zelo veliko število različnih knjižnic. Med prvimi, ki se jih boste morda ogledali, sta <tt/ncurses/, ki podpira delo z znakovnim zaslonom, ter <tt/svgalib/ za delo v grafičnem načinu. Številni urejevalniki se tudi lahko vedejo kot integrirano okolje.<tt/emacs/ in <tt/jed/, na primer, podpirata barvanje sintakse, zamikanje programske kode in podobno. Alternativa pa je paket <tt/rhide/, ki ga lahko snamete z<tt><url url="ftp://metalab.unc.edu:/pub/Linux/devel/debuggers/"></tt>. Je kopija Borlandovega integriranega okolja in vam bo skoraj zagotovo všeč. <sect1>Programiranje v oknih X <p> Če ste dovolj pogumni, da se boste lotili programiranja za X11 (ni tako zapleteno, kakor se zdi sprva!), je na voljo več knjižnic, ki pisanje programov za X11 znatno olajšajo. Glavni mesti, ki ju boste želeli obiskati, sta domača stran knjižnice GTK+, <url url="http://www.gtk.org">, in domača stranj knjižnice Qt, <url url="http://www.troll.no">. Knjižnica GTK+, zasnovana za jezik C, obsega nabor grafičnih elementov, ki je bil prvotno uporabljen za grafični paket GIMP <url url="http://www.gimp.org">, zdaj pa ga uporablja tudi namizje GNOME. Kdeveloper pa, na drugi strani, temelji na knjižnici Qt, prirejeni za delo s C++, in uporabljeni v namizju KDE. Najverjetneje boste uporabili eno od teh dveh knjižnic. Nekatera najboljša orodja za slikovno programiranje so Kdevelop za Qt, <url url="http://www.kdevelop.org"> in Glade za GTK+, <url url="http://glade.pn.org">. Podrobnejše podatke najdete tudi na strani <url url="http://www.free-soft.org/guitool/">. <sect2>Programiranje za več strojnih okolij <p> Kaj ne bi bilo sijajno, če bi lahko pisali programe, ki bi se s prevajalnikom <tt>gcc</tt> brez sprememb prevedli tako v Linuxu kot v Windows? Medtem ko nastaja to pisanje, je na voljo kar nekaj kolikor toliko stabilnih naborov grafilčnih elementov, ki delujejo v več okoljih. Če damo prednost stabilnosti in popolnosti, se izbor bolj ali manj zoži na eno samo ime: FLTK, Fast Light Tool Kit <url url="http://www.fltk.org">. Presenetljivo majhen, hiter in stabilen je. Ima tudi delno vizualni sestavljalnik programov, imenovan Fluid. <sect>Preostali 1% <p> Pravzaprav več kot le 1%... <sect1>Poganjanje programov za DOS/Windows <p> Da, do neke mere lahko v Linuxu poganjamo tudi programe, pisane in prevedene za DOS ali Windows! Dva razmeroma dobra posnemovalnika sta Dosemu <url url="http://www.dosemu.org/"> in WINE <url url="http://www.winehq.com/">. Slednji je iz izdaje v izdajo boljši in seznam programov, ki tečejo v njem, je vse daljši. Med njimi sta tudi Microsoft Word in Excel. <sect1>Arhiviranje datotek: tar in gzip <p> Programa <tt/tar/ in <tt/gzip/ sta standardno uporabljana programa za arhiviranje in stiskanje datotek v Unixu. Prvi rabi za izdelovanje arhivov -- podobno kot <tt/PKZIP/ ali <tt>Winzip</tt>, le da arhiva ne stisne. Nov arhiv ustvarimo takole: <tscreen><verb> $ tar -cvf <arhuvska_datoteka.tar> <datoteka> [datoteka...] </verb></tscreen> Iz arhiva izluščimo posamezno datoteko ali več datotek: <tscreen><verb> $ tar -xpvf <arhivska_datoteka.tar> [datoteka...] </verb></tscreen> Vsebino arhiva izpišemo z ukazom: <tscreen><verb> $ tar -tf <arhivska_datoteka.tar> | less </verb></tscreen> Arhiv (ali kakršnokoli drugo datoteko) lahko stisnemo s programoma <tt/compress/ ali <tt/gzip/. Drugi je novejši in precej bolj učinkovit pri stiskanju, zato uporabo prvega odsvetujemo. <tscreen><verb> $ compress <datoteka> $ gzip <datoteka> </verb></tscreen> Rezultat je stisnjena datoteka, ki ima bodisi pripono .Z (<tt/compress/) ali .gz (<tt/gzip/). Nobeden od njiju ni arhivski program in stisneta le po eno datoteko naenkrat. Stisnjene datoteke raztegnemo z nasprotnima ukazoma: <tscreen><verb> $ compress -d <datoteka.Z> $ gzip -d <datoteka.gz> </verb></tscreen> Več o prvem in drugem si preberite v priročniku. Poznamo tudi programe <tt/unarj/, <tt/zip/ in <tt/unzip/. Slednja sta povsem združljiva s parom PKZIP/PKUNZIP. Arhivske datoteke s pripono <tt/.tar.gz/ ali <tt/.tgz/ so v svetu Unixa enako pogoste kakor datoteke .ZIP v svetu DOS. Gre za datoteke, ki so bile najprej arhivirane s programom <tt/tar/, zatem pa še stisnjene s programom <tt/gzip/. Vsebino stisnjene arhivske datoteke si ogledamo tako, da programu <tt/tar/ dodatno podamo še izbiro <tt/-z/: <tscreen><verb> $ tar ztf <datoteka.tar.gz> | less </verb></tscreen> <sect1>Nameščanje dodatnih programov<label id="Install"> <p> Najprej in predvsem: nameščanje dodatnih programov je delo upravitelja sistema. Večina programskih paketov za Linux je dostopna kot arhiv <tt>.tar.gz</tt>. V arhivu je navadno podimenik z imenom programskega paketa, v njem pa vse datoteke in morebitni podimeniki. Dodatne programe navadno nameščamo v imenik <tt>/usr/local</tt>. Arhiv razpakiramo z ukazom: <tscreen><verb> # tar zxf <arhiv.tar.gz> </verb></tscreen> Navodila za namestitev so navadno v datoteki <file>README</file> ali <file>INSTALL</file>. Dostikrat je programski paket na voljo le kot izvirna koda, kar pomeni, da ga moramo najprej prevesti. Navadno gre to enostavno z zaporedjem ukazom <tt>./configure</tt>, <tt/make/ in <tt/make install/. Za prevajanje seveda potrebujemo prevajalnik <tt/gcc/ ali <tt/g++/. Drugi arhivi morajo biti razpakirani iz korenskega imenika <file>/</file>; taki so recimo arhivi Slackware (<tt/.tgz/). Spet v tretjih ni podimenika, ampak se datoteke razpakirajo kar v trenutnem imeniku. Vedno je pametno prej z izbiro <tt/-t/ izpisati vsebino arhiva, preden ga z izbiro <tt/-x/ v resnici razpakiramo. Distribucije Debian, Red Hat in druge uporabljajo lasten arhivski format; prva <tt/.deb/, drugi dve <tt/.rpm/. Posebno drugi format je precej razširjen; take pakete namestimo enostavno z ukazom: <tscreen><verb> # rpm -i paket.rpm </verb></tscreen> <sect1>Nasveti, brez katerih ne gre <p> <bf/Pomikanje nazaj po izpisu/: pri izpisovanju na zaslon se dostikrat zgodi, da tisto, kar je zanimivo, ravnokar izgine na vrhu zaslona. Nekaj zadnjih strani izpisa (koliko, je odvisno od grafične kartice) je kljub vsemu še shranjeno, do njih pridete s pritiskom na tipki <SHIFT>+<PAGE UP>. <bf/Vrnitev zaslona v normalno stanje/: če ste na zaslon s programoma <tt/more/ ali <tt/cat/ izpisali kakšno čudno, recimo binarno datoteko, je zaslon lahko ostal v neuporabnem stanju. Poskusite na slepo natipkati <tt/reset/ ali pa naslednji niz znakov: <tt/echo CTRL-V ESC c RETURN/. <bf/Odreži in prilepi/: za znakovni zaslon glej spodaj; v X11 kliknite in povlecite miško, da označite (pobarvate) besedilo, potem kazalček prestavite na želeno mesto in pritisnite srednji gumb na miški (ali levega in desnega hkrati, če imate miš z dvema gumboma). Na voljo je še odlagališče <tt/xclipboard/ (na katero lahko odlagamo samo besedilo); naj vas pri njem ne zmede zelo dolg odzivni čas. <bf/Miška in znakovni zaslon/: če ste namestili paket <tt/gpm/, gonilnik za miško za znakovni zaslon, lahko s klikom in potegom označite besedilo, s klikom z desnim gumbom pa ga prenesete na nov kraj. Deluje tudi prek več navideznih konzol. <bf/Sporočila jedra operacijskega sistema/: v datoteko <file>/var/adm/messages</file> (ali <file>/var/log/messages</file>) se zapisujejo sporočila jedra, tudi izpis ob zagonu. Tudi ukaz <tt/dmesg/ je uporaben. <sect1>Kje najdemo programe<label id="Programs"> <p> Če vas skrbi, kje boste našli nadomestila za svoje stare programe z DOS/Windows, vam svetujemo, da se najprej obrnete na glavni arhiv programja za Linux: <tt><url url="ftp://metalab.unc.edu/pub/Linux"></tt>. Druga imenitna začetna mesta so ,,Linux Applications and Utilities Page`` na <tt><url url="http://www.xnet.com/~blatura/linapps.shtml"></tt>, ,,uradna`` stran Linuxa <tt><url url="http://www.linux.org"></tt> ter <tt><url url="http://freshmeat.net"></tt>. <sect1>Posladki <p> V Linuxu lahko počenjate cel kup stvari, ki jih je bilo nerodno, težko ali pa sploh nemogoče izvesti v DOS/Windows. Tole je kratek seznam; le za okus: <itemize> <item>Ukaz <tt/at/ omogoča izvajanje ukazov ob določenem času <item><tt/awk/ je preprost, a zmogljiv jezik za delo s podatkovnimi datotekami (in ne samo z njimi). Če je <tt/podatki.dat/ tabela s podatki, lahko z naslednjim enovrstičnim programčkom izpišete prvo in četrto polje vseh tistih zapisov, ki imajo v drugem polju niz ,,abc``: <tscreen><verb> $ awk '$2 ~ "abc" {print $1, "\t", $4}' podatki.dat </verb></tscreen> <item>Ukaz <tt/cron/ je uporaben za izvajanje periodičnih opravil (ob danem dnevu in/ali uri). Glej <tt/man 5 crontab/ za podrobnosti. <item>Ukaz <tt/file <datoteka>/ poskusi uganiti zvrst <tt/datoteke/ (besedilo, program, arhiv ipd.). <item>Ukaz <tt/find/ (glej tudi razdelek <ref id="Directories: Trans" name="Imeniki: vzporedba ukazov">) je eden najmočnejših in najbolj uporabnih. Uporablja se za iskanje datotek, ki zadoščajo navedenim pogojem, obenem pa lahko v njih tudi delujemo. Splošna skladnja ukaza je: <tscreen><verb> $ find <imenik> <izraz> </verb></tscreen> kjer <izraz> zajema pogoje iskanja ter delovanje na najdene datoteke. Zgledi: <tscreen><verb> $ find . -type l -exec ls -l {} \; </verb></tscreen> poišče vse datoteke, ki so simbolične povezave, in izpiše, kam kažejo. <tscreen><verb> $ find / -name "*.old" -ok rm {} \; </verb></tscreen> poišče vse datoteke s pripono <tt/.old/ in jih zbriše, pri vsaki pa vpraša za potrditev. <tscreen><verb> $ find . -perm +111 </verb></tscreen> poišče vse izvedljive datoteke. <tscreen><verb> $ find . -user root </verb></tscreen> poišče vse datoteke, katerih lastnik je root. Možnosti je še veliko, oglejte si priročnik. <item>Ukaz <tt/grep/ poišče regularne izraze (seveda tudi enostavne nize) v datotekah. Spodnji zgled preišče vse datoteke s pripono <tt/.tex/ v trenutnem imeniku in izpiše tiste, v katerih nastopa niz ,,geološk*``: geološka, geološkega, geološkim... <tscreen><verb> $ grep -l "geološk*" *.tex </verb></tscreen> Izvedba <tt>zgrep</tt> deluje na datotekah, stisnjenih z <tt>gzip</tt>. <item><bf/Regularni izraz/ je na videz zapleten, vendar hudirjevo zmogljiv način iskanja po besedilih. Naslednji regularni izraz, <tt>^a[^a-m]X{4,}txt$</tt>, poišče vse vrstice, ki zadoščajo naslednjim pogojem: začnejo se z ,a`, temu sledi katerikoli znak, razen črk iz intervala a--m, temu sledijo štiri ali več črk X, konča pa se s ,,txt``. Regularne izraze poznajo vsi spodobni urejevalniki, <tt/less/, in številni drugi programi. <tt>man grep</tt> vam lahko rabi kot uvod v regularne izraze. <item>Ukaz <tt/script <dnevnik>/ piše dnevniško datoteko komunikacije uporabnik-računalnik v navedeno datoteko, dokler ne vtipkamo ukaza <tt/exit/. Uporabno pri odkrivanju napak. <item>Ukaz <tt/sudo/ selektivno dovoljuje uporabnikom nekatera opravila, ki so sicer dovoljena samo upravitelju sistema, npr. formatiranje in priklapljanje diskov. Preberite priročnik za dodatne informacije. <item>Ukaz <tt/uname -a/ izpiše osnovne informacije o sistemu. <item>Ukaza <tt>zcat</tt> in <tt>zless</tt> sta uporabna za pregledovanje stisnjenih datotek, ne da bi jih zares raztegnili. Uporabimo jih lahko tudi pri nizanju ukazov. Zgled: <tscreen><verb> $ zless textfile.gz $ zcat textfile.gz | lpr </verb></tscreen> <item>Naslednji ukazi tudi lahko kdaj pridejo prav: <tt>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.</tt> Preberite ustrezne strani priročnika. </itemize> <sect1>Vadba Unixa v okolju DOS <p> Če verjamete ali ne, tudi za DOS in Windows so na voljo imenitna orodja, ki ponujajo okolje, podobno Unixu. Eno je zbirka DJGPP (<url url="http://www.delorie.com/djgpp/">) za DOS, Cygwin (<url url="http://cygwin.com/">) pa je nekoliko popolnejši nabor, ki pa deluje samo v okolju Win32. Prvi in drugi ponujata enake pripomočke in razvojna orodja GNU kakor Linux, seveda pa ne pričakujte enako stabilnega sistema ali hitrosti. Če bi radi pokusili, približno kakšno je življenje v Linuxu, preizkusite DJGPP. Snemite in prenesite naslednje datoteke (med pisanjem tega prevoda je zadnja izdaja 2.03): <tt/djdev203.zip/, <tt/bnu2951.zip/, <tt/bsh204b.zip/, <tt/fil40b.zip/, <tt/find41b.zip/, <tt/grep24b.zip/, <tt/gwk306b.zip/, <tt/lss358b.zip/, <tt/shl112b.zip/. Pakete spremljajo navodila za namestitev, dodatno pomoč pa najdete v novičarski skupini <url url="news:comp.os.msdos.djgpp">. Še posebej uporaba ukazne lupine <tt/bash/ je prijetna osvežitev v DOS/Windows. Nastavite jo tako, da popravite priloženo datoteko <tt/BOOT.BAT/ tako, da bo primerna za vašo namestitev. Potem prepišite datoteke v domači imenik v razdelku DOS z naslednjimi: <tscreen><verb> # to 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></tscreen> <tscreen><verb> # to je _bprof if [ -f ~/_bashrc ]; then . ~/_bashrc fi PS1='\w\$ ' PS2='> ' CDPATH="$CDPATH:~" # spremenljivke, ki jih potrebuje less(1) LESS="-M-Q" # dolgi pozivnik, tiho delovanje LESSEDIT="%E ?lt+%lt. %f" # urejaj zgornjo vrstico VISUAL="jed" # urejevalnik LESSCHARSET=latin1 # prikaži ne-ASCII znake export PS1 PS2 CDPATH LS_OPTIONS LESS LESSEDIT LESSOPEN VISUAL LESSCHARSET </verb></tscreen> <sect1>Pripone imen datotek in programi, ki jih uporabljajo <p> Pri imenih datotek ste morda naleteli na celo kopico različnih pripon. Če izpustimo nekatere bolj eksotične (datoteke s pisavami in podobno), naslednja tabela podaja, kaj je kaj. <itemize> <item><tt/1 ... 8/: sestavki referenčnega priročnika (angl. man pages). Uporablja jih program <tt/man/. <item><tt/arj/: arhivi, napravljeni s programom <tt/arj/. <item><tt/dvi/: izhodna datoteka, ki jo izdela TeX (glej spodaj). Prikažete jo s programom <tt/xdvi/, s programom <tt/dvips/ pa jo lahko odtisnete ali predelate v postscriptni format (pripona <tt/.ps/). <item><tt/gz/: stisnjena datoteka; raztegnemo jo z ukazom <tt/gzip -d/. <item><tt/info/: hipertekstna datoteka informacijskega sistema GNU texinfo. Prikažete jo s programom <tt/info/. <item><tt/lsm/: datoteka Linux Software Map. Navadna besedilna datoteka z opisom programskega paketa. <item><tt/ps/: datoteka v postscriptnem formatu. Prikažemo ali odtisnemo jo s paketom GhostScript (ukaz <tt/gs/) in, neobvezno, <tt/ghostview/ ali <tt/gv/. <item><tt/rpm/: paket Red Hat. Namestite ga z namestitvenim programom <tt/rpm/. <item><tt/taz, tar.Z/: arhivska datoteka, izdelana s programom <tt/tar/ in stisnjena s programom <tt/compress/. <item><tt/tgz, tar.gz/: arhivska datoteka, izdelana s programom <tt/tar/ in stisnjena s programom <tt/gzip/. <item><tt/tex/: izvirna datoteka za stavni sistem TeX. Namestite paket <tt/tex/, ki je na voljo v številnih distribucijah. Paket je precej obsežen. <item><tt/texi/: izvirna datoteka za dokumentacijski sistem GNU texinfo, iz katere lahko pridelamo datoteko <tt/.tex/ in interaktivno hipertekstno datoteko <tt/.info/. Potrebujete paket <tt/texinfo/. <item><tt/xbm, xpm, xwd/: bitne slike. Prikazujete in popravljate jih lahko s programom <tt/xpaint/. <item><tt/Z/: datoteka, stisnjena s programom <tt/compress/. </itemize> <sect1>Pretvorba datotek <p> Pri izmenjavi besedilnih datotek med okolji DOS/Windows in Linux pazite na dejstvo, da sistema končujeta vrstice različno. V DOS se vsaka vrstica konča z dvema znakoma, CR/LF (Carriage Return/Line Feed; pomik na začetek vrstice, skok v novo vrstico; kodi ASCII 13 in 10), v Linuxu pa samo z LF. Datoteke z DOS so zato v Linuxu videti okrancljane z znaki ^M na koncu vsake vrstice; nasprotno pa datoteke iz Linuxa DOS razume kot eno samo kilometrsko vrstico. Orodja, kot so <tt/dos2unix/ in <tt/unix2dos/, prevajajo iz enega formata v drugega. Za zapis naših znakov se uporablja kar nekaj različnih kodnih razporedov. V DOS je največ v rabi CP852 ali stari sedembitni standard JUS I.B1.002, v Windows CP1250, v Linuxu pa ISO 8859-2 (Latin 2). Iz enega kodnega nabora v drugega lahko pretvarjate z orodjem <tt/recode/. <sect1>Prosti pisarniški paketi <p> Da, tudi te poznamo! StarOffice (<url url="http://www.sun.com/staroffice">) je trenutno najbolj zrel in popoln pisarniški paket. Hitro pa poteka tudi razvoj paketa Koffice (<url url="http://www.koffice.org">). StarOffice je velikanski in počasen, vseeno pa čisto dober. Ponuja nekatere lastnosti, ki jih v Microsoft Office ni. Poleg tega lahko prebira tudi datoteke, ki jih zapišeta Word in Excel, čeprav pretvorba ni vedno popolna. Drug spodoben urejevalnik je Corel WordPerfect; prosto izdajo je moč sneti iz interneta. Je sploh treba povedati še kaj več? Tu je: <url url="http://www.corel.com">. <sect>Konec, za zdaj<label id="The End"> <p> Čestitamo! Zdaj že imate nekaj pojma o Unixu in lahko se lotite dela. Zavedajte pa se, da je vaše poznavanje sistema še vedno omejeno in potrebujete več prakse, preden se boste v Linuxu počutili kot doma. Če pa bi se radi naučili le katerega od uporabniških programov, s katerimi boste delali, je tu zapisano za najosnovnejše poznavanje sistema čisto dovolj. Prepričan sem, da boste uživali ob Linuxu in se naučili vse več in več o njem -- tako kot vsi. Stavim tudi, da se ne boste nikoli več vrnili nazaj v DOS in Windows. Nazadnje še upam, da sem bil dovolj jasen in da je bilo zapisano v pomoč vsem trem ali štirim bralcem, ki so se prebili do tu. <sect1>Copyright <p> Copyright (c) Guido Gonzato, <tt>ggonza@tin.it</tt>. Ta spis lahko razširjate skladno s pogoji, navedenimi v dovoljenju za uporabo LDP, dostopnem na naslovu <url url="http://www.linuxdoc.org/COPYRIGHT.html">, z dodatnim pogojem, da ga ni dovoljeno razširjati v spremenjeni obliki brez avtorjevega privoljenja. V slovenščino ga je prevedel in priredil Primož Peterlin, <tt>primoz.peterlin@biofiz.mf.uni-lj.si</tt>. Z morebitnimi vprašanji se obrnite na domačo stran projekta LDP (Linux Documentation Project), <url url="http://www.linuxdoc.org">. <sect1>Pravni poduk <p> Ta spis je ponujen tak, kot je. Veliko truda je bilo vloženega v to, da bi bila zapisana informacija čim bolj sveža in točna, vendar jo uporabljate izključno na lastno odgovornost. Ne pisec in ne prevajalec ne odgovarjata za morebitno škodo, nastalo zaradi uporabe tega dela. Pisec se zahvaljuje Mattu Welshu, avtorju ``Linux Installation and Getting Started'', Ianu Jacksonu, avtorju ``Linux frequently asked questions with answers'', Giuseppu Zanettiju, avtorju italijanske knjige ``Linux'', vsem, ki so mu po elektronski pošti poslali predloge, še posebej pa Linusu Torvaldsu in skupini GNU, ki so nam dali Linux. Odzivi -- prošnje, predlogi, opljuvanja in podobno -- so vedno dobrodošli. Uživajte v Linuxu, uživajte življenje, Guido <tt>=8-)</tt> </article>