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