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
|