Komentorivi

Seuraavissa tehtävissä voit käyttää apuna dokumenttia "Unix-käyttöjärjestelmän käytön alkeita". Pikakertauksen komennoista löydät myös luentomateriaalista. Avaa molemmat edellämainituista dokumenteista valmiiksi näkyviin omiin selainikkunoihinsa, koska joudut niitä välttämättä käyttämään.

Voit käyttää apunasi myös Sormet unixiin-harjoituksia tai jos haluat syventyä aiheeseen kunnolla niin UNIX ja shell-ohjelmointi -kurssia.

WWW-kotisivutilan ja UNIX-käytön aktivointi

Pääteyhteys Unix-palvelimeen

Mallivideossa käytetään erillistä Putty-ohjelmaa ssh-pääteyhteyden avaamiseen, mutta uusissa windows-koneissa on jo valmiina oma ssh-ohjelma.

ssh-yhteyden avaaminen
Puttyn käyttäminen

Jos sinulla ei ole omalla koneellasi valmiina ssh-komentoa, voit käyttää myös Puttya

Mallivideo ssh-yhteydestä
  • Käynnistä Putty SSH Client tai Kitty SSH Client. Kitty löytyy Start-valikon alta tai nopeimmin sen saat kun painat Windows+R ja kirjoitat Kitty

    Kotikoneelle Kittyn voi hakea osoitteesta: https://www.fosshub.com/KiTTY.html

    Jos käytät Macia tai Linuxia niin voit suoraan avata terminalin ja ottaa sieltä yhteyden kirjoittamalla:

    ssh omatunnus@halava.cc.jyu.fi
  • Tarkista ensimmäisellä käyttökerralla, että Kittyn asetuksissa on oikea merkistö.
    • Hae asetuksista kohta Window|Translation ja varmista, että Remote character set-kohtaan on valittuna UTF-8
    • Siirry vielä kohtaan Session. Kirjoita Host name-kohtaan halava.cc.jyu.fi. Valitse listasta Default settings ja sen jälkeen Save
  • Nyt voit valita Session-välilehden
  • Kirjaudu käyttäjäksi Tietohallintokeskuksen jalava.cc.jyu.fi-palvelimelle (tai halava.cc.jyu.fi) seuraavien ohjeiden mukaisesti:
    • Host Name (or IP address)-kohtaan kirjoitetaan palvelinkoneen nimi. Ota yhteys jalava.cc.jyu.fi -koneeseen. Jos jalava ei vastaa niin voit kokeilla myös halava.cc.jyu.fi.
    • Port-kohdassa pitää lukea 22
    • Connection type-kohdassa pitää olla valittuna SSH
    Kitty Configuration -dialogi
  • Valitse Open
  • Aina kun otat ensimmäistä kertaa yhteyttä johonkin unix-palvelimeen haluaa Putty varmistaa koneen luotettavuuden ja pyytää sinua hyväksymään koneen avaimen:

    Putty Security Alert

    Hyväksy avain valitsemalla Yes

    Jos Putty myöhemmillä yhteyskerroilla väittää avaimen muuttuneen niin joku saattaa yrittää kaapata ssh-yhteyttäsi ja esiintyy jalava.cc.jyu.fi-koneena. Älä silloin avaa yhteyttä ellet ole aivan varma, että jalavan avain on muuttunut.

  • Login as-kysymykseen syötä käyttäjätunnuksesi (esim. tjlahton). Seuraavaksi Putty pyytää salasanaasi. Salasanaa kirjoittaessasi ikkunassa ei näy mitään.

    sisäänkirjautuminen palvelimelle

    Kirjautumisen jälkeen näet mistä ja milloin olet viimeksi kirjautunut sisään. Jalava jää odottamaan komentojasi.
  • Jos et pääse kirjautumaan jalava-koneeseen ja varmasti kirjoitit salasanasi oikein niin käy aktivoimassa unix-käyttöoikeus ohjeen mukaisesti.

    Palvelujen aktivointi

    • Kirjaudu siis sso.jyu.fi-palveluun ja aktivoi Palvelut-välilehdeltä Unix-suorakäyttöpalvelimien kirjautumisoikeus
    • Aktivoi samalla WWW-tilasi Kotisivutila (users.jyu.fi), ellet ole sitä jo tehnyt.
    • Jos ssh-yhteys ei vieläkään onnistu niin lue ssh yhteys ei muodostu mikä avuksi -ohje
  • Huomaa, että käytössä on SSH-pääteyhteysohjelma, joka näyttää vain mitä UNIX-koneessa tapahtuu. Kaikki syötteet annetaan siis näppäimistöllä! Esimerkiksi vierityspalkkia vierittämällä saa näkyviin vain menneitä komentoja. Hiirellä ei voi siirtää kohdistinta toiseen paikkaan.

Komentorivin käyttäminen

