% Linux Installation and Getting Started    -*- TeX -*-
% filesystem.tex
% Copyright (c) 1992, 1993 by Matt Welsh, Larry Greenfield and Karl Fogel
%
% This file is freely redistributable, but you must preserve this copyright 
% notice on all copies, and it must be distributed only as part of "Linux 
% Installation and Getting Started". This file's use is covered by
% the copyright for the entire document, in the file "copyright.tex".
%
% Copyright (c) 1998 by Specialized Systems Consultants Inc. 
% <ligs@ssc.com>

\section{Raziskovanje datotečnega sistema}\label{sec-filesystem-tour}
%\markboth{Učbenik Linuxa}{Raziskovanje datotečnega sistema}

\index{datotečni sistem!raziskovanje|(}
\textbf{Datotečni sistem} je zbirka datotek in hierarhije imenikov
na sistemu.  Prišel je čas, da vas pospremimo skozi datotečni sistem.

% No ref to dirtree if ASCII
\iftex {%
Zdaj imate veščine in znanje, da razumete datotečni sistem Linuxa, in
imate tudi zemljevid (poglejte na diagram na strani~\pageref{dirtree}).}
\fi

Najprej pojdite v korenski imenik (\texttt{cd /}) in vnesite
\texttt{ls -F} za izpis njegove vsebine.  Verjetno boste videli
naslednje imenike\footnote{Lahko vidite tudi druge in morda ne boste
videli vseh.  Vsaka izdaja Linuxa se razlikuje v nekaterih pogledih.}:
\texttt{bin}, \texttt{dev}, \texttt{etc}, \texttt{home},
\texttt{install}, \texttt{lib}, \texttt{mnt}, \texttt{proc},
\texttt{root}, \texttt{tmp}, \texttt{user}, \texttt{usr} in
\texttt{var}.

Zdaj si oglejmo vsakega od teh imenikov.

\begin{dispitems}
\index{imenik!bin@\texttt{/bin}}
\index{bin@\texttt{/bin}}
\ditem{\texttt{/bin}}
\texttt{/bin} je kratko za >>binarne<< ali izvedljive datoteke,
kjer počiva veliko programov, nujnih za sistem.  Uporabite \texttt{ls
-F /bin} za izpis tamkajšnjih datotek.  Če pogledate na dobljeni
spisek, boste lahko videli nekatere ukaze, ki jih prepoznate, kot so
\texttt{cp}, \texttt{ls} in \texttt{mv}.  Ti so pravi programi za te
ukaze.  Ko uporabite na primer ukaz \texttt{cp}, s tem poženete
program \texttt{/bin/cp}.

Z uporabo \texttt{ls -F} boste videli, da ima večina (če ne vse)
datotek v imeniku \texttt{/bin} za imenom zvezdico (>>\texttt{*}<<).
To pomeni, da so te datoteke izvedljive, kot je bilo opisano na
strani~\pageref{sec-ls}.

\index{imenik!dev@\texttt{/dev}}
\index{dev@\texttt{/dev}}
\ditem{\texttt{/dev}}
\index{gonilnik naprave}
\index{datoteke!naprav}
\index{naprave!dostopanje}
>>Datoteke<< v imeniku \texttt{/dev} so \textbf{datoteke naprav}
(angl.\ device files) -- prek njih se dostopa do sistemskih naprav in
virov, kot so diskovni pogoni, modemi in pomnilnik.  Kot lahko vaš
sistem bere podatke iz datoteke, lahko bere tudi vhod iz miške z
dostopom do datoteke naprave \texttt{/dev/mouse}.

\index{naprave!fd@\texttt{fd}}
\index{naprave!disketa}
\index{disketa!imena naprav za}
Datoteke, katerih imena se začenjajo s \texttt{fd}, so disketniške
naprave.  \texttt{fd0} je prvi disketnik in \texttt{fd1} je drugi.
Morda ste opazili, da je naštetih več disketnih naprav kot le dve
zgoraj omenjeni: te predstavljajo različne tipe disket.  Na primer,
\texttt{fd1H1440} dostopa do 3{,}5"-disket visoke gostote v prvem
disketniku.

Sledi seznam nekaterih najpogosteje uporabljanih datotek naprav.
Četudi morda nimate vseh fizičnih naprav, naštetih spodaj, imate
verjetno v imeniku \texttt{/dev} vseeno gonilnik zanjo.

\begin{itemize}
\index{naprave!konzola}
\index{naprave!/dev/console@\texttt{/dev/console}}
\index{konzola!ime naprave za}
\index{/dev/console@\texttt{/dev/console}}
\item \texttt{/dev/console} se nanaša na sistemsko konzolo -- se pravi
na monitor, priključen neposredno na vaš sistem.

\index{naprave!zaporedna vrata}
\index{naprave!/dev/ttyS@\texttt{/dev/ttyS}}
\index{naprave!/dev/cua@\texttt{/dev/cua}}
\index{/dev/ttyS@\texttt{/dev/ttyS}}
\index{/dev/cua@\texttt{/dev/cua}}
\index{zaporedna vrata!imena naprav za}
\item Različne naprave \texttt{/dev/ttyS} in \texttt{/dev/cua}
se uporabljajo za dostop do zaporednih vrat.  \texttt{/dev/ttyS0} se
nanaša na >>\texttt{COM1}<< v MS-DOS-u.  Naprave \texttt{/dev/cua} so
naprave za >>klic ven<< (angl.\ callout) in se uporabljajo z modemom.

\index{naprave!trdi diski}
\index{naprave!/dev/hd@\texttt{/dev/hd}}
\index{/dev/hd@\texttt{/dev/hd}}
\index{trdi diski!imena naprav za}
\item Prek naprav z imeni, ki se začenjajo na \texttt{hd}
(iz angl.\ hard drives), dostopamo do trdih diskov.  \texttt{/dev/hda}
se nanaša na \emph{celoten} prvi trdi disk, medtem ko se
\texttt{/dev/hda1} nanaša na prvo \emph{particijo} na \texttt{/dev/hda}.

\index{naprave!SCSI}
\index{SCSI!imena naprav za}
\index{naprave!/dev/sd@\texttt{/dev/sd}}
\index{naprave!/dev/st@\texttt{/dev/st}}
\index{naprave!/dev/sr@\texttt{/dev/sr}}
\index{dev/sd@\texttt{/dev/sd}}
\index{dev/st@\texttt{/dev/st}}
\index{dev/sr@\texttt{/dev/sr}}
\item Naprave, katerih imena se začenjajo s \texttt{sd}, so pogoni SCSI
(angl.\ SCSI drive).  Če imate trdi disk SCSI, boste do njega
dostopali kot \texttt{/dev/sda} namesto \texttt{/dev/hda}.  Do
tračnih enot SCSI dostopamo prek naprav \texttt{st} in do CD-ROM-ov
SCSI prek naprav \texttt{sr}.

\index{naprave!vzporedna vrata}
\index{naprave!/dev/lp@\texttt{/dev/lp}}
\index{/dev/lp@\texttt{/dev/lp}}
\index{vzporedna vrata!ime naprave za}
\item Prek naprav z imeni, ki se začenjajo na \texttt{lp}, dostopamo
do vzporednih vrat.  \texttt{/dev/lp0} je isto kot >>\texttt{LPT1}<< v
svetu MS-DOS-a.

\index{naprave!ničelna}
\index{naprave!/dev/null@\texttt{/dev/null}}
\index{/dev/null@\texttt{/dev/null}}
\index{ničelna datoteka}
\item \texttt{/dev/null} se uporablja kot >>črna luknja<< -- podatki,
poslani na to napravo, so za vedno izgubljeni.  Zakaj je to uporabno?
No, če želite ukiniti izhod ukaza, ki se prikazuje na vašem zaslonu,
lahko pošljete ta izhod na ničelno napravo \texttt{/dev/null}.  Več o
tem bomo govorili pozneje.

\index{naprave!navidezne konzole}
\index{naprave!/dev/tty@\texttt{/dev/tty}}
\index{/dev/tty@\texttt{/dev/tty}}
\index{navidezne konzole}
\item Naprave, katerih imena so \texttt{/dev/tty}, ki mu sledi številka,
se nanašajo na >>navidezne konzole<< (angl.\ virtual console, VC)
vašega sistema (do njih dostopate s pritiskom \key{Alt-F1},
\key{Alt-F2} in tako naprej), pa tudi na čisto prave terminale,
priključene na zaporedna vrata.  \texttt{/dev/tty1} se nanaša na prvo
navidezno konzolo, \texttt{/dev/tty2} na drugo in tako naprej.

\index{naprave!psevdo-terminali}
\index{naprave!/dev/pty@\texttt{/dev/pty}}
\index{psevdo-terminali}
\index{/dev/pty@\texttt{/dev/pty}}
\item Naprave, katerih imena se začenjajo z \texttt{/dev/pty}, so
\textbf{psevdo-terminali}, ki se uporabljajo, da ponudijo
>>terminal<< oddaljenim prijavnim sejam.  Na primer, če je vaš stroj
na omrežju, bodo prihajajoče prijave z uporabo \texttt{telnet}
uporabljale eno od naprav \texttt{/dev/pty}.
\end{itemize}

\index{imenik!/etc@\texttt{/etc}}
\index{/etc@\texttt{/etc}}
\ditem{\texttt{/etc}}
\texttt{/etc} vsebuje številne različne nastavitvene datoteke sistema.
Te vključujejo \texttt{/etc/passwd} (bazo podatkov o uporabnikih),
\texttt{/etc/rc} (sistemski inicializacijski skript) in tako naprej.

\index{imenik!/sbin@\texttt{/sbin}}
\index{/sbin@\texttt{/sbin}}
\ditem{\texttt{/sbin}}
\texttt{/sbin} vsebuje nujne sistemske binarne datoteke, ki se
uporabljajo pri upravljanju sistema.

\index{domači imenik}
\index{imenik!domači}
\index{imenik!/home@\texttt{/home}}
\index{/home@\texttt{/home}}
\ditem{\texttt{/home}}
\texttt{/home} vsebuje domače imenike uporabnikov.  Na primer,
\texttt{/home/larry} je domači imenik uporabnika >>\texttt{larry}<<.
Na sveže nameščenem sistemu morda ne bo nobenih uporabnikov v tem
imeniku.

\index{imenik!/lib@\texttt{/lib}}
\index{/lib@\texttt{/lib}}
\ditem{\texttt{/lib}}
\texttt{/lib} vsebuje \textbf{slike deljenih knjižnic}.  To so datoteke,
ki vsebujejo kodo, skupno več programom.  Namesto da vsak program
uporablja svoj izvod teh podprogramov, so vsi shranjeni na enem samem
skupnem mestu, v imeniku \texttt{/lib}.  To naredi izvedljive datoteke
manjše in varčuje s prostorom na vašem sistemu.

\index{imenik!/proc@\texttt{/proc}}
\index{/proc@\texttt{/proc}}
\ditem{\texttt{/proc}}
\texttt{/proc} podpira >>navidezni datotečni sistem<<
(angl.\ virtual file system, VFS), kjer so datoteke shranjene v
pomnilniku, ne na disku.  Te >>datoteke<< se nanašajo na različne
\textbf{procese}, ki tečejo na sistemu, in vam omogočajo pridobitev
informacij o programih in procesih, ki se v vsakem času izvajajo na
sistemu.  Več o tem bomo razložili na strani~\pageref{sec-process} in
naslednjih straneh.

\index{imenik!/tmp@\texttt{/tmp}}
\index{/tmp@\texttt{/tmp}}
\ditem{\texttt{/tmp}}
Mnogi programi shranjujejo začasne informacije v kakšno datoteko, ki
se pobriše, ko program preneha z izvajanjem.  Standardno mesto za te
datoteke je v imeniku \texttt{/tmp}.

\index{imenik!/usr@\texttt{/usr}}
\index{/usr@\texttt{/usr}}
\ditem{\texttt{/usr}}
\texttt{/usr} je zelo pomemben imenik, ki vsebuje podimenike
z nekaterimi najpomembnejšimi in najuporabnejšimi programi in
nastavitvenimi datotekami, uporabljanimi na sistemu.

Različni imeniki, opisani zgoraj, so nujni za delovanje sistema, a
večina postavk v imeniku \texttt{/usr} je izbirnih.  Vendar je sistem
uporaben in zanimiv prav zaradi teh izbirnih delov.  Brez imenika
\texttt{/usr} bi imeli dolgočasen sistem, ki bi podpiral le programe,
kot sta \texttt{cp} in \texttt{ls}.  \texttt{/usr} vsebuje večino
večjih programskih paketov in namestitvene datoteke, ki jih
spremljajo.

\index{imenik!/usr/X11R6@\texttt{/usr/X11R6}}
\index{/usr/X11R6@\texttt{/usr/X11R6}}
\ditem{\texttt{/usr/X11R6}}
\texttt{/usr/X11R6} vsebuje grafični vmesnik X~Window System, če ste
ga namestili.  X~Window System je veliko, zmogljivo grafično okolje,
ki ponuja veliko število grafičnih pripomočkov in programov,
prikazanih v >>oknih<< na vašem zaslonu.  Če ste navajeni na okolja
Microsoft Windows ali Macintosh, se vam bo tudi okenski sistem
X~Window zdel domač.  Imenik \texttt{/usr/X11R6} vsebuje vse
izvedljive datoteke za sistem X~Window, nastavitvene datoteke in
podporne datoteke.  To je podrobneje pokrito v poglavju~\ref{chap-xwindows}.

\index{imenik!/usr/bin@\texttt{/usr/bin}}
\ditem{\texttt{/usr/bin}}
\texttt{/usr/bin} je pravo skladišče programja na vsakem sistemu Linux.
Vsebuje večino izvedljivih datotek za programe, ki jih ne najdete na
drugih mestih, kot \texttt{/bin}.

\index{imenik!/usr/etc@\texttt{/usr/etc}}
\index{/usr/etc@\texttt{/usr/etc}}
\ditem{\texttt{/usr/etc}}
Kakor \texttt{/etc} vsebuje različne nujno potrebne sistemske programe
in namestitvene datoteke, tako \texttt{/usr/etc} vsebuje različne
pripomočke in datoteke, ki v splošnem niso nujni za sistem.

\index{imenik!/usr/include@\texttt{/usr/include}}
\index{/usr/include@\texttt{/usr/include}}
\index{glave}
\ditem{\texttt{/usr/include}}
\texttt{/usr/include} vsebuje \textbf{glave} za prevajalnik
programskega jezika C.  Te datoteke (večina od njih se konča s
\texttt{.h} kot >>glava<< (angl.\ header)) določajo imena podatkovnih
struktur, podprogramov in konstant, ki se uporabljajo pri pisanju
programov v C-ju.  Datoteke v imeniku \texttt{/usr/include/sys} se v
splošnem uporabljajo za programiranje na sistemskem nivoju Unixa.  Če
ste domači v programskem jeziku C, boste tukaj našli datoteke z
glavami kot \texttt{stdio.h}, ki deklarirajo funkcije, kot je
\texttt{printf()}.

\index{imenik!/usr/g++-include@\texttt{/usr/g++-include}}
\index{/usr/g++-include@\texttt{/usr/g++-include}}
\ditem{\texttt{/usr/g++-include}}
\texttt{/usr/g++-include} vsebuje vključne datoteke za prevajalnik
za C++ (precej podobno kot \texttt{/usr/include}).

\index{imenik!/usr/lib@\texttt{/usr/lib}}
\index{/usr/lib@\texttt{/usr/lib}}
\ditem{\texttt{/usr/lib}}
\texttt{/usr/lib} vsebuje >>štoraste<< in >>statične<< ekvivalente
% (?) >>stub<< and >>static<< library equivalents
datotek, najdenih v \texttt{/lib}.  Ko prevajate program, se program
>>povezuje<< s knjižnicami, najdenimi v \texttt{/usr/lib}, ki potem
naročijo programu, naj pogleda v \texttt{/lib}, ko potrebuje pravo
kodo.  Poleg tega tudi različni drugi programi shranjujejo nastavitvene
datoteke v imeniku \texttt{/usr/lib}.

\index{imenik!/usr/local@\texttt{/usr/local}}
\index{/usr/local@\texttt{/usr/local}}
\ditem{\texttt{/usr/local}}
\texttt{/usr/local} je precej podoben \texttt{/usr} -- vsebuje
različne programe in datoteke, ki niso nujne za sistem, a naredijo
sistem zabaven in vznemirljiv.  V splošnem so programi v
\texttt{/usr/local} specializirani za vaš sistem -- posledično se
\texttt{/usr/local} zelo razlikuje pri posameznih sistemih Linux.

\index{imenik!/usr/man@\texttt{/usr/man}}
\index{/usr/man@\texttt{/usr/man}}
\ditem{\texttt{/usr/man}}
Ta imenik vsebuje strani priročnika.  V njem sta dva podimenika za
vsak >>razdelek<< (angl.\ section) strani priročnika (uporabite ukaz
\texttt{man man} za podrobnosti).  Na primer, \texttt{/usr/man/man1}
vsebuje izvorno kodo (se pravi, neformatirani izvirnik) za strani
priročnika v razdelku~1, \texttt{/usr/man/cat1} pa vsebuje formatirane
strani priročnika za razdelek~1.

\index{imenik!/usr/src@\texttt{/usr/src}}
\index{/usr/src@\texttt{/usr/src}}
\ditem{\texttt{/usr/src}}
\texttt{/usr/src} vsebuje izvorno kodo (neprevedena navodila)
za različne programe na vašem sistemu.  Najpomembnejši imenik tukaj je
\texttt{/usr/src/linux}, ki vsebuje izvorno kodo jedra za Linux.

\index{imenik!/var@\texttt{/var}}
\index{/var@\texttt{/var}}
\ditem{\texttt{/var}}
\texttt{/var} vsebuje imenike, katerih velikost se pogosto
spreminja ali se sčasoma veča.  Večina od teh imenikov je včasih
ležala v \texttt{/usr}, a ker skušajo tisti, ki podpirajo Linux, ta
imenik obdržati relativno nespremenljiv, so se imeniki, ki se pogosto
spreminjajo, preselili v \texttt{/var}.  Nekatere distribucije Linuxa
vzdržujejo svoje baze podatkov o programskih paketih v imenikih pod
\texttt{/var}.

\index{imenik!/var/log@\texttt{/var/log}}
\index{/var/adm@\texttt{/var/log}}
\ditem{\texttt{/var/log}}
\texttt{/var/log} vsebuje različne datoteke, ki zanimajo sistemskega
upravitelja, posebej dnevnike sistemske aktivnosti, ki zapisujejo
napake ali probleme sistema.  Druge datoteke beležijo prijave v sistem
kot tudi neuspele poskuse prijav.  To bo pokrito v
poglavju~\ref{chap-sysadm}.

\index{imenik!/var/spool@\texttt{/var/spool}}
\index{/var/spool@\texttt{/var spool}}
\ditem{\texttt{/var/spool}}
\texttt{/var/spool} vsebuje datoteke, ki v vrsti čakajo na obdelavo.
Te so >>navite<< (angl.\ spooled) na neki program.  Na primer, če
imate tiskalnik, se datoteke, ki čakajo na tiskanje, začasno
shranjujejo v imeniku \texttt{/var/spool/lp}.  Če je vaš stroj povezan
v omrežje, se prihajajoča pošta shranjuje v imeniku
\texttt{/var/spool/mail}, dokler je ne preberete ali pobrišete,
odhajajoči ali prihajajoči novičarski članki so v imeniku
\texttt{/var/spool/news} in tako naprej.

\end{dispitems}
\index{datotečni sistem!raziskovanje|)}
