% Linux Installation and Getting Started    -*- TeX -*-
% concepts.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{Osnovni pojmi Linuxa}
%\markboth{Učbenik Linuxa}{Osnovni koncepti Linuxa}

\index{Linux!osnovni pojmi|(}
\index{Linux!večopravilnost!definicija}
\index{večopravilnost!definicija}
\index{večuporabniški!definicija}
\index{prijavno ime!definicija}
\index{geslo!definicija}
Linux je večopravilni, večuporabniški operacijski sistem, kar pomeni,
da lahko več ljudi hkrati poganja več različnih aplikacij na enem
samem računalniku.  To se razlikuje od MS-DOS-a, kjer sistem hkrati
uporablja le ena oseba.  Pod Linuxom se morate, kot dokaz vaše
istovetnosti, \textbf{prijaviti}, kar vključuje vnos vašega
\textbf{uporabniškega imena} (imena, pod katerim vas sistem
identificira) in vnos \textbf{gesla}, ki je vaš osebni ključ za
prijavo v vaš račun.  Ker le vi poznate vaše geslo, se nihče drug ne
more prijaviti v sistem pod vašim uporabniškim imenom.

Na tradicionalnih sistemih Unix vam sistemski upravitelj določi
uporabniško ime in začetno geslo, ko vam odpre račun na sistemu.
Vendar ker ste na vašem Linuxu \emph{vi} sistemski upravitelj, morate
usposobiti vaš lastni račun, preden se lahko prijavite vanj.  Za
nadaljnje razprave bomo uporabljali izmišljeno uporabniško ime,
>>\texttt{larry}<<.

\index{ime gostitelja!definicija}
Nadalje, vsakemu sistemu je prirejeno \textbf{ime gostitelja}.  To ime
gostitelja določa ime vašega stroja, mu daje značaj in šarm.  Ime
gostitelja se uporablja za identifikacijo posameznih strojev na mreži,
a tudi če vaš stroj ni omrežen, mora imeti ime gostitelja.  Za naše
nadaljnje primere naj bo gostiteljsko ime >>\texttt{mousehouse}<<.

\subsection{Izdelava računa}
\label{sec-create-account}
\index{uporabniški račun!ustvarjanje}
\index{račun!ustvarjanje}
Preden lahko uporabljate na novo nameščen sistem Linux, morate
usposobiti uporabniški račun zase.  Navadno ni dobro uporabljati
računa \texttt{root} za normalno uporabo; račun \texttt{root}
rezervirajte za poganjanje privilegiranih ukazov in za vzdrževanje
sistema, kot je opisano spodaj.

Za izdelavo svojega računa se prijavite kot \texttt{root} in uporabite
ukaz \texttt{useradd} ali \texttt{adduser}.  Glejte
razdelek~\ref{sec-add-user} za informacije o tem postopku.

\subsection{Prijava v sistem}
\index{prijava v sistem}
\index{prijava}
Ob prijavi boste videli pozornik, podoben naslednjemu:
\begin{tscreen}
mousehouse login:
\end{tscreen}
Vnesite vaše uporabniško ime in pritisnite \key{Enter}.  Naš junak
\texttt{larry} bi napisal:
\begin{tscreen}
mousehouse login: \emph{larry} \\
Password: 
\end{tscreen}
Potem vnesite svoje geslo.  Znaki, ki jih boste vnašali, se ne bodo
videli na zaslonu, zato tipkajte previdno.  Če se zatipkate pri vnosu
gesla, boste videli sporočilo o napačni prijavi
\begin{tscreen}
Login incorrect
\end{tscreen}
in boste morali ponovno poskusiti postopek prijave.

Ko ste enkrat pravilno vnesli uporabniško ime in geslo, ste uradno
prijavljeni na sistem in lahko se pričnete klatiti po njem.

\subsection{Navidezne konzole}
\index{konzola!navidezne}
\index{konzola!definicija}
Sistemska \textbf{konzola} je sestavljena iz monitorja in tipkovnice,
priključene neposredno na sistem.  (Ker je Linux večuporabniški
operacijski sistem, imate lahko tudi druge terminale, ki so na vaš
sistem priključeni prek serijskih vrat, a ti niso konzole.)
Linux, kot nekatere druge različice Unixa, ponuja dostop do
\textbf{navideznih konzol} (angl.\ virtual consoles, VCs), ki vam
omogočajo, da imate hkrati na konzoli več kot eno prijavno sejo.

Za demonstracijo tega se najprej prijavite v vaš sistem.  Potem
pritisnite \key{Alt-F2}.  Spet bi morali videti prijavni pozornik
\texttt{login:}.  Gledate drugo navidezno konzolo (VC).  Za preklop
na prvo VC, pritisnite \key{Alt-F1}. \emph{Voila!}  Vrnili ste se v
prvo prijavno sejo.

Novo-nameščeni sistem Linux vam verjetno dovoljuje dostop le do prvega
pol ducata (ali kaj takega) navideznih konzol, s pritiskom kombinacij
od \key{Alt-F1} do \key{Alt-F4} oziroma kolikor VC je pač nastavljenih
na vašem sistemu.  Možno je omogočiti do 12 VC -- po eno za vsako
funkcijsko tipko na vaši tipkovnici.  Kot vidite, je uporaba VC lahko
zelo zmogljiva, saj lahko delate v precej različnih sejah hkrati.

Medtem ko je uporaba VC včasih omejujoča (konec koncev, naenkrat lahko
gledate le eno VC), vam naj bi vendarle dala občutek večopravilnostnih
zmožnosti Linuxa.  Medtem ko počnete eno stvar na prvi VC, lahko
preklopite na drugo VC in delate na nečem drugem.

\subsection{Ukazne lupine in ukazi}
\label{sec-shells-cmds}
\index{lupine!definicija}
Pri večini vaših odkrivanj sveta Linuxa se boste pogovarjali s
sistemom skozi \textbf{ukazno lupino} (angl.\ shell), programom, ki
bere ukaze, ki jih vpišete, in jih prevede v navodila operacijskemu
sistemu.  To se lahko primerja s programom \texttt{COMMAND.COM} pod
MS-DOS-om, ki opravlja pravzaprav enako stvar.  Ukazna lupina je le en
vmesnik do Linuxa.  Obstaja več različnih vmesnikov -- na primer
grafični vmesnik X~Window System, ki vam omogoča poganjanje ukazov z
uporabo miške in tipkovnice.

Takoj ko se prijavite v sistem, ta zažene ukazno lupino in začnete
lahko z vnosom ukazov.  Tukaj je kratek primer.  Larry se prijavi in
čaka v \textbf{pozorniku} (angl.\ prompt) ukazne lupine.
\begin{tscreen}
mousehouse login: \emph{larry} \\
Password: \emph{larryjevo geslo} \\
Welcome to Mousehouse! \\
\\
/home/larry\$ 
\end{tscreen}
\index{lupine!pozornik}
Zadnja vrstica tega teksta je pozornik ukazne lupine, ki nakazuje, da
je ukazna lupina pripravljena sprejemati ukaze.  (Več o tem, kaj
pomeni sam pozornik, kasneje.)  Poskusimo naročiti sistemu, da naredi
kaj zanimivega:
\begin{tscreen}
/home/larry\$ \emph{make love} \\
make: *** No rule to make target `love'. Stop. \\
/home/larry\$
\end{tscreen}

No, kot se izkaže, je \texttt{make} ime pravega programa na sistemu,
in ukazna lupina je izvedla ta program, ko smo ji tako ukazali.  (Žal
je bil sistem neprijazen.)

\index{ukaz!definicija}
\index{ukazni argument}
\index{argument!ukazni|see{ukazni argument}}
To nas privede do žgočega vprašanja: Kaj je ukaz?  Kaj se zgodi, ko
vpišete >>\texttt{make love}<<?  Prva beseda v ukazni vrstici,
>>\texttt{make}<<, je ime ukaza, ki naj se izvede.  Vse drugo v ukazni
vrstici šteje za argument temu ukazu.  Primer:
\begin{tscreen}
/home/larry\$ \emph{cp foo bar} 
\end{tscreen}
Ime tega ukaza je >>\texttt{cp}<<, argumenta sta
>>\texttt{foo}<< in >>\texttt{bar}<<. 

Ko vnesete ukaz, naredi ukazna lupina precej stvari.  Najprej preveri
ukaz ter pogleda ali je vgrajen v ukazno lupino.  (Se pravi, ali je to
ukaz, ki ga zna izvesti sama lupina.  Obstaja vrsta takih ukazov in
vanje se bomo poglobili pozneje.)  Lupina tudi preveri, ali je ukaz
vzdevek (angl.\ alias) ali nadomestno ime za drug ukaz.  Če noben od
teh pogojev ni izpolnjen, ukazna lupina na disku poišče program z
danim imenom.  Če je pri iskanju uspešna, lupina požene program in mu
pošlje argumente, podane v ukazni vrstici.

V našem primeru ukazna lupina išče program, imenovan \texttt{make}, in
ga požene z argumentom \texttt{love}.  \texttt{Make} je program, ki se
pogosto uporablja pri prevajanju velikih programov in vzame za
argumente imena >>cilja<< (angl.\ target) za prevod.  V primeru ukaza
>>\texttt{make love}<< smo naročili programu \texttt{make}, naj
prevede cilj \texttt{love}.  Ker \texttt{make} ne more najti cilja s
tem imenom, se pritoži s šegavim sporočilom o napaki in nas postavi v
ukazno vrstico.

\index{command not found@\texttt{command not found}}
\index{sporočila o napaki!command not found@sporočila o napaki!\texttt{command not found}}
Kaj se zgodi, če vpišemo ukaz v ukazno lupino in lupina ne more najti
programa z določenim imenom?  No, poskusimo lahko naslednje:
\begin{tscreen}
/home/larry\$ \emph{eat dirt} \\
eat: command not found \\
/home/larry\$
\end{tscreen}
Precej preprosto, če ukazna lupina ne more najti programa z imenom,
danim v ukazni vrstici (tukaj >>\texttt{eat}<<), izpiše sporočilo o
napaki.  Pogosto boste videli to sporočilo o napaki, če boste
zatipkali ukaz (na primer, če ste napisali >>\texttt{mkae love}<<
namesto >>\texttt{make love}<<).

\subsection{Odjava iz sistema}
\index{odjava iz sistema!z ukazom exit@z ukazom \texttt{exit}}
\index{exit@\texttt{exit}}
Preden se še bolj zatopimo, vam moramo povedati, kako se lahko
odjavite iz sistema.  V ukazni vrstici uporabite ukaz
\begin{tscreen}
/home/larry\$ \emph{exit}
\end{tscreen}
za odjavo.  Obstajajo tudi drugi načini odjave iz sistema, a ta je
najbolj otročje lahek.

\subsection{Sprememba vašega gesla}
\index{geslo!sprememba s passwd@sprememba s \texttt{passwd}}
\index{passwd@\texttt{passwd}}
Vedeti morate tudi, kako spremeniti svoje geslo.  Ukaz \texttt{passwd}
vas vpraša za vaše staro geslo in za novo geslo (angl.\ old \& new
password).  Prosi vas tudi, da ponovno vnesete novo geslo za preverbo.
Pazite, da ne boste pozabili svojega gesla -- če ga, boste morali
prositi sistemskega upravitelja, da ga spet nastavi.  (Če ste vi ta
sistemski upravitelj, glejte stran~\pageref{sec-manage-users}.)

\subsection{Datoteke in imeniki}
\index{datoteke!definicija}
Pod večino operacijskih sistemov (vključno z Linuxom) obstaja pojem
\textbf{datoteke}, ki je le skupek informacij pod nekim imenom
(imenovanim \textbf{ime datoteke}).  Primeri datotek so lahko vaš
seminar iz zgodovine, e-poštno sporočilo ali pravi program, ki se
lahko izvede.  V bistvu se vse, kar se posname na disk, posname kot
posamična datoteka.

\index{ime datoteke!definicija}
Datoteke (angl.\ files) se prepoznavajo po njihovih imenih datotek
(angl.\ file names).  Na primer, datoteka z vašim seminarjem iz
zgodovine se lahko posname z imenom datoteke
\texttt{zgodovinski-seminar}.  Ta imena navadno določajo datoteko in
njeno vsebino v neki obliki, ki ima za vas pomen.  Za imena datotek ni
standardnega formata, kot je pod MS-DOS-om in nekaterimi drugimi
operacijskimi sistemi; v splošnem lahko ime datoteke vsebuje
katerikoli znak (razen znaka >>\texttt{/}<< -- glejte razpravo o
imenih poti spodaj) in je po dolžini omejeno na 256 znakov.

\index{imenik!definicija}
\index{mapa!definicija}
S pojmom datotek pride tudi pojem imenikov.  \textbf{Imenik} je zbirka
datotek.  Predstavljate si ga lahko kot >>mapo<<, ki vsebuje mnoge
različne datoteke.  Imenikom so prirejena imena, pod katerimi jih
lahko istovetite.  Nadalje, imeniki so vzdrževani v drevesu podobni
strukturi; se pravi, imeniki lahko vsebujejo druge imenike.

\index{ime poti!definicija}
Na datoteko se lahko torej sklicujete z njenim
\textbf{imenom poti} (angl.\ path name), ki jo sestavlja
ime datoteke, pred katerim je ime imenika, ki vsebuje datoteko.  Na
primer, denimo, da ima Larry imenik z imenom \texttt{papers}, ki
vsebuje tri datoteke: \texttt{history-final}, \texttt{english-lit} in
\texttt{masters-thesis}.  Vsaka od teh treh datotek vsebuje
informacije o treh Larryjevih projektih.  Za sklicevanje na datoteko
\texttt{english-lit} lahko Larry določi ime datoteke kot v:
\begin{tscreen}
papers/english-lit
\end{tscreen}

\index{/@\texttt{/}!v imenih poti}
Kot vidite, imenik in ime datoteke ločuje ena sama poševnica
(\texttt{/}).  To je razlog, da sama imena datotek ne morejo vsebovati
znaka \texttt{/}.  Uporabnikom MS-DOS-a se bo zdelo to pravilo domače,
čeprav se v svetu MS-DOS-a namesto tega uporablja poševnica vznak
(\verb+\+).

\index{imenik!gnezdenje}
Kot smo že omenili, se imeniki tudi lahko gnezdijo drug v drugega.  Na
primer, denimo, da obstaja še en imenik znotraj \texttt{papers},
imenovan \texttt{notes}.  Imenik \texttt{notes} vsebuje datoteke
\texttt{math-notes} in \texttt{cheat-sheet}.  Ime poti do datoteke
\texttt{cheat-sheet} bi bilo
\begin{tscreen}
papers/notes/cheat-sheet
\end{tscreen}

\index{imenik!starš}
\index{starševski imenik}
Torej je ime poti res kot pot do datoteke.  Imenik, ki vsebuje dani
podimenik, je znan kot \textbf{starševski imenik}.  Tukaj je imenik
\texttt{papers} starševski imenik imenika \texttt{notes}.

\subsection{Drevo imenikov}
\index{imenik!drevo}
\index{imenik!struktura}
\index{/@\texttt{/}}
\index{imenik!korenski}
\index{korenski imenik}
\index{/@\texttt{/}!ime korenskega imenika}
\index{Linux!struktura imenikov}
Mnogi sistemi Linux uporabljajo standardni načrt za datoteke, tako da
se sistemski viri in programi lahko zlahka poiščejo.  Ta načrt tvori
drevo imenikov, ki se začenja z imenikom >>\texttt{/}<<, znanim tudi
kot >>korenski imenik<<.  Neposredno pod \texttt{/} so pomembni
podimeniki: \texttt{/bin}, \texttt{/etc}, \texttt{/dev}, \texttt{/usr}
in drugi.  Ti imeniki spet vsebujejo druge imenike, ki vsebujejo
nastavitvene datoteke sistema, programe in tako naprej.

\index{imenik!domači!definicija}
\index{domači imenik|see{imenik}}
Vsak uporabnik ima svoj \textbf{domači imenik}, ki je imenik, namenjen
uporabnikovem shranjevanju svojih datotek.  V zgornjih primerih so vse
Larryjeve datoteke (kot \texttt{cheat-sheet} in
\texttt{history-final}) shranjene v njegovem domačem imeniku.  Navadno
so uporabniški domači imeniki vsebovani pod imenikom \texttt{/home} in
so poimenovani po uporabniku, ki je lastnik tega imenika.  Larryjev
domači imenik je \texttt{/home/larry}.

\iflotex  % No dirtree if ASCII.
\else {
Diagram na strani~\pageref{dirtree} kaže primer drevesa imenikov, ki
naj bi vam dal predstavo, kako je organizirano drevo imenikov na vašem
sistemu.

\unitlength=1.0pt
\begin{figure}[tb]
\centerline{\epsffile{tutorial/dirtree.eps}}
\label{dirtree}
\caption{Tipično (okrnjeno) drevo imenikov Linuxa}
\end{figure} } \fi % Kill dirtree if ASCII.

\subsection{Trenutni delovni imenik}
\index{imenik!trenutni delovni!definicija}
\index{imenik!delovni!definicija}
\index{trenutni delovni imenik!definicija}
\index{delovni imenik!definicija}
Za ukaze, ki jih vnašate, se vedno predpostavlja, da so relativni
glede na vaš \textbf{trenutni delovni imenik}.  Delovni imenik si
lahko zamišljate kot imenik, v katerem se trenutno >>nahajate<<.  Ko
se prvič prijavite, je vaš delovni imenik nastavljen na domači imenik
-- v našem primeru \texttt{/home/larry}.  Kadar se sklicujete na
datoteko, se lahko sklicujete nanjo v odvisnosti od vašega trenutnega
delovnega imenika, namesto da določate polno ime datoteke.

Tukaj je primer.  Larry ima imenik \texttt{papers}, in imenik
\texttt{papers} vsebuje datoteko \texttt{history-final}.  Če
želi Larry pogledati vsebino te datoteke, lahko uporabi ukaz
\begin{tscreen}
/home/larry\$ \emph{more /home/larry/papers/history-final}
\end{tscreen}
Ukaz \texttt{more} preprosto izpiše datoteko, po en zaslon naenkrat.
A ker je Larryjev trenutni imenik \texttt{/home/larry}, se lahko
namesto tega sklicuje na datoteko \emph{relativno} glede na svojo
trenutno lokacijo, z uporabo ukaza
\begin{tscreen}
/home/larry\$ \emph{more papers/history-final}
\end{tscreen}
\index{ime poti!relativno}
Če imena datoteke (kot \texttt{papers/final}) ne začnete z znakom
\texttt{/}, se sklicujete na datoteko v izrazih, relativnih
glede na vaš trenutni delovni imenik.  To je znano kot
\textbf{relativno ime poti}.

\index{ime poti!polno}
\index{ime poti!absolutno}
\index{ime poti!polno}
Po drugi strani, če začnete ime datotek z znakom \texttt{/}, ga sistem
tolmači kot polno ime poti -- se pravi, ime poti, ki vključuje celotno
pot do datoteke, začenši od korenskega imenika, \texttt{/}.  To je
znano kot \textbf{absolutno} ali \textbf{polno ime poti}.

\subsection{Sklicevanje na domače imenike}
\index{imenik!domac~i@domači!sklicevanje na ~@sklicevanje na \texttt{\~{}}}
\index{\~@\texttt{\~{}}|see{imenik}}
Pod ukaznima lupinama \texttt{tcsh} in \texttt{bash}%
\footnote {\texttt{tcsh} in \texttt{bash}
sta dve \emph{ukazni lupini}, ki tečeta na Linuxu.  Ukazna lupina je
program, ki bere uporabniške ukaze in jih izvaja; večina sistemov
Linux omogoča \texttt{tcsh} ali \texttt{bash} za račune novih
uporabnikov.}  lahko določite vaš domači imenik z znakom za tildo
(\texttt{\~{}}).  Na primer, ukaz
\begin{tscreen}
/home/larry\$ \emph{more \~{}/papers/history-final}
\end{tscreen}
je ekvivalenten ukazu
\begin{tscreen}
/home/larry\$ \emph{more /home/larry/papers/history-final}
\end{tscreen}
Ukazna lupina nadomesti znak \texttt{\~{}} z imenom vašega domačega
imenika.

Z znakom za tildo lahko določate tudi domače imenike drugih
uporabnikov.  Ime poti \texttt{\~{}karl/letters} ukazna lupina tolmači
kot \texttt{/home/karl/letters} (če je \texttt{/home/karl} domači
imenik uporabnika \texttt{karl}).  Uporaba tilde je preprosto
bližnjica; ni imenika, imenovanega \texttt{\~{}} -- to je le
skladenjski posladek, ki ga priskrbi ukazna lupina.

\index{Linux!osnovni pojmi|)}
