<!-- -*-linuxdoc-*- -->
<!doctype linuxdoc system>
<!-- $Id: DOS-Win-to-Linux-HOWTO-sl.sgml,v 1.6 2001/08/17 07:58:36 peterlin Exp $ -->

<!-- From DOS/Windows HOWTO, by Guido Gonzato -->
<!-- Tested with SGML-tools 1.0.5. Compiles fine. -->

<article>

<title>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&percnt;
</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 &lt;CTRL-ALT-DEL&gt;, 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 &lt;CTRL-ALT-BACKSPACE&gt;, da se vrnete v
tekstovni način, potem pa še  &lt;CTRL-ALT-DEL&gt;. <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 ,&num;`, 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 &lt;TAB&gt; 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 &lt;ESC-BACKSPACE&gt;, ki zbriše
besedo levo od kazalca, in &lt;ESC-D&gt;, ki zbriše besedo desno od
njega; s kombinacijo &lt;ESC-F&gt; premaknemo kazalec za besedo na
desno (F kot Forward, naprej), z &lt;ESC-B&gt; (B kot Backward, nazaj)
pa na levo. &lt;CTRL-A&gt; nas premakne na začetek vrstice,
&lt;CTRL-E&gt; pa na konec. Tipka &lt;ALT&gt; je enakovredna tipki
&lt;ESC&gt;.

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>!*&dollar;&amp;&num;</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>&tilde;</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 &lt;SPACE&gt; 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/&lt; &gt; &gt;&gt;/, ki jih poznamo
iz okolja DOS, dovoljuje Linux tudi preusmeritve oblike <tt/2&gt;/. S tem
preusmerimo standardni izhod za napake (stderr); konstrukt
<tt/2&gt;&amp;1/ tako preusmeri standardni izhod za napake (stderr) na
standardni izhod (stdout), <tt/1&gt;&amp;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/ &lt;file&gt; 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 &lt;ALT-F1&gt; do &lt;ALT-F6&gt;

<item>Znotraj prijavne seanso v navidezni konzoli lahko z ukazom
<tt/su - &lt;prijavno_ime&gt;/ 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/&amp;/`:

<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 &lt;PID&gt;/. 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 &lt;PID&gt;/.

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 &lt;CTRL-C&gt;
(ne deluje vedno).

<item>Proces v ospredju zamrznemo s pritiskom na &lt;CTRL-Z&gt;
(tudi to ne deluje vedno).

<item>Zamrznjen proces pošljemo v izvajanje v ozadje z ukazom <tt/bg
&lt;job&gt;/ (s tem postane opravilo).

<item>Opravilo prikličemo iz ozadja z ukazom <tt/fg &lt;job&gt;/. 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 &lt;%opravilo&gt;/, pri
čemer je &lt;opravilo&gt; š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/&bsol;/,
v Linuxu pa <tt>/</tt>. Podobno je tudi s podimeniki -- v
DOS so ravni ločene z obrnjeno poševnico (<tt/&bsol;/), 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/&tilde;/`) je bližnjica do imena vašega domačega
 imenika. Ukaz <tt/cd/ ali <tt/cd &tilde;/ vas prestavi naravnost v vaš
domači imenik, kjerkoli že ste; ukaz <tt>cd &tilde;/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>&tilde;/.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 &lt;BACKSPACE&gt;,
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/&dollar;PATH/ in <tt/&dollar;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 &dollar;P&dollar;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
&lt;moja_skript&gt;/. 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 &lt;ESC&gt;, zatem pa
<tt>x</tt>
<item>Urejevalnik zapustimo, ne da bi shranili spremembe, s pritiskom
na tipko &lt;ESC&gt;, zatem pa vtipkamo <tt>:q!</tt>
<item>Shranimo in končamo s pritiskom na &lt;ESC&gt;, 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&lt;ime_knjižnice&gt;. 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&lt;nekaj&gt;</tt> pove prevajalniku <tt/gcc/, naj v
izvedljiv program poveže še knjižnico
<file>/usr/lib/lib&lt;nekaj&gt;.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&percnt;

<p>
Pravzaprav več kot le 1&percnt;...

<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
&lt;SHIFT&gt;+&lt;PAGE UP&gt;.

<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 &lt;datoteka&gt;/ 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 &lt;izraz&gt; 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 &lt;dnevnik&gt;/ 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>
