From eff4ace8ee6f8829aed6bae773bb977636fd18ca Mon Sep 17 00:00:00 2001
From: Paavo Nieminen <paavo.j.nieminen@jyu.fi>
Date: Thu, 27 Mar 2025 10:04:41 +0200
Subject: [PATCH] =?UTF-8?q?P=C3=A4ivitys=202025,=20nanot=20pois=20ja=20muu?=
 =?UTF-8?q?ta.?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

---
 2015/demot/tim/d02_sormet_syvemmalle.rst | 141 ++++++++++-------------
 1 file changed, 62 insertions(+), 79 deletions(-)

diff --git a/2015/demot/tim/d02_sormet_syvemmalle.rst b/2015/demot/tim/d02_sormet_syvemmalle.rst
index 5e2b78c..2b48c40 100644
--- a/2015/demot/tim/d02_sormet_syvemmalle.rst
+++ b/2015/demot/tim/d02_sormet_syvemmalle.rst
@@ -8,15 +8,15 @@
 Sormet syvemmälle
 ###################
 
-ITKA203 Käyttöjärjestelmät -kurssin Demo 2 keväällä 2015 ja 2016 ja
-2017 ja 2018 ja 2019 ja 2020 ja 2021 ja 2022 ja 2023 ja 2024.  "Superpikajatko
-interaktiivisen Unix-kuoren käyttöön"
+ITKA2030 Käyttöjärjestelmien ja pilvipalveluiden perusteet -opintojakson Demo 2.
+
+"Superpikajatko interaktiivisen Unix-kuoren käyttöön"
 
 Paavo Nieminen, ``paavo.j.nieminen@jyu.fi``
 
 Jyväskylän yliopiston Informaatioteknologian tiedekunta.
 
-STATUS: **Tehtävä on päivitetty kevyesti vuodelle 2024. Raportoikaa
+STATUS: **Tehtävä on päivitetty kevyesti vuodelle 2025. Raportoikaa
 ongelmista heti, jos ilmenee. Palautustapa sama kuin Demo 1:ssä.**
 
 .. contents::
@@ -115,43 +115,25 @@ ja -tehokkuutta helpottavia laajennoksia, joita hyödynnämme myös.
    demo 2 julkaistaan.
 
 
-Peppu edelläkin voi kiivetä: tekstieditointi ja samanaikaiset ohjelmat hankalalla tavalla
----------------------------------------------------------------------------------------------
-
-**Tämä osio oli viimeistä kertaa mukana 2023**: Tässä kokeiltiin
-sellaista tekstieditoria kuin Nano. Sen kanssa voi tehdä omalla
-ajallaan, mitä haluaa, mutta tällä opintojaksolla harjoitellaan joko
-Vim tai Emacs tai molemmat, ja käytetään sen jälkeen jompaa kumpaa
-niistä. Se on vain fiksua. Pitkään siihen oli "lähes velvoittava
-suositus", mutta opiskelijat tekivät itselleen liikaa hallaa
-jättämällä suosituksen noudattamatta.
-
-.. TODO tuleville vuosille, jos demoa yhä käytellään: Otsikko ajan
-   tasalle, jos ei ole tekstieditointia lopulta. Kysymys
-   aihepiirivideoiden tarpeellisuudesta vähän herää... Aika simppeli
-   lukemistopätkä kokeiluineen. No joo.. ehkä jos tuli 2024 tosiaan
-   nauhoitettua, niin hyvä juttu vaan... Tuliko videoissa korostettua
-   ohjeen lukemista ja omatoimista kokeilua ja *toistojen tekemistä*?
-
-**Tarvitaan kuitenkin hieman korvaavaa materiaalia, jota pyritään nyt
-tuottamaan keväällä 2024 - seuraa ilmoittelua ja aihepiirivideoiden
-julkaisuja:**
+Ohjelmien väliaikainen hyllyttäminen ja tausta-ajojen tutkiminen
+----------------------------------------------------------------
 
