Esteettömät WWW-sivut, komentorivityöskentely - UNIX, Linux, DOS - Luento 14

Tämän luennon aluksi käsitellään vielä esteettömiä WWW-sivuja ja pääaiheena on komentorivityöskentely DOS- ja Linux-ympäristöissä. Hyvää lisämateriaalia ovat artikkelit Unix-käyttöjärjestelmän alkeita, Windowsin käyttäminen komentotulkin avulla ja Komentojonotiedostot.

Esteettömän ja käytettävän WWW-sivun toteuttaminen

Esteetön WWW-sivu on usein samalla myös saavutettava ja käytettävä. Esteettömyys on yksi käytettävyyden osa-alue.

Miksi?

The power of the Web is in its universality. Access by everyone regardless of disability is an essential aspect.

- Tim Berners-Lee, W3C:n johtaja ja WWW:n keksijä

WWW-sivujen suunnittelussa on huomioitava käyttäjien

Yksi tärkeimpiä esteellisiä WWW-selaajia on Googlen hakukoneen indeksointirobotti!

Ohjeita

Tutustu WWW-julkaiseminen kurssin luentoon: WWW-sivujen esteettömyys ja käytettävyys

Mikä on komentorivi (CLI, Command Line Interface)?

Komentorivi (CLI) vs Graafinen käyttöliittymä (GUI)

Kumpi on parempi käyttöliittymä?

CLIGUI
Helppous alussaVaikea oppia, vaatii enemmän muistamistaHelppo oppia, intuitiivisempi
KäyttöliittymäJokaisen ohjelman käyttöliittymä samanlainenKäyttöliittymät erilaisia
MoniajoMoniajo on hankalaaMoniajo on helppoa
NopeusOsaavan käsissä erittäin nopeaHitaahko
KontrolliAntaa laajan kontrollinRajatumpi, ohjelmakohtaista
ResurssitVaatii vähän resurssejaVaatii paljon resursseja
SkriptausKomentojonot (Skriptaus) - erittäin helposti ohjelmoitavissa ja automatisoitavissaRajatusti mahdollista, ohjelmakohtaista
EtäkäyttöYleisimmin etäkäyttö tapahtuu CLIn avullaRajoitetusti mahdollista

Kummassakin käyttötavassa on puolensa. Tehokkainta on käyttää molempia.

graphical user interfaces make easy tasks easy, while command line interfaces make difficult tasks possible

Missä komentoriviin törmää?

Mikä on UNIX?

Jyväskylän yliopistossa opiskelijat saavat tunnuksen UNIX/LINUX-palvelimelle. Yleinen periaate palvelimen toiminnassa on seuraava:

Komentorivin hyötyjä

Yhteydenotto palvelinkoneeseen

Merkkipohjaisessa järjestelmässä työskentely

Kotihakemisto

Kuva kotihakemistosta

Käyttäjän kotihakemisto (~) on kansio, joka toimii käyttäjän oletuskansiona heti sisäänkirjautumisen jälkeen. Käyttäjän kotihakemisto ilmaistaan yleensä matomerkillä eli tildellä (~).

~
|
|-- tyovaline
|   |-- demot
|   |   |-- demo1
|   |   |-- demo2
|   |   `-- demo3
|   `-- luennot
|       |-- luento1
|       |-- luento2
|       `-- luento3

Oletushakemisto

Kuva oletushakemistosta

Oletushakemisto (.) on se kansio, jossa käyttäjä paraikaa toimii. Esimerkissä oletushakemistona toimii demot-kansio.

~
|
|-- tyovaline
|   |-- demot
|   |   |-- demo1
|   |   |-- demo2
|   |   `-- demo3
|   `-- luennot
|       |-- luento1
|       |-- luento2
|       `-- luento3

Oletuskansion (oletushakemiston) vaihtaminen

Oletushakemistoa vaihdetaan cd-komennolla.

[tjlahton@jalava ~]$ cd tyovaline
[tjlahton@jalava ~/tyovaline]$

Isähakemisto (edellinen hakemisto)

Kuva isahakemistosta

Isäkansio (..) on hakemisto, joka on kansiohierarkiassa oletushakemistosta yhden tason ylöspäin. Esimerkissä luento1-kansio isähakemisto on luennot-kansio. Vastaavasti luento1 -kansio on luennot-kansio alikansio.

