U N I X
Autor : ing. Ales Limpouch, KP FEL CVUT Praha
2. System souboru a adresaru

V systemu souboru a adresaru OS UNIX rozlisujeme tri zakladni
typy souboru:

- bezne soubory
- adresare
- specialni soubory
 

Bezny soubor je posloupnost slabik. Pomoci sluzeb jadra lze
ziskat sekvencni i primy pristup ke kazde slabice.

Adresar je soubor obsahujici jmena souboru, prip. adresaru.
Adresare tvori acyklickou stromovou strukturu. Na vrcholu
stromu je korenovy adresar, ktery ma jmeno "/".

Specialni soubor je soubor, ktery system poskytuje uzivateli
pro ovladani perifernich zarizeni.

Pro vsechny soubory je udrzovana pouze jejich posledni verze.
Soubory jsou reprezentovany identifikacnim uzlem (i-node).
O souboru jsou uchovavany tyto informace: typ souboru,
identifikacni cisla vlastnika a skupiny, pristupova prava,
casy posledniho zapisu, pouziti (cteni nebo provedeni)
a zmeny i-node a umisteni datovych bloku na disku (resp.
urceni periferniho zarizeni). Je vhodne si vsimnout, ze
soucasti tohoto uzlu neni napr. jmeno souboru.


2.1 Prace se soubory

Bezne soubory mohou obsahovat informace textove nebo binarni.
Jmeno souboru je retezec (az 14) znaku kodu ASCII, ktery
neobasahuje znak "/". Koncove znaky oddelene od pocatecnich
teckou se casto oznacuji jako pripona. Tecka je vsak pouze
jednim ze znaku jmena souboru a nema pevne stanovenou pozici.
Pri specifikaci jmen souboru lze pouzivat nektere specialni
znaky:

* libovolny textovy retezec (i nulove delky)
? jeden libovolny znak
[ ] umoznuje stanovit mnozinu znaku pro urcitou
pozici ve jmenu souboru

Prikazy pro praci se soubory:

cp file1 file2 kopie souboru file1 do file2
cp files dirname kopie souboru files do adresare dirname
mv file1 file2 prejmenovani souboru file1 na file2
(vcetne zmeny jmena adresare)

mv files dirname premisteni files do adresare dirname
rm [-fir] files smazani souboru fileX
f ruseni bez dotazu
i selektivni interaktivni ruseni
r zruseni celeho podstromu
vceten adresaru (i neprazdnych)

Prikazy pro praci s obsahem souboru:

file files urcuje obsah souboru
(podle prvnich 512 slabik souboru)

cat files vypis textoveho souboru na terminal
cat [-u] vypis znaku zadavanych z klavesnice

u vypis ihned
tail [+n][-n][lbc] fileX
vypis konce textoveho souboru fileX,
-n delka vypisu od konce (impl. -10)
+n prvni vypisovana pozice od zacatku

urceni typu delky: l radky (impl.)
c znaky
b bloky

more [-c] [-n] files

prohlizeni textoveho souboru
c vypis od horniho okraje obrazovky
-n delka vypisu pred zastavenim
z klavesnice lze ridit dalsi vypis:
q ukonceni cinnosti
SPACE dalsi vypis
+ln vypis od radku v poradi ln
/p vypis od nejblizsiho vyskytu p
i:n vypis od dalsiho souboru
i:p vypis od predchazejiciho souboru
(i pocet preskocenych souboru)
h help

od [-bcdox] file vypis binarniho souboru
b oktalove po znacich
c znakove po znacich
(\ooo nezobrazitelne znaky)
d dekadicky po slovech
o oktalove po slovech (impl.)
x hexadecimalne po slovech
cmp [-l] [-s] f1 f2 porovnani souboru f1 a f2
po nalezeni rozdilu se beh ukonci

l vypis vsech rozdilu
(poradi a oktalovy obsah slabiky)

s produkuje navratovy kod (shell)

Prikaz pro archivaci souboru:

tar [keys] [names] tape archiver - presun souboru names
(prip. vcetne podadresaru) mezi diskem
a jinym mediem

keys: c vytvoreni (create) archivu
x presun z archivu na disk (extract)
t vypis obsahu archivu
r pripojeni souboru na konec archivu
f fname urceni archivu (zarizeni, soubor)


2.2 Prace s adresari

Adresar je soubor, ktery obsahuje zaznamy o jmenech souboru
a cislech jejich i-nodes, tj. odkazy na soubor. Muze existovat
vice ruznych odkazu v ruznych adresarich na jediny soubor
(tentyz i-node). Uplne jmeno souboru se sklada z cesty (path)
strukturou stromu adresaru (od korenoveho adreare) a prosteho
jmena souboru. Jmena adresaru v ceste jsou oddelena znakem "/".
Znaky "." a ".." oznacuji vzdy odkaz na aktualni adresar a
jeho nadrazeny adresar.

Prikazy pro praci s adresari:

pwd vypis uplneho jmena pracovniho adresare
ls [-cgilrtu] files vypis obsahu adresare
a vypis vsech souboru

c vypis podle data zmeny i-node
d vypis vlastnosti adresare
g vypis skupiny vlastnika
i vypis s cisly i-nodes
l siroky vypis (uplna informace)
r vypis v obracenem poradi
t vypis podle data posledni zmeny
u vypis podle data posledniho uziti
find pathnames expr nalezeni souboru v hierarchii adresaru
od pathnames, ktery vyhovuje vyrazu expr

expr:
(n prave n, +n vice nez n, -n mene nez n)
-name fname hledani souboru se jmenem fname
-links n hledani souboru o n odkazech
-user uname hledani souboru vlastnika uname
-size n hledani souboru o n blocich
-inum n hledani souboru s cislem i-node
-print vypis uplneho jmena (true)
-exec command provedeni prikazu shellem