-- ``C-z`` ja ``fg`` harjoittelu eri kontekstissa kuin Nanon
-  "hyllytyksen" kanssa. Eli kädentaitoja tekstipäätteen kanssa ja
-  alustava käyttäjän näkökulma *prosessinhallinnan* käsitteeseen, joka
-  on keskeisimpiä, kun puhutaan nykyaikaisista käyttöjärjestelmistä.
+Keväällä 2025 oli tarkoitus tuottaa seuraavista pari aihepiirivideota
+tämän demon yhteyteen. Mahtoikohan onnistua ja löytyykö nyt seuraavat:
 
-- Vim ja Emacs -editoreista kumpaisestakin järjestelmällinen
-  "kannustava video-opastus aloittelijalle" eli käytännössä joitakin
-  minuutteja kunkin editorin tutoriaalia yhdessä, kädestä pitäen ja
-  auki selittäen läpi videomuodossa.
+- Tämän luvun asioista: ``C-z`` ja ``fg`` harjoittelua. Eli
+  kädentaitoja tekstipäätteen kanssa ja alustava käyttäjän näkökulma
+  *prosessinhallinnan* käsitteeseen, joka on keskeisimpiä, kun
+  puhutaan nykyaikaisista käyttöjärjestelmistä.
 
-Raflaavasta otsikosta huolimatta tässäkin osuudessa on tärkeätä asiaa ja
-kokeiltavaa: Luodaan katsaus yhteen helppoon tekstieditoriohjelmaan,
-joka ainakin Linuxeista usein löytyy.
+- Myhöemmän luvun asioista: Vim ja Emacs -editoreista kumpaisestakin
+  järjestelmällinen "kannustava video-opastus aloittelijalle" eli
+  käytännössä joitakin minuutteja kunkin editorin tutoriaalia yhdessä,
+  kädestä pitäen ja auki selittäen läpi videomuodossa.
 
-Tässä kokeiltavaa, jota voisi aihepiirivideolla näyttää prosesseista:
+Kyseisissä videoissa tarkoitus käydä läpi jotakin samaa kuin tässä
+olisi tarkoitus itse kokeilla ja juurruttaa toistoharjoitteilla ja
+uteliaalla kokeilulla.
 
 Käynnistä vaikka ennalta tuttu ``less`` jonkun tekstitiedoston
 tutkimiseksi, tai ``man jokukomento``.
@@ -178,7 +160,7 @@ standardi sallii käyttää synonyyminä "Suspended". Suomenkielisillä
 kieliasetuksilla kuoren ilmoittama termi on näköjään "Pysäytetty".
 Jonkin ohjelman suomiversion käyttämä sana hetkelliselle
 pysäyttämiselle saattaa olla "hyllytys"; (nämä termit ja käännökset on
-tarkistettu uusimmista versioista viimeksi 5.4.2024).
+tarkistettu uusimmista versioista viimeksi 27.3.2025).
 
 Voit antaa komentoja kuoressa ja käyttää muita ohjelmia. Kokeile
 vaikka vanha tuttu ``ls``, joka listaa tiedostot. Pysäyttämäsi ohjelma
@@ -194,12 +176,20 @@ Nyt viimeisin pysäytetty ohjelma tuli taas "etualalle" eli
 "foreground". Lisää tietoa näistä ja muusta löytyy tietenkin
 manuaalista, POSIXista ja muualta Internetistä.
 
+Nämä kannattaa opetella kuntoon sen takia, että joskus tulet ehkä ihan
+vahingossakin näppäilemään jonkun ohjelman taka-alalle. ``Ctrl-z`` on
+niin helppo näppäinyhdistelmä hipaista, ja se voi tulla selkäytimestä
+refleksinä siksi, kun se on joissain muissa järjestelmissä
+Undo-toiminnon vakiintunut pikanäppäin. Kannattaa siis opetella
+havaitsemaan ja toteamaan tilanne ja löytämään hyllylle mennyt ohjelma
+taas etualalle käyttöön.
+
 Jatkossa halutaan editoida ohjelmakoodia tekstieditorilla ja aika
 samanaikaisesti kokeilla, miten ohjelmakoodi toimii
 käytännössä. Editori ei siis voi olla koko ajan päällä samassa