Kooste unixin peruskomennoista
UNIX UNIX-esimerkki TOIMINTA
/ hakemistoerotin
- ls -al Komentojen valitsimien erotinmerkki
esim. DIR /p
. cp ~/www/tyovaline/index.html . Oletushakemisto
.. cp ../luennot/index.html . Isähakemisto
ls -la ls -la tyovaline Näyttää hakemistolistauksen oletushakemistosta tai annetusta hakemistosta
cd cd tyovaline/luennot/ Vaihtaa oletushakemiston toiseksi.
mkdir mkdir tyovaline/luennot/luento1 Tekee hakemiston
rmdir rmdir luento1 Tuhoaa tyhjän hakemiston
cp cp demot/demo1.txt luennot/luento1/luento1.txt Kopioi tiedostoja
cat cat luento1.txt Tulostaa tiedoston sisällön näytölle
mv mv demot demoja Vaihdetaan tiedoston tai hakemiston nimi
rm rm luento1.txt Tuhoaa tiedoston
mv mv luento1.txt ../../demot/ Siirtää tiedoston uuteen paikkaan
chmod chmod go+r index.html Muutetaan tiedostojen ja hakemistojen oikeuksia
nano nano luento1.txt Yksinkertainen tekstieditori

pwd, cd, ln, echo ja mkdir

nano

Nano-editori

nano on yksinkertainen tekstieditori (vrt. windowsin notepad). Joistain unix-koneista löytyy myös pico, joka on aivan samanlainen editori kuin nano.

Kopiointi

[tunnus@jalava tyovaline]$ tree
.
├── demot
├── harkka
├── luennot
└── testi.txt

3 directories, 1 file

mv

Tiedostojen ja kansioiden poistaminen (rm ja rmdir)

Tiedostojen oikeuksien muuttaminen

Tiedostojen oikeuksia on osattava muuttaa, jos haluaa harjoitustyön komentoriviosuudesta arvosanaksi kolme (3) tai enemmän.

Jokaisella tiedostolla ja hakemistolla on omistaja, joka määrittelee omat ja muiden oikeudet lukea, muuttaa tai viitata tiedostoon. Tiedoston käyttöoikeudet näkee ls -al komennolla:

[tunnus@halava tyovaline]$ ls -al
total 8
drwxr-xr-x.  5 tunnus users   61 Nov  5 12:41 .
drwxr-xr-x. 25 tunnus users 4096 Jan 18 10:07 ..
drwxr-xr-x.  2 tunnus users    6 Nov  5 12:39 demot
drwxr-xr-x.  2 tunnus users    6 Nov  5 12:39 harkka
drwxr-xr-x.  2 tunnus users    6 Nov  5 12:39 luennot
-rw-r--r--.  1 tunnus users  216 Jan 23 13:37 testi.txt
[tunnus@halava tyovaline]$

Oikeudet näkyvät ensimmäisessä sarakkeessa.

Sarakkeen ensimmäinen kirjain kertoo tiedostotyypin:

Yhdeksän seuraavaa ovat varsinaiset oikeudet. Oikeudet ovat järjestyksessä seuraavasti:

Oikeuksia on kolmenlaisia. Jos ko. oikeutta ei ole kirjaimen paikalla on - .

Esimerkiksi rivi -rw-r--r-- tarkoittaa, että:

halava- ja jalava-koneissa opiskelijoilla ryhmä ja muut ovat käytännössä sama asia. Henkilökunta saattaa kuulua johonkin ryhmään jolloin myös ryhmän oikeuksilla on merkitystä.

chmod

chmod-komennolla muutetaan tiedostojen ja kansioiden oikeuksia.

chmod [-optiot] [asetettavat oikeudet symboleina] [tiedoston tai hakemiston nimi]

Tiedostojen oikeuksien muuttaminen tapahtuu chmod-komennolla. Optio -R muuttaa oikeudet rekursiivisesti eli koko hakemistorakenteeseen. Varsinainen oikeustietoihin tapahtuva muutos annetaan joko oktaalinumeroina tai symbolisesti, josta tarkemmin seuraavassa:

Ensin annetaan tieto kenelle oikeuksia muutetaan.

Seuraavana kerrotaan miten oikeuksia muutetaan:

Viimeisenä kerrotaan mitä oikeutta muutetaan:

Esimerkiksi lisätään tiedostoon metsastys.txt annetaan kaikille suoritusoikeus.

chmod a+x metsastys.txt

Lisätään käyttäjälle ja ryhmälle kirjoitusoikeus tiedostoon lintu.doc.

chmod ug+w lintu.doc

Annetaan kaikille käyttäjille lukuoikeus kotisivu-nimiseen kansioon:

chmod a+r kotisivu

Poistetaan ryhmältä ja muilta kaikki oikeudet omat-kansiossa olevaan tiedostoon oma.txt

chmod go-rwx omat/oma.txt

Asetetaan yhteinen.txt-tiedostoon kaikille lukuoikeus ja poistetaan kaikki muut oikeudet:

chmod a=r yhteinen.txt

