Naprej Nazaj Kazalo

4. Datoteke in programi

4.1 Datoteke: uvodni pojmi

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:

Zdaj lahko tudi preskočite na razdelek Datoteke: primerjava ukazov, na vašem mestu pa bi bral naprej.

4.2 Simbolne povezave

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 /usr/X11, ki kaže na /usr/X11R6/, in enota /dev/modem, ki kaže bodisi na /dev/ttyS0 bodisi na /dev/ttyS1.

Simbolno povezavo napravimo takole:

$ ln -s <datoteka_ali_imenik> <ime_povezave>

Zgled:

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

Zdaj se lahko sklicujemo na g77manual.txt namesto na /usr/doc/g77/DOC. Simbolnim povezavam se pri izpisu vsebine imenika doda znak ,@` na koncu.

$ ls -F
g77manual.txt@
$ ls -l
(druge reči...)           g77manual.txt -> /usr/doc/g77/DOC

4.3 Dovolilnice in lastništvo nad datotekami

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:

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

Ime datoteke, /bin/ls, 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. -rwxr-xr-x pomeni, od leve proti desni:

Prvi - je zvrst datoteke (- je navadna datoteka, d imenik, l simbolna povezava in tako naprej). Preostale znake beremo v trojicah. rwx so dovolilnice za lastnika. Ta lahko datoteko bere (read), piše ali briše (write) in izvaja (execute). r-x 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 r-x so dovolilnice za vse druge uporabnike. Tudi ti lahko datoteko berejo in izvajajo, ne morejo pa je spreminjati.

Tudi imenik /bin ima svoje dovolilnice; za podrobnosti si oglejte Imeniki in dovolilnice. Dovolilnice so razlog, zakaj ne morete zbrisati datoteke /bin/sl: razen če ste root, nimate dovoljenja spreminjati te datoteke. Dovolilnice za posamezno datoteko lahko spreminjate z ukazom:

$ chmod <kdoXdovoljenje> <datoteka>

,,Kdo`` je lahko u (uporabnik, torej lastnik), g (skupina), ali o (drugi). Namesto X je bodisi + (izdamo dovolilnico) bodisi - (prekličemo dovolilnico). In, končno, ,,dovoljenje`` je lahko r (dovoljenje za branje, angl. read), w (dovoljenje za pisanje ali spreminjanje; angl. write) ali x (dovoljenje za izvajanje, angl. execute). Sledi nekaj običajnih zgledov rabe ukaza chmod:

$ chmod +x datoteka

Datoteko smo napravili izvedljivo.

$ chmod go-rw datoteka

Umaknili smo dovoljenje za branje in pisanje za skupino in vse druge, datoteko lahko bere in spreminja le še lastnik.

$ chmod ugo+rwx datoteko.

S tako dovolilnico lahko vsakdo bere, spreminja ali izvaja datoteko.

# chmod +s datoteka

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: rwxr-xr-x tako na primer izrazimo kot 755 (vsaki črki iz trojice ustreza en bit: --- je 0, --x je 1, -w- je 2, -wx 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

4.4 Datoteke: primerjava ukazov

Na levi je ukaz DOS, na desni enakovredni ukaz v Linuxu

ATTRIB:         chmod
COPY:           cp
DEL:            rm
MOVE:           mv
REN:            mv
TYPE:           more, less, cat

Preusmeritev in nizanje ukazov: < > >> |

Džokerji: * ?

nul: /dev/null

prn, lpt1: /dev/lp0 or /dev/lp1; lpr

Zgledi

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

Opombe:

4.5 Poganjanje programov: večopravilnost in seanse

Program poženete tako, da vtipkate njegovo ime, torej enako kakor v DOS. Če je imenik (glejte razdelek Uporaba imenikov), v katerem je program, na poti (PATH; razdelek 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 ./program.

Običajna ukazna vrstica je videti nekako takole:

$ ukaz [-s1 [-s2] ... [-sn]] [par1 [par2] ... [parn]] [< vhod] [> izhod]

Pri tem so -s1 ... -sn izbire programa, par1 ... parn pa parametri. V isti vrstici lahko zaporedoma poženete več ukazov, če jih med seboj ločite s podpičji:

$ ukaz1 ; ukaz2 ; ... ; ukazn

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!

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.

4.6 Poganjanje programov v drugih računalnikih

Programe v drugem računalniku, katerega popolno omrežno ime je nekje.drugje.si, lahko poganjamo tako, da se vanj prijavimo s programom telnet:

$ telnet nekje.drugje.si

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 nekje.drugje.si oddaljeni računalnik, moj.linux.si pa naš mlinček z Linuxom. Spodnji postopek opisuje, kako z računalnika moj.linux.si poženemo program v drugem računalniku, nekje.drugje.si:

Tako! Zdaj se bo moj_program pognal na 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``, http://www.linuxdoc.org/HOWTO/mini/Remote-X-Apps.html.


Naprej Nazaj Kazalo