-ikkunassa. Vaikka sen voi edellä kerrotuilla näppäilyillä laittaa
-väliaikaisesti odottelemaan, on olemassa **paljon** näppärämpi tapa,
-joka on syytä ottaa haltuun tosi pian eli just nyt!
+ikkunassa. Vaikka editorinkin voisi edellä kerrotuilla näppäilyillä
+laittaa väliaikaisesti odottelemaan, on olemassa **paljon** näppärämpi
+tapa, joka on syytä ottaa haltuun tosi pian eli just nyt!
 
 
 Mikä on screen -ohjelma?
@@ -274,9 +264,9 @@ henkilö ei olisi kirjautuneena palvelimelle. Jotkut näyttävät
 käyttävän myös tekstimuotoisia email-ohjelmia, joista etäkoneillemme
 on asennettu ainakin ``pine`` ja ``mutt``. 2010-luvun loppua kohti
 tapahtui merkittävää hiljenemistä näiden ohjelmien käytössä, mutta
-vielä 2024 saatat huomata, että ``irssi`` pyörii joillain käyttäjillä
+vielä 2025 saatat huomata, että ``irssi`` pyörii joillain käyttäjillä
 ainakin halava-tietokoneessa. (Tein empiirisen kokeen halavassa
-viimeksi 5.4.2024 klo 9:38 ... kolmella käyttäjällä oli kuin olikin
+viimeksi 27.3.2025 klo 9:38 ... kahdella käyttäjällä oli kuin olikin
 silloin irssi käynnissä. Eivät irkanneet salaa!)
 
 
@@ -530,7 +520,6 @@ aiheuttajia::
   Ctrl-c   tyypillisesti lopettaa käynnissä olevan ohjelman
 
   Ctrl-z   tyypillisesti pysäyttää käynnissä olevan ohjelman
-           (tätä kokeiltiin demon alussa nano-editorissa)
 
   Ctrl-d   tyhjän rivin alussa painettuna lähettää hangup-viestin,
            jolloin mm. kuori loppuu saman tien ikään kuin olisi
@@ -1009,43 +998,37 @@ Mikäli käytät enemmän aikaa koodin tekniseen kirjoittamiseen kuin
 ratkaisun keksimiseen, käytät melko varmasti vääriä työkaluja tai et
 osaa vielä hyödyntää kalustoa niin tehokkaasti kuin olisi mahdollista!
 
-Alkupuolella tätä demoa nähtiin ``nano``, joka on helppo ottaa
-käyttöön ja ymmärtää, mutta jossa ei oikeastaan ole juuri mitään muita
-ominaisuuksia. **Oikeasti tekstin editointi vaatii järeämpää
-kalustoa**.
-
 POSIX-standardi määrää, että yhteensopivasta järjestelmästä löytyy
 vähintään yksi "visuaalisesti orientoitunut" tekstieditori, joka
 käynnistyy komennolla ``vi`` ja toimii aina vähintään juuri tietyllä
 tapaa. Käytännössä nykyään esimerkiksi meidän suorakäyttökoneillamme
 tuo komento käynnistää laajennetun editorin nimeltä ``vim`` eli "Vi
 IMproved". Vim on hyvin käyttökelpoinen ja tehokas tekstieditori,
-mutta sen käyttöönotossa on tietenkin oppimiskäyrä toisin kuin
-Nanossa.
-
+mutta sen käyttöönotossa on tietenkin oppimiskäyrä.
 
 Toinen hyvin kehittynyt ja tehokas tekstieditori on ``emacs``, jonka
 saa helposti asennettua moniin unixmaisiin käyttöjärjestelmiin - 
 esimerkiksi meidän suorakäyttökoneillamme se löytyy valmiiksi
 asennettuna.
 