Tämän jälkeen ei itse tiedoston omistajakaan voi muuttaa tiedoston sisältöä ennen kuin antaa itselleen tiedostoon kirjoitusoikeuden.

Yritä tehdä seuraavat:

Vaativampia tehtäviä

Seuraavat tehtävät kannattaa tehdä, jos haluat harjoitustyön komentoriviosuuden arvosanaksi enemmän kuin kolmosen (3).

Ohjelman tulostuksen edelleenohjaus

Komentorivikäytölle on tyypillistä työkaluajattelu jossa monimutkaisemmat tehtävät suoritetaan yhdistelemällä yksinkertaisia työkaluja.

Yksi tyypillinen toimenpide on ohjelman tulostuksen ohjaaminen tiedostoon eikä näytölle. Tällä saadaan komennon antama tulos jatkokäsiteltäväksi. Tulostuksen ohjaaminen tapahtuu >- ja >>-merkinnöillä.

Putkitus

Komennon tulosteen voi ohjata myös suoraan toiselle komennolle |-operaattorilla eli putkittaa tulosteen jonossa seuraavana olevalle ohjelmalle. esim. ls-komennon tulosteen voi sivuttaa näytölle putkittamalle sen less-komennolle. esim.

ls | less

Korvausmerkit

Monesti halutaan tehdä sama toiminto useammalle tiedostolle samaan aikaan. Tämä edellyttää yleensä kaikkien tiedostojen nimien listaamista jonkun komennon parametreina. Jos tiedostoja on paljon tämä on vaivalloista. Usein ongelma kierretään käyttämällä korvausmerkkejä (jokerimerkkejä, wildcards)

man

man-komennolla saat näkyville haluamasi komennon manuaalin eli käyttöohjeen. esim.

man ls

Tutki seuraavien komentojen manuaalisivuja:

Mitä kukin edellämainituista ohjelmista tekee? Kokeile.

grep

grep -komento on tärkeimpiä ja hyödyllisimpiä komentorivikomentoja. grep-komennolla voidaan poimia tiedostosta vain ne rivit joilla esiintyy haluttu merkkijono. esim. halutaan listata tiedoston rivit joista löytyy sana conf

Tulostetaan tiedostot.txt-tiedostosta rivit joilla esiintyy sana My:

grep My tiedostot.txt
        

Tulostetaan /etc/-kansion tiedostoista ne joiden nimessä esiintyy sana conf:

ls /etc/ | grep conf
        

ls-komento tekee listan tiedostojen nimistä joista grep sitten poimii halutut.

Tulostetaan /etc/-kansion tiedostoista ne rivit joilla esiintyy sana www:

grep www /etc/*
        

grep käy läpi kaikki foo-alikansion tiedostot ja tulostaa niistä ne rivit joissa haettu sana esiintyy. Saat virheilmoituksia kansioista. Kokeile komentoa myös muodossa grep -s www /etc/*. Selvitä man-komennon avulla mitä -s-vipu tekee...

Komentojen optiot (vivut)

Lähes kaikkien komentojen toimintaa voi muokata optioilla eri vivuilla. Vipu on komennon perässä yleensä välilyönnillä --merkillä erotettu kirjain tai sana, joka muuttaa komennon toimintaa. Kokeile miten ls-komennon toiminta muuttuu eri vivuilla:

ls /etc/
ls -l /etc/

Komennon ymmärtämät vivut ja niiden toiminta selviää aina ohjelman manuaalisivulta. Vaatii pientä harjoittelua, että manuaalisivujen lukeminen sujuu hyvin. Yritä selvittää seuraavien ongelmien ratkaisemiseen tarvittavat vivut:

SFTP-yhteys unix-palvelimeen

Lisätehtäviä

Seuraavissa tehtävissä joudut soveltamaan useita eri komentoja, putkitusta, korvausmerkkejä ja komentojen vipuja. Jos haluat kurssista rvosanaksi viisi, niin sinun on syytä harjoitella näitä.

SSH-yhteys toiseen Unix-koneeseen

Tiedostojen oikeudet WinSCP:llä

Voit muokata Unix-koneessa olevien tiedostojen luku- ja kirjoitusoikeuksia WinSCP:llä.

Huom! U:-asemalla eli kotihakemistossa tiedostojen oikeuksien muokkaaminen ei toimi normaalilla tavalla.

Hyödyllisiä unix- ja komentoriviohjelmia

Jos komentorivi- ja pääteohjelmat kiinnostavat enemmän niin voit halutessasi tutustua tarkemmin seuraaviin jalava-koneesta löytyviin ohjelmiin:

Kaikki edelläluetellut ohjelmat ovat saatavilla sekä Unix/Linux-ympäristöihin että Windows/DOS-ympäristöön.

Jos sinulle jäi aikaa voit tutustua seuraaviin komentoihin:

Voit lisäharjoitella korttipelin parissa.

Käyttäjien kommentit

Kommentoi Lisää kommentti
Informaatioteknologia - Jyväskylän yliopiston informaatioteknologian tiedekunta