~
|
|-- tyovaline
|   |-- demot
|   |   |-- demo1
|   |   |-- demo2
|   |   `-- demo3
|   `-- luennot
|       |-- luento1
|       |-- luento2
|       `-- luento3

Isäkansioon siirrytään cd-komennolla käyttäen kohdekansion nimenä ..-merkintää.

[tjlahton@jalava ~/tyovaline]$ cd ..
[tjlahton@jalava ~]$

Kansiorakenteessa navigoiminen

cd-komennolla voi siirtyä useamman kansion sisään tai peruuttaa kansiorakenteessa ylöspäin.

Kauttaviiva (/) on kansioerotin.

[tjlahton@jalava ~]$ cd tyovaline/demot/demo3/
[tjlahton@jalava demo3]$ cd ../../../
[tjlahton@jalava ~]$ cd tyovaline/
[tjlahton@jalava ~/tyovaline]$ cd demot/
[tjlahton@jalava demot]$ cd demo3/
[tjlahton@jalava demo3]$ cd ../../luennot/luento2/
[tjlahton@jalava luento2]$

Edellä nähtyä tapaa ilmaista kohdekansio kutsutaan suhteelliseksi viittaukseksi.

Suoraan kotihakemistoon pääsee aina pelkällä komennolla cd eli ei mitään parametreja

Suhteellinen viittaus

Suhteellinen viittaus tarkoittaa tapaa viitata tiedostoon tai kansioon lukien oletushakemistosta

Suhteellinen viittaus viittaa siis aina eri tiedostoon tai kansioon riippuen siitä mikä on oletushakemisto

Suhteellisessa viittauksessa kuljetaan kansiorakenteessa ylös ja/tai alaspäin oletushakemistosta aloittaen.

Absoluuttista viittausta joutuu käyttämään paljon mm. www-sivujen yhteydessä ja taulukkolaskennassa.

Kuvitellaan tilanne jossa oletushakemisto on demot

~
|
|-- tyovaline
|   |-- demot
|   |   |-- demo1
|   |   |-- demo2
|   |   `-- demo3
|   `-- luennot
|       |-- luento1
|       |-- luento2
|       `-- luento3

Nyt haluamme viitata luento2-kansioon vaikkapa siirtyäksemme sinne cd-komennolla:

[tjlahton@jalava demot]$ cd ../luennot/luento2/
[tjlahton@jalava luento2]$

Jos oletushakemistomme olisikin ollut demo1 niin toimisiko sama suhteellinen viittaus kuin edellä?

~
|
|-- tyovaline
|   |-- demot
|   |   |-- demo1
|   |   |-- demo2
|   |   `-- demo3
|   `-- luennot
|       |-- luento1
|       |-- luento2
|       `-- luento3

Edellä käytetty viittaus ei enää toimi vaan se pitää mukauttaa uuteen sijaintiin sopivaksi:

[tjlahton@jalava demo1]$ cd ../luennot/luento2/
../luennot/luento2/: No such file or directory.
[tjlahton@jalava demo1]$ cd ../../luennot/luento2/
[tjlahton@jalava luento2]$

Lyhin mahdollinen suhteellinen viittaus on pelkkä samassa kansiossa olevan tiedoston tai kansion nimi

[tjlahton@jalava demot]$ ls demo3
Tietokonevirukset ja muut nykyajan tuholaiset.doc

Jos halutaan viitata omaan oletushakemistoon niin käytetään .-merkintää. ls-komento antaa listauksen oletushakemistosta jos sille ei anneta mitään parametreja. Toiminta on siis sama kuin parametrina olisi .

[tjlahton@jalava demot]$ ls
demo1  demo3
[tjlahton@jalava demot]$ ls .
demo1  demo3
[tjlahton@jalava demot]$

Absoluuttinen viittaus

Absoluuttisessa viittauksessa tiedetään jokin sijainti, joka on oletushakemistosta riippumaton.

Absoluuttinen viittaus toimii samanlaisena aina.

Unix-koneissa voidaan absoluuttisen viittauksen aloituspaikkana käyttää joko koko tiedostojärjestelmän juurta / tai käyttäjän omaa kotihakemistoa ~

Kuvitellaan tilanne jossa oletushakemisto on demot

~
|
|-- tyovaline
|   |-- demot
|   |   |-- demo1
|   |   |-- demo2
|   |   `-- demo3
|   `-- luennot
|       |-- luento1
|       |-- luento2
|       `-- luento3

Nyt haluamme viitata luento2-kansioon vaikkapa siirtyäksemme sinne cd-komennolla:

[tjlahton@jalava demot]$ cd ~/tyovaline/luennot//luento2/
[tjlahton@jalava luento2]$

Jos oletushakemistomme olisikin ollut demo1 niin toimisiko sama absoluuttinen viittaus kuin edellä?