-Periaatteessa hätätilanteessa voi käyttää aivan aluksi esiteltyä
-Nanoa, jolla miten kuten pystyy tekemään tämän ja myöhemmät demot
-tällä kurssilla, vaikkakaan ei kovin tehokkaasti.
+**Unohdetaan** peruskäyttäjiä paapovat ja ominaisuuksiltaan vajaat
+editorit kuten Windowsin Notepad tai meidänkin palvelimilta löytyvä
+Nano. Niitä osaa käyttää lapsikin, mikä lienee niiden tarkoitus, mutta
+ammattilaisina opetellaan haluamaan parempaa!
 
-**Pidemmän päälle suositeltavaa** (jopa ajankäytön suhteen) on valita
+**Pidemmän päälle kannattaa**, (jopa ajankäytön suhteen) valita
 joko ``vim`` tai ``emacs`` ja perehtyä sen ominaisuuksiin yksi
 kerrallaan. Tämän demon kirjoittajan oma suosikki on ilman muuta
 Emacs, mutta sotien välttämiseksi tuli nyt tälläkin kertaa mainittua
 Vim ensiksi.
 
-Keväällä 2016 näitä demoja oli tekemässä myös syventävän kurssin
-"Linux-palvelimen ylläpito" opiskelijoita. *Heille suosittelen vimiä*,
-koska se löytyy emacsia useammin palvelimilta. Kyseinen porukka myös
-unohtakoon sen nanon ihan suosiolla! Sen pitää olla taaksejäänyttä
-elämää siinä vaiheessa, kun ryhdytään oikeasti hommiin. Oikeastaan: Me
-voitais jo tällä kurssilla ryhtyä oikeasti hommiin, unohtaa Nano
-ja opetella Emacs tai Vim!
+.. Keväällä 2016 näitä demoja oli tekemässä myös syventävän kurssin
+   "Linux-palvelimen ylläpito" opiskelijoita. *Heille suosittelen
+   vimiä*, koska se löytyy emacsia useammin palvelimilta. Kyseinen
+   porukka myös unohtakoon sen nanon ihan suosiolla! Sen pitää olla
+   taaksejäänyttä elämää siinä vaiheessa, kun ryhdytään oikeasti
+   hommiin. Oikeastaan: Me voitais jo tällä kurssilla ryhtyä oikeasti
+   hommiin, unohtaa Nano ja opetella Emacs tai Vim!
 
 Lopuksi mainittakoon automaattinen tekstieditointi, joka voi joskus
 tarjota nopeimman ja helpoimman keinon etsi- ja korvaa -tyylisiin tai
@@ -1100,9 +1083,9 @@ oppimiskäyrä on aluksi jyrkempi.
 
 Emacs -tekstieditorin ensimmäinen versio on peräisin
 vuodelta 1976. Kuinka hyväksi spesifiin tarkoitukseen tehty ohjelmisto
-voi kehittyä 48 vuodessa, kuten emacs vuoteen 2024 mennessä? *Vinkki:
-aika hyväksi*. Vuonna 2024 meidän suorakäyttökoneellemme on asennettu
-versio "GNU Emacs 24.3.1". Lisätietoa emacsista esimerkiksi Wikipediasta
+voi kehittyä 49 vuodessa, kuten emacs vuoteen 2025 mennessä? *Vinkki:
+aika hyväksi*. Vuonna 2025 meidän suorakäyttökoneellemme on asennettu
+versio "GNU Emacs 27.2". Lisätietoa emacsista esimerkiksi Wikipediasta
 http://en.wikipedia.org/wiki/Emacs ja viralliselta sivulta
 https://www.gnu.org/software/emacs/
 
