Naprej Nazaj Vsebina

3. Datoteke in programi

3.1 Datoteke: uvodni pojmi

Struktura imenikov in datotek na Linuxu je zelo podobna tisti na DOS/Windows. Datoteke imajo imena, za katera veljajo določena pravila, in so shranjena v imenikih. Nekatere od njih so programi, in večina med njimi 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 dalje.

3.2 Simbolne povezave

Unix pozna zvrst datoteke, ki na DOS ne obstaja: simbolne povezave. Lahko si jih zamišljamo kot kazalce na datoteke ali imenike, in jih lahko uporabljamo namesto datotek ali imenikov, na katere kažejo; podobno kot bližnjice na Windows 95. Primera simbolnih povezav sta imenik /usr/X11, ki kaže na /usr/X11R6/ in enota /dev/modem, ki kaže bodisi na /dev/cua0 ali /dev/cua1.

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

3.3 Dovolilnice in lastništvo nad datotekami

Datoteke in imeniki v DOS imajo lahko naslednje prilastke: A (arhivski), H (skrit, angl. hidden), R (dovoljen samo za branje, angl. read-only), ali S (sistemski). Samo H in R sta smiselna tudi pod Linuxom: imena skritih datotek in imenikov se začnejo s piko, o prilastku R pa več v nadaljevanju.

Pod Unixom ima vsaka datoteka dovolilnice (angl. permissions) in lastnika (angl. owner), ki nadalje pripada eni ali večim skupinam uporabnikov (group). Poglejmo si naslednji primer:

$ 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. Ostale informacije zaenkrat 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 dalje.) Preostale znake beremo v trojicah. rwx so dovolilnice za lastnika. Ta lahko datoteko bere (read), piše oz. 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 zaenkrat ne bomo obravnavali; dokler ste začetnik ali začetnica, lahko preživite tudi brez njega. Zadnji r-x so dovolilnice za vse ostale 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 pobrisati datoteke /bin/sl, razen če niste root: nimate dovoljenja za spreminjanje te datoteke. Dovolilnice za posamezno datoteko lahko spreminjate z ukazom:

$ chmod <kdoXdovoljenje> <datoteka>

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

$ chmod +x datoteka

Datoteko smo napravili izvodljivo.

$ chmod go-rw datoteka

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

$ chmod ugo+rwx datoteko.

S takšno 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 (običajno datoteke izvajamo z lastnimi pooblastili). To je takoimenovana datoteka vrste ,,setuid`` ali ,,suid``. Navadno gre za sistemske datoteke kot npr. strežnik X, katerih lastnik je root, saj lahko le z njegovimi pooblastili dostopamo do nekaterih sistemskih virov.

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 zgleda težavno, z nekaj prakse pa boste hitro razumeli koncept.

Edino superuporabnik, root, lahko spreminja dovolilnice za katerokoli datoteko na sistemu, ostali pa le svoje. RMP.

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

Primeri

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:

3.5 Poganjanje programov: večopravilnost in seanse

Program poženete tako, da vtipkate njegovo ime, torej enako kot v DOS. Če se imenik (glejte razdelek Uporaba imenikov), kjer se program nahaja, nahaja v poti (PATH; razdelek Sistemske inicializacijske datoteke), boste s tem program pognali. Za razliko od DOS pa Linux ne po pognal programa iz trenutnega imenika, če ta imenik ni naveden v poti. Izogib: iz trenutnega imenika program poženite z ukazom ./program.

Običajna ukazna vrstica izgleda 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 od glavnih 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 nemotemo nadaljujete s svojim delom. Še več: pod Linuxom 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 dekomprimirate drugo arhivsko datoteko, pa imate še vedno dostop do pozivnika. Pa poskusite kaj takega v DOS! Poskusite še v Windows (če bodo preživeli), da vidite razliko v hitrosti.

3.6 Poganjanje programov na drugih računalnikih

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

$ telnet nekje.drugje.si

Ko ste prijavljeni, preprosto poženite program, ki ga želite. Verjetno je odveč povedati, da morate tudi na tem drugem računalniku imeti odprt uporabniški račun.

V okenskem okolju X11 lahko na drugem računalniku celo poganjate programe, pisane za to okolje, na svojem pa prikazujete rezultate. Naj bo nekje.drugje.si oddaljeni računalnik, moj.linux.si pa naš mlinček z Linuxom. Postopek spodaj opisuje, kako z računalnika moj.linux.si poženemo program, ki se nahaja na drugem računalniku, nekje.drugje.si:

Et voila! 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.


Naprej Nazaj Vsebina