\renewcommand{\thercsdate}{$ $Date: 2004/02/05 20:18:37 $ $}

\slidesection{Istunto}

\begin{slide}

\slideheading{Sisään"- ja uloskirjautuminen}

\bi
\item Yksittäiseen \unix"- tai Linux"-koneeseen on monta reittiä kirjautua
sisään: ssh"-etäyhteys, päätteet (vanhoissa järjestelmissä) ja tietenkin
koneen oma näyttö ja näppäimistö.
\item Kaikissa kirjautumistavoissa kysytään käyttäjän tunnus ja
salasana.  Nämä ovat tiedot, joiden perusteella käyttäjä tunnistetaan.
\item Useimmat sisäänkirjautumistavat käynnistävät onnistuneen
sisäänkirjautumisen jälkeen käyttäjän \newterm{oletuskomentotulkin}.  CS
Linuxeissa kuitenkin oletuksena käynnistyy graafinen käyttöympäristö.
\item Istunto loppuu uloskirjautumiseen.  Komentotulkista kirjaudutaan
pois komennolla \cmdln{logout} (tai \cmdln{exit}) ja graafisesta
ympäristöstä jostain valikosta löytyvällä logout"-toiminnolla.
\ei

\end{slide}

\begin{slide}

\slideheading{Turvallisuudesta}

\bi
\item Istunnon aikana toiminnassa olevat ohjelmat toimivan sisään
kirjautuneen käyttäjän oikeuksilla.
\item Niinpä niillä ei voi vahingoittaa muita käyttäjiä tai
järjestelmää: Unix on turvallinen ympäristö kokeilla kaikenlaista.
\item Unix tarjoaa kuitenkin vahvat työkalut, joita voi käyttää
verkkohäiriköintiin jne.  Taitavampi käyttäjä saa tunnuksellasi paljon
enemmän vahinkoa aikaan kuin sinä.  Siksi \emph{istuntoa ei saa jättää
vartioimatta}.
\item Poistuessasi koneen äärestä voit \newterm{lukittaa} istunnon.
KDE:ssa tämä tapahtuu painamalla alapalkin lukonkuvaa.
\ei

\end{slide}

\begin{slide}

\slideheading{Tositoimiin: istunto}

\begin{enumerate}
\item Kirjaudu sisään antamalla käyttäjätunnuksesi ja salasanasi.
Koneessa käynnistynee graafinen käyttöympäristö ``KDE''.
\item KDE:n käynnistyttyä kokeile avata joitain ohjelmia alapalkista:
esimerkiksi punaisesta dinosauruksen päästä käynnistyy www"-selain,
``mozilla'', televisioruudun näköisestä painikkeesta komentotulkki ja
paperi"-sulkakynä"-yhdistelmästä kirjoitusohjelma.
\item Sulje ikkunoita niiden yläkulmassa olevasta ruksista.
\item Lukita istunto, ja avaa se taas antamalla salasanasi.
\item Kirjaudu ulos K"-valikosta löytyvällä ``logout''"-toiminnolla.
\end{enumerate}

\end{slide}

\slidesection{Komentotulkki}

\begin{slide}

\slideheading{Mikä on komentotulkki?}

\bi
\item \newterm{Komentotulkki} (shell) on ohjelma, joka on suunniteltu
helpoksi keinoksi käynnistää muita ohjelmia.
\item Unixin komentotulkit osaavat itse asiassa paljon enemmänkin.
\item Komentotulkki ja perusohjelmat muodostavat yhdessä Unixin
``sielun'', joka on kehittynyt pikku hiljaa 70"-luvulta lähtien.
\item Tämä ympäristö on \unix{}ien ja erilaisten Linuxien yhteinen punainen
lanka (ohjelmointiympäristön lisäksi).
\item Komentotulkin toiminta muistuttaa jonkin verran keskustelua:
annetaan komento/kysymys, saadaan vastaus, jatketaan samaan tapaan.
\item Tällä kurssilla käytetään \cmdln{bash}"-komentotulkkia.
\ei

\end{slide}

\begin{slide}

\slideheading{Komentotulkin perustoiminta}

\bi
\item Valmiustilassa komentotulkki tulostaa \newterm{kehotteen} (prompt)
(esim.~\cmdln{pkalliok@mars \$}) ja jää odottamaan käyttäjän
\newterm{syötettä} (eli komentoa).
\item Käyttäjä kirjoittaa komennon ja painaa lopuksi
rivinvaihtonäppäintä (enter / return / hassu kulmanuoli).
\item Komentotulkki suorittaa komennossa määritetyn \newterm{ohjelman},
ja jää odottelemaan, että se hoitaa hommansa loppuun
\item Tämän jälkeen komentotulkki tulostaa uuden kehotteen ja odottaa
uutta syötettä.
\ei

\end{slide}

\begin{slide}

\slideheading{Komentojen yleinen muoto}

\notebox{Esimerkkikomento: \cmdln{ls -l -a /web/ling}}

\bi
\item Komennot muodostuvat yhdestä tai useammasta sanasta (erotettuna
välilyönnein), joista ensimmäinen on suoritettavan ohjelman nimi
(\emph{mitä} tehdään, yllä \cmdln{ls}) ja loput sille annettavia
\newterm{argumentteja} (\emph{miten} tai \emph{mille} tehdään).
\item Argumenttien muoto riippuu ohjelmasta, mutta on lähes aina
samanlainen:
\item Ensinnäkin on \newterm{valitsimia} (options), jotka muuntavat
ohjelman toimintaa (``miten tehdään'').  Valitsimet alkavat yleensä
viivalla (-).  Yllä \cmdln{-l} ja \cmdln{-a}.
\item Yksikirjaimisia valitsimia voi yleensä yhdistää, esimerkiksi yllä
olevan käskyn voisi kirjoittaa muotoon \cmdln{ls -la /web/ling}

\newslide

\item Kaikki muut kuin valitsimet ovat ``tavallisia argumentteja'', ja
kertovat yleensä, mitä ohjelma käsittelee (``mille tehdään'').  Yllä
\cmdln{/web/ling}.
\item Tekstiä käsitteleville komennoille ``tavalliset argumentit''
yleensä kertovat, mistä tiedostoista käsiteltävä teksti ($=$syöte)
luetaan, ja jos tavallisia argumentteja ei ole, se luetaan suoraan
käyttäjältä.
\item Hakemistoja käsitteleville komennoille ``tavalliset argumentit''
kertovat, mitä hakemistoa käsitellään, jne.
\ei

\notebox{Niin komennossa, valitsimissa kuin tiedostojen nimissä
(tiedostoista tuonnempana) pienet ja isot kirjaimet ovat eri kirjaimia,
eli esim. \cmdln{-l} ja \cmdln{-L} ovat eri valitsin.}

\end{slide}

\begin{slide}

\slideheading{Tositoimiin: komennot}

\begin{enumerate}
\item Kirjaudu sisään ja käynnistä komentotulkki.
\item Kokeile komentoa \cmdln{ls -l -a /web/ling} siten, että jätät siitä
pois eri osia.
\item Kokeile kirjoittaa komentotulkkiin jotain roskaa, esim.~``Minä
olen maailman valtias'' ja paina enter.  Mitä tapahtuu ja miksi?
\item Komento \cmdln{echo} on perin yksinkertainen.  Anna sille joitain
argumentteja ja katso, mitä se tekee.  Katso myös, mitä tekee komento
\cmdln{date}.
\item Kokeile, miten valitsin \cmdln{-n} muuttaa \cmdln{echo}"-komennon
toimintaa.
\item Komennossa \cmdln{grep -i foo /usr/share/dict}: mitkä ovat
valitsimia, mitkä tavallisia argumentteja ja mikä on ohjelman nimi?
\end{enumerate}

\end{slide}