@@ -1206,8 +1189,8 @@ hakusanalla "emacs tutorial".
 
 Myös ``vi`` -editorin ensimmäinen versio on julkaistu
 vuonna 1976. Toistetaan siis kysymys, että kuinka hyväksi spesifiin
-tarkoitukseen tehty ohjelmisto voi kehittyä 48 vuodessa, kuten vi
-vuoteen 2024 mennessä? Tähän vastaus on sama kuin emacsin
+tarkoitukseen tehty ohjelmisto voi kehittyä 49 vuodessa, kuten vi
+vuoteen 2025 mennessä? Tähän vastaus on sama kuin emacsin
 suhteen. *Vinkki: aika hyväksi*. Alkuperäinen ``vi`` on myös
 standardoitu POSIXissa. Matkan varrella, vuosina 1987-1993, syntyi
 nykyisin suosittu laajennettu, eikä täysin standardin mukainen "Vi
@@ -1381,7 +1364,7 @@ olevista materiaaleista, joita on tehokasta tuottaa ReST-muotoisena
 mark-uppina Emacsilla. Ajan voi käyttää nyt ajatteluun ja materiaalin
 kirjoittamiseen, eikä turhaan klikkailemiseen. Ongelma ratkaistu ATK:lla.
   
-Tämän kurssin sisältöön ei mahdu automaattisen tekstieditoinnin
+Tämän opintojakson sisältöön ei mahdu automaattisen tekstieditoinnin
 opettelua, vaikka se mukavaa olisikin. Riittää muistikuva siitä, että
 tällaiset työkalut löytyvät standardina apuohjelmana. Toivottavasti
 tästä jää myös kiinnostus kokeilla näitä joskus rutiininomaisten
@@ -1454,9 +1437,9 @@ sijainti tiedostojärjestelmässä. Skriptisi tulee siis alkamaan
 jotakuinkin näin::
 
   #!/bin/bash
-  whoami > kj24_demo2_tuloste.txt
+  whoami > kj25_demo2_tuloste.txt
 
-Huomaa, että tiedoston ``kj24_demo2_tuloste.txt`` aiempi sisältö
+Huomaa, että tiedoston ``kj25_demo2_tuloste.txt`` aiempi sisältö
 häviää, kun ohjataan tuloste väkäsellä. Jatkaminen edellisen sisällön
 perään edellyttää kahden väkäsen käyttöä. Välilyönnit tulkitaan
 erotinmerkeiksi jne., joten ole edelleen perusvarovainen ja koeta
@@ -1467,7 +1450,7 @@ ja turvallisempia skriptejä, joille voi antaa kohdetiedoston nimen
 argumenttina ja jotka kieltäytyvät tekemästä tuhoisaa toimenpidettä,
 jos kohdetiedosto on jo olemassa ja muuta kaunista. Mutta ei sekoiteta
 päätä vielä sillä, vaan kovakoodataan nyt tulostetiedoston nimi
-vaikkapa juuri ``kj24_demo2_tuloste.txt``.
+vaikkapa juuri ``kj25_demo2_tuloste.txt``.
 
 Skripti pitää ajaa oleskeluhakemistosta, eli komentamalla::
 
@@ -1490,7 +1473,7 @@ tarkoitetuille tiedostoille.
 Kokeile skriptiä yhdessä screen-ikkunassa ja katso, että tuloste
 vastaa speksiä, esimerkiksi ihan tulostuskomennolla::
 
-  cat kj24_demo2_tuloste.txt
+  cat kj25_demo2_tuloste.txt
 
 Editoi tarpeen mukaan skriptiäsi siinä screen-ikkunassa, jossa editori
 on auki. Opettele vaihtelemaan näppärästi screen-ikkunoiden välillä.
@@ -1505,13 +1488,13 @@ Palautettavan tiedoston muoto
 Kun ajat skriptisi, sen suorituksesta pitää syntyä täsmälleen
 seuraavanlainen tulostiedosto (huomaa pienet erot demossa 1 tehtyyn):
 