~
|
|-- tyovaline
|   |-- demot
|   |   |-- demo1
|   |   |-- demo2
|   |   `-- demo3
|   `-- luennot
|       |-- luento1
|       |-- luento2
|       `-- luento3
[tjlahton@jalava demo1]$ cd ~/tyovaline/luennot//luento2/
[tjlahton@jalava luento2]$

Absoluuttinen viittaus toimii, koska sen määrittelemän polun aloituspaikka on aina vakio.

Absoluuttista viittausta joutuu käyttämään paljon mm. www-sivujen yhteydessä ja taulukkolaskennassa.

Tiedostojen kopioiminen

Tiedostoja kopioidaan cp-komennolla. Komennolle kerrotaan kopioitavan tiedoston sijainti ja paikka (polku) jonne tiedosto halutaan kopioida. Voidaan käyttää sekä suhteellista että absoluuttista viittausta.

Kopioidaan tiedosto samassa kansiossa uudelle nimelle:

[tjlahton@jalava demo3]$ cp virukset.doc dokkari.doc

Kopioidaan tiedosto toiseen kansioon samalla nimellä

[tjlahton@jalava demo3]$ cp dokkari.doc ../
[tjlahton@jalava demo3]$ cp dokkari.doc ../demo1/
[tjlahton@jalava demo3]$ mkdir malli
[tjlahton@jalava demo3]$ cp dokkari.doc malli/

Kopioidaan tiedosto toiseen kansioon uudella nimellä

[tjlahton@jalava demo3]$ cp dokkari.doc ../virus.doc
[tjlahton@jalava demo3]$ cp dokkari.doc ../demo1/virus.doc
[tjlahton@jalava demo3]$ cp dokkari.doc malli/virus.doc

Kopioidaan tiedosto muualta oletushakemistoon

[tjlahton@jalava demo3]$ cp ../../testi.txt .

Kopioidaan muualla kuin oletushakemistossa oleva tiedosto muualle kuin oletushakemistoon

[tjlahton@jalava demo3]$ cp ../../testi.txt ../../luennot/luento2/

Sama kuin edellä mutta käyttäen absoluuttista viittausta

[tjlahton@jalava demo3]$ cp ~/tyovaline/testi.txt ~/tyovaline/luennot/luento2/

Sama kuin edellä mutta käyttäen sekä suhteellista, että absoluuttista viittausta

[tjlahton@jalava demo3]$ cp ~/tyovaline/testi.txt ../../luennot/luento2/

Manuaalit

Kukaan ei muista kaikkia komentoja ulkoa eikä varsinkaan kaikkia niiden vipuja. Ohjeita voi aina yrittää etsiä googlella mutta unixista löytyy myös man-komento jolla voi lukea komentojen ohjesivut

-k-vivulla voi hakea tiettyyn avainsanaan liittyvien komentojen avusteita

[tjlahton@jalava ~/tyovaline]$ man ls
[tjlahton@jalava ~/tyovaline]$ man -k www

Ongelmatilanteet

Unixin komentoriviympäristössä tulee yleensä ongelmaksi ohjelma, joka jää jumiin tai jonka toiminta muusta syystä halutaan keskeyttää. Ensimmäinen tapa katkaista ohjelman toiminta on CTRL-C-näppäinyhdistelmä.

Joskus pääteyhteys Unix-koneeseen menee jumiin. Tämän aiheuttaa mahdollinen CTRL-S-näppäinyhdistelmän painaminen, joka pysäyttää pääteohjelman toiminnan. Tästä selviytyy painamalla CTRL-Q. Jos jumiutuminen johtuu verkkoyhteyden pätkimisestä niin ei auta kuin odotella.

Mahdollisesti taustalle jäävät ongelmalliset ohjelmat voi lopettaa kill-komennolla. ps-komennolla näkee listauksen omista ohjelmistaan ja näiden ohjelmien prosessinumerot. Prosessonumeron perusteella voi kill-komennolla lopettaa ohjelman.

Jos mikään muu ei auta niin kill -9 -1 tappaa kaikki käynnissä olevat prosessisi mukaanlukien pääteyhteytesi. Käytä varoen!

Käyttäjien kommentit

Kommentoi tätä sivua Lisää uusi kommentti
Kurssimateriaalien käyttäminen kaupallisiin tarkoituksiin tai opetusmateriaalina ilman lupaa on ehdottomasti kielletty!
http://appro.mit.jyu.fi/tyovaline/luennot/luento14/
© Antti Ekonoja (antti.j.ekonoja@jyu.fi) <http://users.jyu.fi/~anjoekon/>
Tommi Lahtonen (tommi.j.lahtonen@jyu.fi) <http://hazor.iki.fi/>
2012-08-13 12:33:01
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta