</motto<Ken Thompson has an automobile which he helped design.
        Unlike most automobiles, it has neither speedometer, nor gas gauge, 
        nor any of the numerous idiot lights which plague the modern driver.
        Rather, if the driver makes any mistakes, a giant "?" lights up
        in the center of the dashboard. 

        "The experienced driver", he says, "usually knows what's wrong.">>


/chapter<K{ytt|j{rjestelm{>

Crayn /ii<k{ytt|j{rjestelm{> on </sc/ii<unicos>>.  Se on Cray
Researchin </sc unix> /ii<System V> -toteutus, jota on
t{ydennetty er{ajoj{rjestelm{ll{, muutamilla /ii<Berkeleyn
</sc<unix>>in> (</sc/ii<bsd>>, Berkeley Software
Distribution) ominaisuuksilla ja joillakin Crayn vanhemmasta
k{ytt|j{rjestelm{st{ </sc/ii<cos>> (Cray Operating System)
periytyvill{ piirteill{. 
 
</bf Huom: </sc<unix>>in eri versioiden v{lill{ on lukuisia pieni{ eroja.
Seuraavassa k{sitell{{n p{{asiassa </sc<unix>> System V:n
mukaista </sc<unicos>>ia ja sen /ii<Bourne-shell>i{.> 
 
</sc<Unicos>> tarjoaa mahdollisuuden interaktiiviseen
ty|skentelyyn, mutta koska supertietokone on
er{ajo-orientoitunut kone, sen k{ytt| sujuu parhaiten
edustakoneiden kautta.  Ehdottomasti suositeltavin tapa on
l{hett{{ teht{v{t er{ajoina edustakoneelta.  Ty| muodostuu
tiedostosta, joka sis{lt{{ periaatteessa tavallisia </sc unix>in
komentoja sek{ er{it{ er{ty|n ohjaamiseen tarvittavia
m{{rittelyj{.  Er{ty|n voi my|s l{hett{{ suoraan Craylt{.
Er{ty|n l{hett{mist{ k{sitell{{n luvussa /ref<11.5>.


 
Koska </sc unicos> on l{hes standardin mukainen </sc unix>-toteutus, emme
t{ss{ paneudu sen yksityiskohtiin, vaan kehotamme lukijaa
perehtym{{n johonkin </sc unix>-oppikirjaan, joita on markkinoilla
liian kanssa.
 
</sc Unix>-k{ytt|j{rjestelm{n er{{n{ erityispiirteen{ kannattaa
huomata, ett{ se pit{{ isoja ja pieni{ kirjaimia eri
merkkein{.  Siten komennot </tt news> ja </tt NeWS> ovat
aivan eri komentoja.  </sc Unix>in komennot ja tiedostojen nimet
kirjoitetaan yleens{ pienill{ kirjaimilla. 
Samoin /ii<k{ytt{j{tunnuksissa> ja /ii<tunnussanoissa> pienet
ja isot kirjaimet tarkoittavat eri asiaa. Jos tunnuksesi
on  pienill{ kirjaimilla (oletus), muista ottaa
p{{tteen /boxed<caps lock> pois p{{lt{ ennen p{{teistunnon
aloittamista!
 

/section</ii<N{pp{inm{{rittelyt>>
 
Kirjoitetun merkin poistamiseen, komennon keskeytt{miseen
yms. erikoistoimintoihin tarkoitetut erikoismerkit
ovat </sc unix>in alkuper{isess{ muodossa nostalgisia
j{{nteit{ teletype-aikakaudelta. Onneksi jopa k{ytt{j{
itse voi niit{ muuttaa. Toisaalta my|s oletusarvoja
on eri systeemeiss{ muuteltu eri tavoin, ja toiminta saattaa
riippua jopa k{ytetyst{ tietoliikenneohjelmasta.
Sotkusta selvinnee l{hinn{ kokeilemalla.
 
Seuraavat kontrollimerkit toimivat Crayll{, ellei
k{ytt{j{ ole niit{ muuttanut:
 
/beginitemss<2truecm><17truemm>
 
/item</boxed</ii<Ctrl-c>>>
  Keskeytt{{ komennon suorituksen.
 
/item</boxed</ii<Ctrl-d>>>
  Oleellisesti /ii<end-of-file-merkki>. Jos 
  komento lukee teksti{ p{{tteelt{, voidaan tekstin sy|tt{minen
  lopettaa /boxed<Ctrl-d>:ll{. Suoraan shellille annettuna
  lopettaa sen suorituksen. Jos kysymyksess{ sattuu
  olemaan uloimman tason komentotulkki, p{{ttyy koko istunto
  ja yhteys katkeaa.
  
/enditems
 
N{pp{inm{{rittelyj{ voi muuttaa komennolla </tt/ii<stty>>.
 
 
/section</ii<Komentotulkit>>
 
K{ytt|j{rjestelm{lle annettavia komentoja lukee ja tulkitsee
komentotulkki (/ii<shell>).  Yleens{ k{ytett{viss{ on
ainakin kaksi eri komentotulkkia: </sc unix>in
standardikomentotulkki </sl/ii<Bourne-shell>> (joka
k{ynnistyy my|s komennolla </tt/ii<sh>>) ja t{st{ hieman
poikkeava, ositusk{yt|ss{ suosituksi tullut ja C-kielt{
muistuttava </sl/ii<C-shell>> (joka puolestaan k{ynnistyy
komennolla </tt/ii<csh>>).  Kolmas ja uusin tulokas on 
</sl/ii<Korn-shell>>, jossa ainakin tekij{ns{ mielest{
yhdistyv{t molempien muiden komentotulkkien parhaat puolet. 

Komentotulkki on ihan "tavallinen" ohjelma; se on ohjelma
aivan kuin muutkin </sc unix>issa ajettavat ohjelmat.  Muista se
poikkeaa l{hinn{ siin{, ett{ se on erikoistunut tulkitsemaan
k{ytt{j{n antamia komentoja, muuttamaan ne
k{ytt|j{rjestelm{n </sl ytimelle> (/ii<kernel>)
v{litett{viksi </sl/ii<systeemikutsu>iksi>, jotka
puolestaan sitten suorittavat k{ytt{j{n pyyt{m{n teht{v{n. 
 
</sc Unicos>issa on oletuksena, ett{ k{yt|ss{ on Bourne-shell 
ja seuraavassa k{sitell{{n p{{asiassa sit{. Supertietokoneella on 
k{ytett{viss{ my|s C-shell, mutta ei Korn-shelli{.
Edustakoneissa, ty|asemissa ja muissa interaktiiviseen
k{ytt||n supertietokonetta paremmin soveltuvissa laitteissa
k{ytt{jille on sensijaan yleens{ m{{ritelty oletusarvoksi C-shell.
T{m{n oppaan lopussa on lyhyt yhteenveto molempien
komentotulkkien ymm{rt{mist{ komennoista.
 
Bourne-shellin /ii<kehotteen> oletusarvo on </tt/$> (Crayll{
t{t{ edelt{{ koneen sarjanumero) ja C-shellin </tt/%>.

Komentotulkki k{sittelee itse vain muutamia kaikkein
keskeisimpi{ komentoja.  Useimmat komennot saavat
komentotulkin k{ynnist{m{{n tarkoitukseen sopivan ohjelman
(executable or binary program) tai /ii<komentotiedoston>
(/ii<script>).  K{ytt{j{n ei kuitenkaan tarvitse useimmiten
tiet{{, k{ynnistyyk| jonkin komennon vaikutuksesta ohjelma
vai komentotiedosto. 
 
Itse asiassa </sc unix>issa k{ytt{j{n omat ohjelmat ja
komentotiedostot k{ynnistet{{n samalla tavalla kuin
k{ytt|j{rjestelm{n komennot (kuten </sc/ii<ms-dos>>issakin). 
On suositeltavaa, ett{ omat ohjelmat kirjoitettaisiin
noudattamaan </sc unix>in komentojen k{yt{nt|{ syntaksin ja
oletustiedostojen (</tt/ii<stdin>>, </tt/ii<stdout>>,
</tt/ii<stderr>>, ks. /ref<8.9>) suhteen, jolloin ne sulautuvat loogisella
tavalla osaksi k{ytt|ymp{rist|{. 

/section</ii<Komentojen syntaksi>>
 
Er{s </sc unix>in miellytt{v{ puoli on sen 
interaktiivisessa k{yt|ss{ tarvittavien komentojen syntaksin
yksinkertaisuus (komentotiedostot eli scriptit sensijaan
n{ytt{v{t yleens{ /ii<piikkilanka-aita>an takertuneelta
/ii<muikkuverkolta>). Komennot ovat tavallisesti muotoa
 
</copymode
      </sl komento> /opt<-</sl<optio>>>/iter/opt<</sl<tiedosto>>>/iter 
>
 
/ii<Komennon> nime{ seuraavat siis mahdolliset /ii<optiot>
(vaihtoehdot, /ii<tarkentimet>, /ii<vivut>), jotka tunnistetaan
niiden edess{ olevasta </tt -> -merkist{.  Mik{li komento
kaipaa tiedostoja, ne ilmoitetaan komennon lopussa. 
 
</sc Unix>issa kaikkinainen redundanssi on l{hes tyystin eliminoitu.
Komennot ovat yleens{ vain parin merkin mittaisia eik{ niit{
juuri voi sanoa havainnollisiksi. Tarkentimet ovat viel{ pahempia:
ne k{sitt{v{t tavallisesti vain yhden kirjaimen, mutta valikoimaa
riitt{{, niin ett{ huomattava osa aakkostosta on k{yt|ss{.
Joissakin tapauksissa t{ll{ kirjaimella on jokin h{m{r{
onomatopoeettinen yhteys tarkentimen merkitykseen. Onneksi
tavallinen k{ytt{j{ tulee toimeen suhteellisen pienell{
valikoimalla komentoja ja optioita, jotka 
</sc<unix>>ia k{ytt{ess{{n oppii nopeasti.
 

/section<Tunnussanan avaaminen ja vaihtaminen>

/ii<Tunnussana>n vanhettua tai ennen ensimm{ist{ varsinaista
ositusk{ytt|yhteytt{ tunnuksen muodostamisen j{lkeen tunnus
on "lukossa", ja k{ytt{j{n tulee "avata" tunnuksensa.  Ennen
tunnuksen avaamista (vanhentuneella tai upouudella
tunnuksella) j{rjestelm{{n ei voi l{hett{{ er{t|it{. 

Tunnuksen avaamiseksi k{ytt{j{n tulee muodostaa
/ii<ositusk{ytt|yhteys> supertietokoneeseen (joko komennolla
</tt/ii<cint>> tai </tt/ii<telnet> cray>) ja vaihtaa
tunnussanansa (alla kuvattavalla menettelyll{; komentoa 
</tt/ii<passwd>> ei kuitenkaan tarvitse eik{ voi antaa).  T{m{
istunto poikkeaa normaalista tunnussanan vaihdosta siten,
ett{ </bf siin{ ei voi tehd{ mit{{n muuta kuin vaihtaa
tunnussanansa>, koska j{rjestelm{ katkaisee automaattisesti
yhteyden (normaalisti tunnussanan vaihdon yhteydess{
j{rjestelm{ ei katkaise yhteytt{). 

Tunnussanan vaihdon onnistuttua tunnus on "avattu", ja
j{rjestelm{{n voi l{hett{{ er{t|it{ ja muodostaa
ositusk{ytt|istuntoja normaalisti.  Mik{li istunto sattuu
vahingossa katkeamaan ennenkuin tunnussana on onnistuneesti
vaihdettu, ei uutta yhteytt{ supertietokoneeseen en{{ voi
muodostaa, vaan on otettava yhteytt{ TLP:uun. 

</sc<Unicos>>issa tunnussana vaihdetaan komennolla /iii<passwd>

</copymode
      passwd
>

Komento kysyy ensin tunnussanaa muuttavan henkil|n tunnistamiseksi
vanhan tunnussanan, ja sitten kirjoitusvirheiden eliminoimiseksi uuden
tunnussanan kahdesti.

Tunnussanaa ei voi vaihtaa er{ty|ss{, vaan tunnussanan
vaihtoa varten on muodostettava ositusistunto
supertietokoneeseen esimerkiksi komennoilla </tt cint>
(VAX-edustakoneesta Cray Station ohjelmistolla tai
</sc unix>-edustakoneesta Cray Link -ohjelmistolla) tai
</tt telnet> (</sc<tcp//ip>>-yhteyksill{ </sc unix>-edustakoneista
ja my|s </sc opmvax>ista).  Tunnussanan vaihtaminen
onkin sitten ainoa tilanne, jossa edustakoneesta
l{hetett{v{ er{ty| ei riit{, vaan on v{ltt{m{tt{ luotava
ositusistunto supertietokoneelle. 

Tunnussana vaihdetaan siis seuraavasti:

</leftskip1cm

/item<$/bullet$> ensin annetaan k{ytt{j{tunnus ja vanha (tai upouusi) 
tunnussana (eli kirjoittaudutaan sis{{n normaalisti),

/item<$/bullet$> jos kysymyksess{ ei ole tunnuksen avaaminen, annetaan komento
</tt passwd>,

/item<$/bullet$> kehotteeseen </tt old passwd:> kirjoitetaan vanha tunnussana,

/item<$/bullet$> kehotteeseen </tt new passwd:> kirjoitetaan uusi tunnussana,
jonka j{lkeen j{rjestelm{ pyyt{{ kirjoittamaan uuden tunnussanan viel{
toiseen kertaan. 

/item<$/bullet$> Jos kyseess{ oli tunnuksen avaaminen, istunto purkautuu
automaattisesti, kun tunnussana on vaihdettu. T{m{n j{lkeen voi l{hett{{
er{ty|n tai ottaa uuden interaktiivisen yhteyden. Normaalissa tunnussanan
vaihdossa istunto ei purkaudu, vaan istuntoa voi jatkaa normaalisti. 

>


/section</ii<Opastusj{rjestelm{>>
 
</sc Unix>in mukana tulevat manuaalit my|s tietokoneen
luettavassa muodossa. Manuaaleja voi selailla p{{tteitse
</tt/ii<man>>-komennolla. Kysymyksess{ on vain tiedostoversio
painetuista manuaaleista; </sc vms>:n tyyppist{ hierarkista
help-j{rjestelm{{ </sc unix>issa ei ole, mutta komennolla 

</copymode
      man -k </sl avainsana>
>

saa listan kaikista niist{ komennoista, jotka 
liittyv{t annettuun avainsanaan.
 
Seuraavassa on esimerkkin{ Crayn antama vastaus
komentoon </tt man wc>. Lis{{ tietoa </tt man>-komennon
k{yt|st{ saat tietenkin sanomalla </tt man man>.
 
</font/tt=cmtt8
/catcode`/[=12
/catcode`/]=12
/catcode`/{=12
/catcode`/}=12
/copymode
WC(1)

NAME
     wc - Counts characters, lines, and words in a file

SYNOPSIS
     wc [-c] [-l] [-w] [files]

DESCRIPTION
     The wc command counts lines, words, and characters in the
     named files or in the standard input if no files are given.
     It also keeps a total count for all named files.  A word is
     a maximal string of characters delimited by spaces, tabs, or
     new-line characters.




     Options:
     -c    Counts characters
     -l    Counts lines
     -w    Counts words

     The -l, -w, and -c options may be used in any combination to
     specify that a subset of lines, words, and characters are to
     be reported, respectively.  All are printed by default.

     When files are specified on the command line, they are
     printed along with the counts.

EXAMPLES
     In addition to being useful for determining the size of a
     text file, wc can also be useful for determining the number
     of items displayed by other UNICOS commands.

     In this example, we will pipe the output of who(1) to wc.
     who shows who is logged into the system, displaying one line
     per user.  By counting the number of lines, wc gives a count
     of how many people are logged into the system.  The first
     number displayed by wc is line count, which corresponds to
     the number of users logged in.

          who /char'174 wc

     A more sophisticated example follows:

          who /char'174 wc /char'174 awk '{print "Number of Users:",/$1}'

     SR-2011 5.0                     1             Cray Research, Inc.

>


 
/ii<Manuaali>t on jaettu sektioihin siten, ett{ sektio 1 sis{lt{{
</sc<unicos>>in komennot, sektio 2 /ii<systeemikutsut>, sektio 3 
/ii<kirjastoaliohjelmat> jne. 

Seuraavassa on sektioluettelo,
jonka avulla selvinnee, mist{ tietoa l|ytyy: 
/iii<manuaalisektiot> 

</font/tt=cmtt8
/beginverbatim
1     User command entries in the UNICOS
      User Commands Reference Manual,
      publication SR-2011.

1bsd  User command entries from BSD UNIX in
      the UNICOS User Commands Reference
      Manual, publication SR-2011.

1m    Administrator command entries in the
      UNICOS Administrator Commands
      Reference Manual, publication SR-2022.

1r    Quick-reference command entries in the
      UNICOS User Commands Ready Reference,
      publication SQ-2056.

1rb   Quick-reference command entries from
      BSD UNIX in the UNICOS User Commands
      Ready Reference, publication SQ-2056.

2     System call entries in Volume 4:
      UNICOS System Calls Reference Manual,
      publication SR-2012.

3bsd  C library routines ported from BSD
      UNIX in Cray C Library Reference
      Manual, publication SR-0136.

3c    C library routine entries in Cray C
      Library Reference Manual, publication
      SR-0136.

3db   SYMDUMP and SYMDEBUG library routine
      entries in Volume 1: UNICOS Fortran
      Library Reference Manual, publication
      SR-2079.

3f    Fortran library routine entries in
      Volume 1: UNICOS Fortran Library
      Reference Manual, publication SR-2079.

3io   I/O library routine entries in Volume
      1: UNICOS Fortran Library Reference
      Manual, publication SR-2079.

3m    Math library routine entries in Volume
      3: Math and Scientific Library
      Reference Manual, publication SR-2081.

3n    TCP/IP network library routine entries
      in Volume 5: UNICOS Network Library
      Reference Manual, publication SR-2057.

3q    CRAY-2 calling sequence entries in
      Volume 1: UNICOS Fortran Library
      Reference Manual, publication SR-2079.

3rpc  RPC library routine entries in Volume
      5: UNICOS Network Library Reference
      Manual, publication SR-2057.

3s    C library routine entries in Cray C
      Library Reference Manual, publication
      SR-0136.

3sci  SCILIB (libsci) library routine
      entries in Volume 3: Math and
      Scientific Library Reference Manual,
      publication SR-2081.

3svc  RPC services library routine entries
      in Volume 5: UNICOS Network Library
      Reference Manual, publication SR-2057.

3u    Utility library routine entries in
      Volume 1: UNICOS Fortran Library
      Reference Manual, publication SR-2079.

3w    TCP/IP socket compatibility library
      routine entries in Volume 5: UNICOS
      Network Library Reference Manual,
      publication SR-2057.

3x    Miscellaneous library routine entries
      in Volume 1: UNICOS Fortran Library
      Reference Manual, publication SR-2079.

3yp   NFS yellow pages library routine
      entries in Volume 5: UNICOS Network
      Library Reference Manual, publication
      SR-2057.

3z    Macros and opdef entries in UNICOS
      Macros and Opdefs Reference Manual for
      CRAY-2 Computer Systems, publication
      SR-2082.

4d    Special file (device) entries in the
      UNICOS File Formats and Special Files
      Reference Manual, publication SR-2014.

4f    File format entries in the UNICOS File
      Formats and Special Files Reference
      Manual, publication SR-2014.

4n    TCP/IP file, facility, and protocol
      entries in the UNICOS File Formats and
      Special Files Reference Manual,
      publication SR-2014.

/endverbatim>

Jos esimerkiksi haluat tietoa </tt scilib>-kirjaston
rutiinista </tt MINV>, se l|ytyy komennolla

</copymode
      man 3sci minv
>

Ellet tied{ komennon tarkkaa nime{ tai mist{ sit{ voisi hakea, voit sanoa
esimerkiksi </tt man -k inverse>, jolloin saat vastaukseksi 
 
</tt
MINV(3SCI) - Computes determinant and inverse of square matrix
>
 
T{st{ n{kyy, ett{ aiheeseen liittyv{ aliohjelma </tt MINV>
l|ytyy sektiosta </tt 3sci>.

/iii<manuaalisivujen paperitulostus>
Jos manuaaliteksti{ on sivukaupalla, sen voi tietenkin tulostaa
tiedostoon, siirt{{ omalle edustakoneelle ja tulostaa 
l{himm{lle kirjoittimelle. Manuaalisivuilla on n{ytt|p{{tteiden
n{yt|nohjauskoodeja, jotka paperikopiossa n{ytt{v{t kovin
h{iritsevilt{. Kontrollimerkit saa onneksi pois sopivilla
</tt man>-komennon optioilla. Esimerkiksi komento

</copymode
      man -oulb cc /gt ohje
>

tallettaa komennon </tt cc> manuaalisivut tiedostoon </tt ohje>
muodossa, jonka voi sitten listata mille tahansa laitteelle.


Ohjelmistoista saa tietoa komennolla /iii<info>

</copymode
      info </sl ohjelmisto>
>

Pelkk{ 

</copymode
      info
>

kertoo, mist{ kaikista ohjelmistoista tietoa on saatavana.

 

/section</ii<Prosessit>>
 
</sc Unix>issa l{hes jokainen komento ja ohjelma muodostaa oman prosessin.
Poikkeuksena ovat er{{t /ii<komentotulkki>en sis{iset
komennot (built in commands), joita ovat esimerkiksi </tt cd>
ja </tt pwd>. 

K{ynniss{ olevat prosessisi saat selville komennolla </tt/ii<ps>>.
Seuraavassa on esimerkki komennon laajasta tulostuksesta eli
komennosta </tt ps -l>:


</leftskip-1cm/copymode
/font/tt=cmtt8
  F S  UID   PID  PPID PRI  NI   ADDR   SZ  WCHAN TTY  TIME CMD
101 0  103  4487  4294  40  20  12667  166        p001 0:00 ps
  0 S  103  4294     1  39  20  13400  140    501 p001 0:00 csh
  1 R  103  4478  4294  66  24  13625  680        p001 0:41 nb
>

Kent{t merkitsev{t seuraavaa:

/beginitems

/item<$/bullet$> </tt/ii<S>> (Status) ilmoittaa prosessin tilan:
jos kent{ss{ on numero, se kertoo, miss{ cpu:ssa prosessi on
suoritettavana, </tt S> (Sleep) tarkoittaa, ett{ prosessi odottaa
jotain tapahtumaa ja </tt R> (Ready), ett{ prosessi on valmiina
suoritukseen, kunhan jostakin l|ytyy vapaa prosessori.

/item<$/bullet$> </tt/ii<PID>> on /ii<prosessin tunnus>. 
Komennoissa voi /ii<komentotulkin> eli shellin prosessitunnukseen
viitata muuttujalla </tt/ii</$/$>>.  T{t{ k{ytet{{n hyv{ksi
esimerkiksi teht{ess{ yksik{sitteisi{ tiedostonimi{, vaikka
</tt PID> ei olekaan varsinainen satunnaisluku. 

/item<$/bullet$> </tt/ii<PPID>> on prosessin is{-prosessin
tunnus eli sen prosessin </tt PID>, joka on k{ynnist{nyt kyseisen
prosessin. 

/item<$/bullet$> </tt NI> on prosessin /ii<prioriteetin> (</tt PRI>) 
laskemisessa k{ytetty /iii<nice-arvo>
</tt nice> -arvo, joka kertoo kuinka kiltti prosessi on muita kohtaan
eli suurempi arvo tarkoittaa pienemp{{ prioriteettia.
Crayss{ interaktiivisten prosessien </tt NI> on 20, 
suurin mahdollinen </tt NI> on 39.

/item<$/bullet$> </tt SZ> on prosessin varaama muistitila 512 sanan eli
4096 tavun yksik|ss{.

/item<$/bullet$> </tt TTY> kertoo p{{tteen tunnuksen. Jos kent{ss{ on </tt ?>,
on kyseess{ er{ty|.

/item<$/bullet$> </tt TIME> on prosessin kuluttama cpu-aika (mm:ss).

/item<$/bullet$> </tt CMD> on komennon tai ohjelman nimi.

/enditems

Muilla kentill{ ei k{ytt{j{n kannalta ole suurempaa merkityst{.
Kyseisell{ hetkell{ on suorituksessa ollut kolme ohjelmaa:
komentotulkki </tt csh> eli C-shell, komento </tt ps> ja ohjelma </tt nb>.

Ohjelma </tt nb> on k{ynnistetty komennolla:

</copymode
      .//nb /gt nb.out /&
>

T{ss{ ohjelman </tt nb> tulostus ohjataan tiedostoon </tt nb.out> 
(t{t{ k{sitell{{n tarkemmin luvussa /ref<8.9.2>). 
Komennon j{lkeen kirjoitettu </tt/ii</&>> -merkki k{ynnist{{
ohjelman /ii<taustaprosessi>na (background), jolloin ohjelma
ei sido p{{tett{, vaan k{ytt{j{ voi jatkaa komentojen
kirjoittamista komentotulkille.  Huomaa, ett{ </sc<unicos>>ista
puuttuu komento </tt fg>, joka tuo taustaprosessin takaisin
/ii<edustaprosessi>ksi (foreground), eik{ kulloinkin
ajettavana olevaa edustaprosessia saa en{{ kesken kaiken
taustalle n{pp{imell{ /boxed</ii<Ctrl-Z>>; molemmat n{m{ piirteet
toimivat mm.  /ii<Sun>-j{rjestelmiss{. 

On huomattava, ett{ </sc unicos>in komento </tt/ii<ps>> n{ytt{{
kaikki ne prosessit, jotka liittyv{t kysyj{n p{{tteeseen. 
Jos haluat listata kaikki omat prosessisi, voit tehd{ sen
komennolla

</copymode 
      ps -lu </sl k{ytt{j{tunnus>
>

T{ll|in saat n{kyviin my|s esimerkiksi er{ajojen prosessit.

Kaikki koneessa olevat prosessit voi listata komennolla </tt ps -ef>.
Vivulla </tt -f> saa listauksen, jossa on kerrottu prosessin omistaja.
Lis{ksi sill{ saa n{kyviin prosessin aloitusajankohdan (</tt STIME>).
Seuraavassa on esimerkki t{st{:

</copymode
/catcode`/[=12
/catcode`/]=12
     UID   PID  PPID    STIME TTY   TIME COMMAND
    root     0     0        - ?     0:19 swapper
    root     1     0        - 00    0:03 [ init ]
    root     2     0        - ?    16:21 [ idle ]
    root   206   159 13:16:39 ?     0:00 [ nqsdaemo ]
    root  2817     1 15:15:56 00    0:00 [ getty ]
    root    99     1 13:14:38 null  0:01 [ cron ]
    root   115     1 13:14:42 ?     0:01 [ msgdaemo ]
......
lounamaa  4610  4294 17:26:09 p001  0:00 [ ps ]
lounamaa  4294     1 17:04:37 p001  0:01 [ csh ]
    root  4293   132 17:04:37 ?     0:01 [ telnetd ]
>

Jos prosessi on j{{nyt ikuiseen silmukkaan tai muuten
jumiutunut, voit tappaa sen komennolla /iii<kill>

</copymode
      kill </sl pid>
>

miss{ </sl pid> on prosessin tunnus. Jos komento ei n{yt{ purevan,
voit kokeilla komennon vahvinta muotoa eli komentoa 

</copymode 
      kill -9 </sl pid>
>

Numerolla 9 kerrotaan, ett{ l{hetet{{n /ii<signaali> numero
9, jota ohjelma ei itse voi mill{{n ottaa kiinni. Lis{tietoja
signaalien kiinniottamisesta saat komennon </tt man sh> kohdasta
</tt /ii<trap>>.  
 

/section</ii<Editorit>>
 
</sc<Unix>>iin kuuluu muutamia vakioeditoreita, joista eniten
k{ytettyj{ ovat /ii<rivieditori> </tt/ii<ed>> ja
/ii<kuvaruutueditori> </tt/ii<vi>>.  Muut kuin </sc<unix>>
-fanaatikot pit{nev{t ainakin </tt vi>-editoria lajinsa
kammottavimpana edustajana.  Rivieditoriksi </tt ed>
sensijaan on varsin monipuolinen.  Tiivistelm{ sen k{yt|st{
l|ytyy t{m{n oppaan lopussa olevasta referenssikortista. 
Lis{{ ohjeita sek{ </tt ed>:n ett{ </tt vi>:n k{yt|st{
on Leila Pohjolaisen toimittamassa oppaassa </sl Editorit>.
Seuraavassa k{sitell{{n aivan lyhyesti muutamia t{rkeimpi{
</tt ed>:n komentoja.
 
Tiedostojen editointia supertietokoneella on yleens{ syyt{ v{ltt{{. 
Pieni{ muutoksia voi toki tehd{.  P{{s{{nt|n{ voi pit{{
sit{, ett{ ellei muutoksia voi tehd{ muutamalla rivieditorin
</tt ed> komennolla, editointi on syyt{ tehd{
edustakoneella. 
 
Rivieditori </tt ed> k{ynnistyy komennolla

</copymode
      ed </sl file>
>

K{ynnistyess{{n editori ilmoittaa, kuinka monta merkki{
tiedostossa on. Jos kyseess{ on uusi tiedosto, saadaan
ilmoitus </tt Cannot open input file>, josta ei 
kuitenkaan tarvitse huolestua.
Muulloin </tt ed> vastaa virheellisiin komentoihin
pelk{ll{ kysymysmerkill{ (</tt?>), josta k{ytt{j{n
sopii tajuta t|p{nneens{.

Editori voi olla joko komento- tai sy|tt|tilassa.
K{ynnistyess{{n se on aina komentotilassa.
Sy|tt|tilaan p{{st{{n komennoilla </tt i>
(insert, lis{t{{n teksti{ nykyisen rivin edelle) tai
</tt a> (append, lis{t{{n nykyisen rivin j{lkeen).
Aloitettaessa kirjoittaa teksti{ uuteen tiedostoon
on ensimm{iseksi annettava komento </tt a>.
Sy|tt|tilasta p{{st{{n pois l{hett{m{ll{ rivi, jolla
on pelkk{ piste (</tt.>) ensimm{isell{ sarakkeella.

Komennolla </tt w> talletetaan tiedosto. 
Editori ilmoittaa talletetun tiedoston koon.
Editorista poistutaan lopuksi komennolla </tt q>.
Jos editorista yritet{{n poistua tallettamatta
muutoksia, </tt ed> vastaa flegmaattiseen tapaansa
kysymysmerkill{. Jos olet m|hlinyt ja
haluat todella poistua, vastaa t{h{n taas </tt q>:lla,
muuten editointia jatketaan.

Komentotilassa annettavat komennot ovat muotoa

</copymode
      /opt</sl<rivit>></sl<komento>>/opt</sl<optiot>>
>

T{ss{ </sl rivit> ilmoittaa riviv{lin, jolle komento
kohdistuu. Se voi olla muotoa </sl luku> tai
</sl luku1></tt,></sl<luku2>>. Luvut voivat olla
tavallisia rivinumeroita, mutta niiden paikalla voi
olla my|s piste (</tt.>), joka tarkoittaa nykyist{
rivi{, dollari (</tt/$>), joka tarkoittaa tiedoston
viimeist{ rivi{, tai lausekkeita kuten </tt.-1>
(nykyist{ rivi{ edelt{v{ rivi). Jos riviv{li puuttuu,
komento kohdistuu nykyiseen riviin. 

Halutulle riville voi siirty{ kirjoittamalla
kyseisen rivin numeron. Pelkk{ /boxed<Enter>
siirtyy seuraavalle riville ja tulostaa sen.


Seuraavassa on muutamia hy|dyllisi{ komentoja:

/beginitemss<3truecm><27truemm>

/itemm<p>
Listataan ilmoitettu riviv{li. Esimerkiksi </tt .-5,.+5p>
tulostaa 11 rivi{ nykyisen rivin ymp{rilt{.
Koko tiedosto listataan komennolla </tt 1,/$p>.

/itemm<d>
Tuhotaan ilmoitettu riviv{li.

/itemm<x/opt</sl<n>>>
Ilmoitetut rivit siirret{{n nykyisen rivin j{lkeen.
Komennossa voidaan my|s ilmoittaa, mink{ rivin j{lkeen
siirrett{v{t rivit vied{{n. Esimerkiksi </tt 10,15x20>
siirt{{ rivit 10--15 rivin 20 j{lkeen.

/itemm<t/opt</sl<n>>>
Kopioidaan rivit rivin </sl n> per{{n. Jos </sl n>
puuttuu, rivit kopioidaan nykyisen rivin j{lkeen.

/itemm<s//</sl<s1>>//</sl<s2>>>
Muutetaan merkkijono
</sl s1> merkkijonoksi </sl s2>.
Esimerkiksi komento </tt s//huu//haa> muuttaa nykyisell{
rivill{ tekstin </tt huu> tekstiksi </tt haa>.
Jos komennon per{ss{ on </tt g>, muutetaan kaikki
ko. rivilt{ l|ytyv{t merkkijonon esiintym{t.
Esimerkiksi </tt 1,/$s//huu//haa//g>
muuttaa kaikki tiedoston </tt huu>t </tt haa>ksi. 

/itemm<//</sl<s>>//>
Haetaan seuraavaa merkkijonon </sl s> esiintym{{.
Tiedostoa k{yd{{n l{pi syklisesti:
kun tiedosto loppuu, palataan uudestaan alkuun.
Jos halutaan hakea saman merkkijonon seuraavia esiintymi{,
riitt{{ pelkk{ </tt////> eli merkkijonoa ei tarvitse
kirjoittaa uudestaan.

/itemm<?</sl<s>>?>
Haetaan edelt{v{{ merkkijonon </sl s> esiintym{{.

/enditems