-1. Tulostiedoston nimi on ``kj24_demo2_tuloste.txt``. Sen ensimmäisen
+1. Tulostiedoston nimi on ``kj25_demo2_tuloste.txt``. Sen ensimmäisen
    rivin sisältönä on jälleen ``whoami`` -ohjelman tuloste.
 
 2. Seuraavalle riville tulee komennon ``pwd`` tuloste. Oletetaan että
    olet toisen demon vastauksille tekemässäsi hakemistossa, ja
    kyseisen hakemiston nimihän tuosta pitäisi täten tulostua, siis
-   esimerkiksi jotakin tyyliin ``/nashome2/nieminen/kj24/demo2``.
+   esimerkiksi jotakin tyyliin ``/nashome2/nieminen/kj25/demo2``.
 
 3. Seuraavalle riville tulee komennon ``uname -a`` tuloste. Tästä
    tarkastaja näkee, että olet yliopiston suorakäyttökoneella, kuten
@@ -1527,7 +1510,7 @@ seuraavanlainen tulostiedosto (huomaa pienet erot demossa 1 tehtyyn):
 6. Seuraaville riveille tulee komennon ``ps -u `whoami` -f --forest``
    tuloste. Tulosteesta *tarkastaja näkee* mm. että käynnissä on
    screen-ohjelma, jota tässä demossa jumpataan (lisäksi näkyy toki
-   irssi, mutt, nano ym. ohjelmat, joita mahdollisesti käytät samaan
+   irssi ym. ohjelmat, joita mahdollisesti käytät samaan
    aikaan; emacsista saa respectiä välittömästi, samoin vimistä...
    nanosta vähemmän, mutta *jokin editori on oltava käynnissä
    screenissä*). Erityisesti näkyy myös että käynnissä on kuoresta
@@ -1567,7 +1550,7 @@ Tulostetiedoston lopussa halutaan vielä tehtävän tarkastamisen
 yhteydessä nähdä itse skriptin sisältö. Tämä hoituu sillä, että
 skriptisi viimeinen rivi on **TÄSMÄLLEEN** seuraava::
 
-  cat "$0" >> kj24_demo2_tuloste.txt
+  cat "$0" >> kj25_demo2_tuloste.txt
 
 Tätä älä muokkaa mitenkään. Myöhemmin kurssilla selviää, millaisia
 potentiaalisia ongelmia tällä voisi vahingossa saada aikaan. Tämä
@@ -1575,7 +1558,7 @@ valmiiksi annettu viimeinen rivi ohjaa kohdetiedoston perään
 ``cat`` -ohjelman tulosteen. Catille on annettu argumentiksi ``"$0"``,
 joka skriptiä ajettaessa korvautuu merkkijonolla, jossa on se komento,
 jolla skripti itse on käynnistetty. Eli komennoksi muodostuu tässä
-oikeastaan automaattisesti ``cat ./demo2_skripti.sh >> kj24_demo2_tuloste.txt``.
+oikeastaan automaattisesti ``cat ./demo2_skripti.sh >> kj25_demo2_tuloste.txt``.
 Lopputulemana kirjoittamasi skriptin sisältö
 siis tulostuu tulostiedoston perään. Dollarimerkillä alkavista
 jutuista puhutaan myöhemmin lisää. (En tiedä, onko ``$0``:n käyttö
@@ -1603,7 +1586,7 @@ Osa 5: Pakollinen palautustehtävä
 harjoiteltiin.
 
 Tästä demosta palautetaan tasan yksi tiedosto nimeltään
-``kj24_demo2_tuloste.txt``, joka on luotu täsmälleen edellisessä
+``kj25_demo2_tuloste.txt``, joka on luotu täsmälleen edellisessä
 kohdassa kuvatulla tavalla.
 
 
-- 
GitLab