ln name1 [name2] vytvoreny odkazu name2 na existujici
soubor name1

cd [dirname] zmena pracovniho adresare
(bez parametru = ..)

mkdir dirnames vytvoreni podadresaru
rmdir dirnames zruseni prazdnych podadresaru


2.3 Pristupova prava

V multiuzivatelskem systemu je treba zajistit vzajemnou ochranu
uzivatelu. K tomuto ucelu slouzi pristupova prava k souboru.
V OS UNIX se rozeznavaji tri typy pristupu ke kazdemu souboru.
Tyto tri typy jsou cteni (read), zapis (write) a vykonani
(execute) souboru. Pro adresare znamena cteni vypis adresare,
zapis vytvoreni souboru a vykonani pristup k podadresarum.

V i-node souboru jsou pritom ulozeny bitove priznaky, kterymi
vlastnik (tj. uzivatel, ktery soubor vytvoril) udeluje pristupova
prava k souboru ostatnim uzivatelum. OS UNIX pritom uzivatele
deli na tri kategorie: vlastnik (user) souboru, skupina vlastnika
(group) a ostatni (others). Z toho vyplyva, ze kazdy soubor ma
devet bitovych priznaku (atributu) urcujicich pristupova prava.

Seznam opravnenych uzivatelu je uveden v souboru "/etc/passwd".
Zaznam o kazdem uzivateli obsahuje uzivatelske (prihlasovaci)
jmeno, zasifrovane heslo, identifikacni cislo uzivatele (UID),
identifikacni cislo skupiny (GID), poznamku (libovolny text),
domovsky adresar a zvoleny interpret prikazu (impl. "/bin/sh").
Skupiny uzivatelu jsou evidovany v souboru "/etc/group".
Zaznam o skupine obsahuje jmeno skupiny, pripadne zasifrovane
heslo skupiny, cislo skupiny a seznam uzivatelu patricich ke
skupine.
 

Pristupova prava k souboru lze zjisti pomoci vypisu adresare
prikazem "ls -l". Jednotlive polozky vypisu obsahuji:
- typ souboru (d adresar, l symbolicky odkaz, - bezny soubor,
c znakove zarizeni, b blokove zarizeni)
- pristupova prava
(po trojicich pro vlastnika, skupinu a ostatni,

r cteni, w zapis, x vykonani, - bez pristupu,
s propujceni identifikace (pro vykonani))
- pocet odkazu na soubor
- vlastnika souboru
- skupinu vlastnika souboru
- velikost souboru
- datum vytvoreni (v aktualnim roce cas, jinak rok)
- jmeno souboru
 

Prikazy pro pristupova prava k souborum:
 

newgrp group zmena skupiny, v niz uzivatel pracuje

chmod mode files zmena pristupovych prav k souborum files
mode - tvar: cislo
kategorie operator pravo
(seznam, oddelovac carka)
kategorie: u, g, o
operator: = nastaveni, + pridani, - odebrani
pravo: r, w, x
chown owner files zmena vlastnika (UID) souboru files
chgrp group files zmena skupiny (GID) souboru files


2.4 Specialni soubory

Specialni soubory predstavuji periferni zarizeni a poskytuji
uzivateli pristup k nim. OS UNIX rozlisuje dva typy perifernich
zarizeni: blokova a znakova. Nektera zarizeni maji zrizeny
specialni soubory obou typu pro kombinovany pristup. Nektera
jmena jsou pevne dana OS UNIX, dalsi urcuje spravce systemu.
Specialni soubory jsou obvykle umisteny v adresari "/dev".
Plna informace o specialnich souborech (prikaz "ls -l") obsahuje
stejne informace jako pro bezne soubory. Pouze delka souboru
je nahrazena hlavnim (major) cislem, ktere urcuje typ zarizeni,
a vedlejsim (minor) cislem specialniho souboru, ktere odlisuje
zarizeni stejneho typu.

Soubory:
console konzole systemu
tty odkaz na aktualni terminal uzivatele
ttyX terminal X
mtX magneticka paska X (blokove)
rmtX magneticka paska X (znakove)
sdX diskovy svazek X (blokove)
rsdX diskovy svazek X (znakove)
kmem adresovy prostor jadra systemu (kernel mem)
mem adresovy prostor uzivatelskeho programu
null prazdne zarizeni

Soubory jsou ukladany na jednotlive diskove svazky. Fyzicky disk
muze byt rozdelen na nekolik diskovych svazku. Korenovy adresar
je ulozen na systemovem svazku. Podstromy adresare jsou ukladany
na jine svazky.

Prikazy pro praci se specialnimi soubory:

du [-as] [names] info o obsazeni disku names po adresarich
a po souborech (all)
s pro specifikovane soubory
df [devs] informace o velikosti volneho mista na
diskovych svazcich devs
quot [devs] informace o obsazeni svazku uzivateli
mesg y/n povoleni/zakazani psani na obrazovku
ostatnimi uzivateli

dd [opts] kopie souboru po blocich prip. s konverzi
if=file vstupni soubor
of=file vystupni soubor
ibs=num velikost bloku vstupu
obs=num velikost bloku vystupu
skip=n preskok n zaznamu pred kopii
files=n preskok n souboru pred kopii
count=n kopie pouze n zaznamu

/etc/mknod name [cb] major minor
vytvoreni specialniho souboru name
c znakovy, b blokovy soubor
major hlavni cislo, minor vedlejsi cislo

/etc/mount informace o rozlozeni podstromu na svazcich
/etc/mount dev dirname
svazek dev je pripojen k podstromu dirname
/etc/umount dev odpojeni svazku dev