Komentorivi
- WWW-kotisivutilan ja UNIX-käytön aktivointi
- Pääteyhteys Unix-palvelimeen
- Komentorivin käyttäminen
- pwd, cd, ln, echo ja mkdir
- nano
- Kopiointi
- Tiedostojen ja kansioiden poistaminen (rm ja rmdir)
- Tiedostojen oikeuksien muuttaminen
- Vaativampia tehtäviä
- man
- grep
- Komentojen optiot (vivut)
- SFTP-yhteys unix-palvelimeen
- Lisätehtäviä
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
- Jos et ole vielä aktivoinut kotisivutilaasi sekä UNIX-käyttöä niin tee se nyt. Kts. Miten aktivoin henkilökohtaisen kotisivutilan?.
- Jos W:-asemaa ei vielä sinulla näy niin kirjaudu koneelta ulos ja kirjaudu uudelleen sisään edellä mainitun aktivoinnin jälkeen.
- Jos haluat W:-aseman käyttöösi kotikoneelta niin lue ohje Verkkolevyjen käyttö.
- Jos käytät Macia niin lue Miten pääsen kotikoneelta yliopiston verkkoon: VPN-yhteys Macintoshilla -ohje ja Miten yhdistän verkkolevylle Mac koneella?.
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.
- Käynnistä Windowsin komentorivi (cmd). Voit käyttää myös powershellia, mutta silloin sinun pitää muuttaa powershellin taustaväri mustaksi. Mac-ympäristöissä käynnistä Terminal.
- kirjoita komentoriville seuraava komento (korvaa omatunnus omalla käyttäjätunnuksellasi) ja paina enter:
ssh omatunnus@halava.cc.jyu.fi
Voit ottaa yhteyden myös jalava.cc.jyu.fi-koneeseen. Nämä ovat identtiset koneet eikä ole väliä kumpaa käytät.
- Aina kun otat ensimmäistä kertaa yhteyttä johonkin unix-palvelimeen
haluaa ssh varmistaa koneen luotettavuuden ja pyytää sinua hyväksymään
koneen avaimen:
The authenticity of host 'halava.cc.jyu.fi (130.234.10.217)' can't be established. ECDSA key fingerprint is SHA256:KA7t35STwdE6Enj/wY13P+WnCoz9zM8jy2vR+5BpgaY. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added 'halava.cc.jyu.fi,130.234.10.217' (ECDSA) to the list of known hosts.
Hyväksy avain kirjoittamalla Yes ja painamalla enter
Jos ssh myöhemmillä yhteyskerroilla väittää avaimen muuttuneen niin joku saattaa yrittää kaapata ssh-yhteyttäsi ja esiintyy halava.cc.jyu.fi-koneena. Älä silloin avaa yhteyttä ellet ole aivan varma, että halavan avain on muuttunut.
- Seuraavaksi sinun täytyy syöttää salasanasi. Salasana ei näy sitä kirjoitettaessa. Paina enter, kun olet kirjoittanut salasanan.
tunnus@halava.cc.jyu.fi's password: Last login: Tue Aug 31 20:34:00 2021 from foobarfoo.it.jyu.fi [tunnus@halava ~]$
- Nyt olet kirjautunut halava-koneeseen ja voit kirjoittaa komentoja
- 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.
- Kopioi (copy) ja liitä (paste) toiminnot eivät toimi tavalliseen tapaan pääteyhteydessä.
CTRL-C- ja CTRL-V-näppäinyhdistelmät ovat pääteyhteydessä muussa käytössä
eikä niiden avulla voi leikata tai liittää tekstiä.
Windowsin komentorivillä (cmd) tai powershellilla voi pääteyhteydessä kopioida tekstiä maalaamalla tekstin hiirellä ja painamalla sen jälkeen enter-painiketta. Liittäminen onnistuu hiiren oikealla painikkeella. Samat toiminnot löytyvät myös cmd/powershell-ikkunan vasemman yläkulman valikon edit-alavalikosta.
Joissain muissa ohjelmissa kuten putty/kitty voi kokeilla myös näppäinyhdistelmiä: CTRL-insert (copy) ja SHIFT-insert (paste)
Puttyn käyttäminen
Jos sinulla ei ole omalla koneellasi valmiina ssh-komentoa, voit käyttää myös Puttya
- 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
- Hae asetuksista kohta Window|Translation ja varmista, että Remote character set-kohtaan on valittuna UTF-8
- 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
- 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:
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. 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.
- Kirjaudu siis account.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
- Kirjautumisen jälkeen näet komentokehotteen:
Komentokehotteen alussa lukee käyttäjätunnuksesi ja koneen nimi. Kehotteen lopussa vilkkuu kohdistin (kursori) odottamassa komentojasi. Komentokehote voi olla eri koneissa, ympäristöissä ja käyttäjillä eri näköinen mitä mallissa.tunnus@jalava ~]$
- Kirjautumisen jälkeen näet komentokehotteen. Komentokehotteen ulkoasu voi muuttua eri järjestelmissä, mutta yleensä siinä lukee oma käyttäjätunnus@kone ja tämän perässä näkyy oletuskansion nimi. Viimeisenä merkkinä on $ tai %. Komentokehotteen perässä näkyy kursori, joka kertoo mihin kohtaan komentoja ollaan kirjoittamassa.
- Kirjautumisen jälkeen olet automaattisesti kotihakemistossasi. Komentokehote näyttää, että oletuskansiosi on ~, joka tarkoittaa kotihakemistoa. Katso hakemistolistaus kirjoittamalla komento ls ja painamalla enter.
Tutki mitä
kansioita ja tiedostoja kotihakemistostasi löytyy.
[tunnus@jalava ~]$ ls
- Mistä erotat hakemiston (kansion) ja tiedoston toisistaan?
-
Kokeile myös komentoa
ls -al on sama komento kuin edellä kokeilemasi ls-komento mutta sille on lisäksi annettu lisäparametreja / optioita (-al), jotka saavat sen kertomaan enemmän tietoja tiedostoista ja kansioista. Parametrit erotetaan varsinaisesta komennon nimestä välilyönnillä.[tunnus@jalava ~]$ ls -al
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
- Selvitä ensin missä sijaitset jalava-koneen tiedostojärjestelmässä. Kirjoita komento pwd
[tunnus@halava ~]$ pwd /autohome/home3/tunnus
pwd-komento kertoo aina mikä on oletushakemistosi (työhakemisto), joka tässä tapauksessa on vielä sama asia kuin kotihakemistosi.
-
Symbolinen linkki
Luodaan kotihakemistostasi symbolinen linkki W-aseman tiedostoihisi. Kirjoita seuraava komento:
Siirry nyt html-hakemistoon cd -komennolla./opiskelu/itkp1011/makewww
cd-komennolle täytyy antaa parametrina kansion nimi johon halutaan siirtyä.[tunnus@jalava ~]$ cd html [tunnus@jalava html]$
Mikäli saat virheilmoituksen html: No such file or directory
puuttuu kotihakemistostasi linkitys kotisivuhakemistoon tai se on tehty väärin. Saat linkityksen tehtyä W:-aseman aktivoinnin jälkeen kirjoittamalla komentoriville aiemmin mainitun komennon:
/opiskelu/itkp1011/makewww
Joskus kotisivutilan aktivointi kestää jopa 15 minuuttia, joten malta tovi ja yritä cd-komentoa sitten uudelleen.
Lisätietoa: Miten luodaan symbolinen linkki
edellinen makewww-komento on valmis alias, joka tekee saman kuin seuraava rivi:
Komento luo symbolisen linkin nimeltään html. Tämä linkki vie polkuun: /wwwhome/home/$USER/public_html, joka tarkoittaa sinun W:-asemasi tiedostoja.ln -s /wwwhome/home/$USER/public_html ~/html
Jos sait virheilmoituksen ln: failed to create symbolic link "...": Tiedosto on jo olemassa niin sinulla on jo kyseinen linkki tehty. Jos linkki ei kuitenkaan toimi niin kokeile luoda linkki eri nimellä esim. www eli muuta komennon toinen parametri muotoon ~/www
- Komento ln luo linkkejä tiedostojen ja kansioiden välillä. Linkki tarkoittaa, että samaan tiedostoon tai kansioon voidaan viitata usealla eri nimellä ja eri paikoista. Koska hakemistopolku kotisivuhakemistoosi on hankala muistaa niin kannattaa tehdä siihen linkki
- Parametri -s tarkoittaa, että luodaan symbolinen linkki. Toinen vaihtoehto olisi ns. hardlink, joka toimii kuitenkin vain saman fyysisen levyn sisällä. Emme tiedä jalavakoneen levyjärjestelyistä mitään joten varminta on aina käyttää symbolista linkkiä.
- ln-komento tarvitsee parametrina polun tiedostoon johon haluat linkittää ja polun tiedostoon josta haluat tulevan linkin.
Komennon ensimmäisessä parametrissa lukeva $USER on ympäristömuuttuja, joka tarkoittaa käyttäjätunnusta. Sama komento siis toimii kaikille, koska $USER korvataan aina sillä käyttäjätunnuksella, joka on kommennon suorittajan tunnus. Voit testata komennolla
echo on komento, joka tulostaa sille annetun tekstin. Shell-ympäristö muuttaa automaattisesti ympäristömuuttujien tilalle niiden sisältämän arvon. Merkintä $HOME tarkoittaisi HOME-nimistä ympäristömuuttujaa, joka viittaa aina kunkin käyttäjän kotihakemistoon. Voit kokeilla mikä on sinun kotihakemistosi polku komennolla echo $HOME.echo $USER
echo $HOME /nashome3/tunnus
Esimerkissä komennon on suorittanut käyttäjä tunnus jolloin tuloksena on hänen kotihakemistonsa polku. Jokaisella käyttäjällä on oma kotihakemisto ja myös erilainen polku kotihakemistoon.
Jos haluat listan kaikista käytettävissä olevista ympäristömuuttujista niin kokeile komentoja env ja set
- Komennon toisessa parametrissa oleva ~-merkki tarkoittaa omaa kotihakemistoasi eli komento luo symbolisen linkin aina kotihakemistosi juureen riippumatta siitä mikä on oletushakemistosi komentoa kirjoittaessasi.
- Tämän jälkeen pääset html-linkin kautta käsiksi W:-asemasi tiedostoihin. Linkki toimii kuten
tavallinen kansio. Kokeile ls-komentoa seuraavasti niin näet minne symbolinen linkki johtaa:
Nyt voit cd-komennolla siirtyä W:-asemallesi:[tunnus@jalava ~]$ ls -al html
[tunnus@jalava ~]$ cd html
- html on nimi uudelle symboliselle linkille, joka käyttäytyy kuin kansio, ja vie suoraan kotisivuhakemistoosi eli W:-asemasi tiedostoihin.
- Jos cd html-komento antaa vieläkin virheen niin varmista, että olet aktivoinut account.jyu.fi-palvelussa WWW-tilasi!
- Tee html-kansioon alihakemisto tyovaline käyttäen
mkdir
-komentoa.
Yleensä jos komennon suoritus onnistuu niin siitä ei anneta mitään erityistä palautetta ellei komennon tarkoituksena ole tulostaa jotain. mkdir komento vain luo kansioita joten se tulostaa jotain vain virheiden yhteydessä. Vain virheistä kerrotaan.[tunnus@jalava ~/html]$ mkdir tyovaline
- Tarkista ls -komennolla, että tyovaline-hakemisto on tullut html-hakemiston alle. Jos et ole tehnyt html-hakemistoon aiemmin mitään, niin komento näyttää vain tyovaline-hakemiston sekä hakemistot . (nykyinen hakemisto) ja .. (isähakemisto).
- Kokeile siirtyä takaisin kotihakemistoon kirjoittamalla
[tunnus@jalava ~/html]$ cd
- Siirry suoraan edellä tekemääsi tyovaline-hakemistoon
[tunnus@jalava ~]$ cd html/tyovaline
Vinkki: kirjoita vain alkuosa kansiopolusta ja paina sen jälkeen sarkain (tab) -näppäintä. Komentorivi täydentyy automaattisesti, jos antamasi polku on oikea. Esim.
cd-komennolla voi antaa parametrina kokonaisen hakemistopolun jonka päähän halutaan siirtyä. hakemistojen nimet erotetaan toisistaan /-merkillä.cd html/ty
- Kokeile siirtyä takaisin html-kansioon kirjoittamalla
.. tarkoittaa aina hierarkiassa yhtä ylempänä olevaa kansiota.[tunnus@jalava ~/tyovaline]$ cd ..
- Siirry takaisin tyovaline-kansioon
- Tee tyovaline-kansioon seuraavat kolme kansiota: harkka, demot ja luennot.
- Tutki WinSCP:llä millaisen kansiorakenteen olet komentorivin kautta luonut. WinSCP päivittää listauksensa CTRL+R-pikanäppäimellä tai -painikkeella. .
- Kokeile myös tree-komentoa.
[tunnus@jalava tyovaline]$ tree . ├── demot ├── harkka └── luennot 3 directories, 0 files
- Palaa takaisin komentoriville. Siirry demot kansioon cd-komennolla.
- Yritä siirtyä demot-kansiosta suoraan luennot-kansioon cd-komennolla. Käske siirtyä yksi taso ylemmäs hakemistohierarkiassa ja edelleen tältä tasolta luennot-kansioon.
- Harjoittele suhteellisia viittauksia
nano
nano on yksinkertainen tekstieditori (vrt. windowsin notepad). Joistain unix-koneista löytyy myös pico, joka on aivan samanlainen editori kuin nano.
- Tee tyovaline-hakemistoon
nano
-editorilla (myös nano käy)
uusi tiedosto:
[tunnus@jalava tyovaline]$ nano testi.txt
Kirjoita tiedostoon muutama rivi tekstiä esim. nimesi ja pääaineesi tai mitä vain keksitkin
- Seuraavassa lyhyet ohjeet muistin virkistämiseksi
nano
-editorin käytöstä.
nanon ollessa käynnissä näkyvät yleisimmät komennot ruudun alareunassa. ^-merkki tarkoittaa ctrl-näppäimen painamista yhtä aikaa ^-merkin jälkeen tulevan kirjaimen kanssa. Esimerkiksi tiedoston tallentaminen onnistuu painamalla yhtä aikaa ctrl-näppäintä ja O-näppäintä. Nano-editorista poistutaan näppäinyhdistelmällä CTRL-X
Kursoria voi liikuttaa tekstin seassa vain nuolinäppäimillä. Hiirtä on turha yrittää käyttää koska unix-palvelimeen on vain pääteyhteys eikä unix-palvelin tiedä mitään koneellasi olevasta hiirestä.^G Get Help ^O WriteOut ^R Read File ^Y Prev Pg ^K Cut Text ^C Cur Pos ^X Exit ^J Justify ^W Where is ^V Next Pg ^U UnCut Text^T To Spell
- Tallenna tiedosto (CTRL-O). Huomaa että nano varmistaa vielä tallennustiedoston nimen (testi.txt) ja odottaa enterin painallusta.
- Poistu Nano-editorista CTRL-X-näppäinyhdistelmällä. Palaat takaisin komentoriville.
- Tarkista cat-komennolla mitä tekstitiedostoon tallentui:
cat testi.txt
Kopiointi
[tunnus@jalava tyovaline]$ tree
.
├── demot
├── harkka
├── luennot
└── testi.txt
3 directories, 1 file
- Kopioi tyovaline-hakemistosta tiedosto testi.txt hakemistoon harkka cp -komennon avulla.
- Katso luentosivun kopiointiesimerkit
- Siirry kopioinnin jälkeen tyovaline-hakemistoon.
- Kopioi sama testi.txt-tiedosto demot-hakemistoon.
- Varmista WinSCP:llä että kansiorakenteesta tuli järkevä
mv
- Siirrä demot-hakemiston tiedosto testi.txt mv-komennon avulla luennot-hakemistoon.
- Varmista, että tyovaline-hakemiston alla on siirron jälkeen seuraava hakemistorakenne.
Yllänäkyvän listauksen saat tree-komennolla[tunnus@halava ~/tyovaline]$ tree . ├── demot ├── harkka │ └── testi.txt ├── luennot │ └── testi.txt └── testi.txt 3 directories, 3 files
- Testaa tekemiesi tiedostojen näkyminen WWW-selaimella.
Kokeile osoitetata
http://users.jyu.fi/~kayttajatunnuksesi/tyovaline/harkka/testi.txt
. Jos tiedosto ei näy kyseisessä osoitteessa, niin varmista että kirjoitit osoitteen oikein. Osoitteessa on oltava koko kansiorakenne ja myös tiedoston nimi. Pelkkä kansio ei riitä, koska www-palvelimessa on estetty kansioiden tiedostolistauksen näyttäminen.
Tiedostojen ja kansioiden poistaminen (rm ja rmdir)
- Tuhoa rm-komennolla luennot-hakemiston testi.txt-tiedosto.
- Tuhoa tämän jälkeen rmdir-komennolla luennot- ja demot-hakemisto. harkka-hakemiston voit jättää jäljelle harjoitustyön sijoittamista varten :-)
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:
- - tarkoittaa tiedostoa
- d tarkoittaa kansiota
Yhdeksän seuraavaa ovat varsinaiset oikeudet. Oikeudet ovat järjestyksessä seuraavasti:
- Kolme ensimmäistä kirjainta kertoo omistajan oikeudet (owner).
- Kolme keskimmäistä kirjainta tarkoittaa ryhmän oikeuksia (group).
- Kolme viimeistä kirjainta kertoo kaikkien muiden käyttäjien oikeudet (others).
Oikeuksia on kolmenlaisia. Jos ko. oikeutta ei ole kirjaimen paikalla on - .
- Lukuoikeus, merkataan r-kirjaimella (read).
- Kirjoitusoikeus, merkataan w-kirjaimella (write).
- Suoritusoikeus, merkataan x-kirjaimella (execute). Hakemistolla suoritusoikeus tarkoittaa listaamisoikeutta.
Esimerkiksi rivi -rw-r--r-- tarkoittaa, että:
- Kyseessä on tiedosto (-rw-r--r--)
- omistajalla on tiedostoon luku- ja kirjoitusoikeudet (-rw-r--r--).
- ryhmällä on pelkkä lukuoikeus (-rw-r--r--).
- muilla on pelkkä lukuoikeus (-rw-r--r--).
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.
- u käyttäjä (user).
- g ryhmä (group)
- o muut (other)
- a kaikki (all)
Seuraavana kerrotaan miten oikeuksia muutetaan:
- + lisää oikeus.
- - poista oikeus.
- = asettaa oikeudet absoluuttisesti. Poistaa kaikki entiset oikeudet.
Viimeisenä kerrotaan mitä oikeutta muutetaan:
- r lukuoikeus (read).
- w kirjoitusoikeus (write).
- x suoritusoikeus (execute).
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:
- Anna harkka-kansioon kaikille lukuoikeus
- Poista tyovaline-kansiosta kaikilta paitsi itseltäsi lukuoikeus
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ä.
- Kokeile ls-komennon tulosteen ohjaamista tiedostot.txt-tiedostoon kirjoittamalla:
Tulosteen ohjaaminen luo automaattisesti tiedostot.txt-tiedoston. Jos tiedosto on jo olemassa niin se korvataan uudelle eli vanha tiedosto katoaa.ls > tiedostot.txt
- Tutki less-komennolla mitä tiedostot.txt-sisältää. q-näppäimellä pääset palaamaan komentoriville.
- Ohjaa tree-komennon tulostus tiedostot.txt-tiedostoon. Tutki mitä tiedostossa lukee nyt.
-
>-operaattori korvaa aina tiedoston entisen sisällön uudella. Entäs jos halutaankin useamman komennon
tuloste samaan tiedostoon? Silloin käytetään >>-operaattoria. Kokeile:
ls >> tiedostot.txt
- Mitä nyt löytyy tiedostot.txt-tiedostosta?
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
- Kokeile mitä eroa on seuraavilla tavoilla ottaa tiedostolistaus unix-koneen /etc/-kansiosta:
tails /etc/
ls /etc/ | less
less-komento esittää sille putkitetun tiedon sivu kerrallaan. Voit selata listausta joko nuolinäppäimillä tai sivu kerrallaan välilyöntinäppäimellä. q-näppäimellä pääsee poistumaan less-ohjelmasta ja palaamaan komentoriville.
- Tulosta /etc/-kansion sisällöstä vain 10 ensimmäistä putkittamalla ls-komento head-komennolle. head-komento näyttää sille putkitetusta tiedosta 10 ensimmäistä riviä
ls /etc/ | head
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)
-
* tarkoittaa nollaa tai useampaa mitä tahansa merkkiä
- rm *.txt tuhoaa kaikki .txt-päätteiset tiedostot
- rm kukku/*.txt tuhoaa kaikki kukku-kansiossa olevat .txt-päätteiset tiedostot
-
? tarkoittaa mitä tahansa yksittäistä merkkiä
- rm ???.txt tuhoaa kaikki tiedostot joiden nimi on kolme merkkiä pitkä ja pääte on .txt
- rm *.?p? poistaa kaikki tiedostot joilla on kolmikirjaiminen pääte ja päätteen keskimmäinen kirjain on p
- Listaa ls-komennolla kaikki .conf-päätteiset tiedostot ja kansiot /etc/-kansiosta
- Listaa ls-komennolla kaikki /etc/-kansion tiedostot ja kansiot joiden nimestä löytyy sana conf
- Listaa ls-komennolla kaikki /etc/-kansion tiedostot ja kansiot joiden nimi päättyy pisteen jälkeen kahteen merkkiin.
- Listaa ls-komennolla kaikki /etc/-kansion tiedostot ja kansiot joiden nimi alkaa p-kirjaimella ja päättyy .conf
man
man-komennolla saat näkyville haluamasi komennon manuaalin eli käyttöohjeen. esim.
man ls
Tutki seuraavien komentojen manuaalisivuja:
- sort
- wc
- tail ja head
- chmod
-
find
Seuraava rivi etsii testi.txt-nimistä tiedostoa oletushakemistosta ja kaikista sen alikansioista
find . -name testi.txt
- wget tai curl
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...
- Tulosta /etc/pine.conf-tiedostosta kaikki #-merkin sisältävät rivit. Huom. bash-shellissä #-merkki on erikoismerkki ja se täytyy kirjoittaa komentoriville heittomerkkien sisään eli '#'.
- Tulosta /etc/-kansiosta kaikkien niiden tiedostojen nimet joiden sisällössä esiintyy #-merkki. Joudut selvittämään grep-komennon avustuksesta miten grep-komento tulostaa pelkän tiedoston nimen eikä tiedoston sisällöstä riviä josta etsitty sana löytyy.
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:
- Komento ls /etc/*.d tulostaa kaikki .d-loppuiset tiedostot mutta myös samalla tavalla nimettyjen alikansioiden sisällöt. Yritä saada ls-komento tulostamaan vain kansioiden nimet.
- Haluat luoda mkdir-komennolla kansiorakenteen foo/bar/foobar/barfoo. Miten se onnistuu yhdellä komennolla?
-
man-komennon -k antaa mahdollisuuden etsiä ohjelmia avainsanan perusteella. Kokeile erilaisilla
avainsanoilla mitä komentoja on käytettävissä. esim.
man -k pdf
SFTP-yhteys unix-palvelimeen
- Käynnistä WinSCP (Start|All Program|WinSCP
Kotikoneelle WinSCP-ohjelman voi hakea osoitteesta: https://winscp.net/eng/download.php
Jos käytät macia niin lue ohje Macintosh & verkkolevyjen etäkäyttö sftp-yhteyksin Jos olet Linux-käyttäjä niin voit käyttää scp-komentoa tai SFTP-komentoa. Huom!
scp
-komento toimii myös uusimmissa windowseissa. - Valitse File Protocol -kohtaan SFTP
- Kirjoita Host name:-kohtaan jalava.cc.jyu.fi
- Täytä kohtiin username ja password tunnuksesi ja salasanasi
- Valitse Login
- Aina kun otat ensimmäistä kertaa yhteyttä johonkin unix-palvelimeen
haluaa WinSCP varmistaa koneen luotettavuuden ja pyytää sinua hyväksymään
koneen avaimen (vrt. Putty):
Valitse Yes
- Jos kaikki meni oikein niin WinSCP avaa yhteyden jalava.cc.jyu.fi-koneeseen
- Näyttö jakaantuu kahteen osaan. Vasemmassa laidassa näet käyttämäsi tietokoneen levyasemat ja oikeassa laidassa näet jalava.cc.jyu.fi-koneen eli jalava.cc.jyu.fi-palvelimen tiedostohierarkian. Oletuksena näet oikeassa laidassa oman kotihakemistosi sisällön.
- Valmis SFTP-yhteys näyttää seuraavanlaiselta:
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ä.
- Selvitä miten who-komento toimii. Kuinka monta käyttäjää on sisäänkirjautuneena jalava-koneessa?
- Listaa jalava-koneessa paraikaa olevat käyttäjät käänteisessä aakkosjärjestyksessä käyttäjätunnuksen mukaan.
- Tutustu w-komentoon. Kuinka monta hlöä käyttää irssi-ohjelmaa jalava-koneessa?
- Tulosta kaikista /etc/-kansion .conf-päätteisistä tiedostoista #-merkin sisältämät rivit aakkosjärjestyksessä
SSH-yhteys toiseen Unix-koneeseen
- Voit halutessasi ottaa jo olemassaolevan SSH-yhteyden kautta yhteyttä johonkin toiseen Unix-koneeseen. Kokeile komentorivillä seuraavaa komentoa:
Salasanakyselyn jälkeen sinulla pitäisi olla yhteys auki halava-koneeseen.ssh tunnus@halava.cc.jyu.fi
- Kirjaa itsesi ulos halava-koneesta exit-komennolla. Kirjaudu ulos myös jalava-koneesta exit-komennolla. Sulje Putty.
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.
- Etsi WinSCP:llä html-kansio ja edelleen sen alta tyovaline-kansio.
- Valitse tyovaline-kansiossa oleva testi.txt-tiedosto hiiren oikealla
painikkeella. Valitse ponnahdusvalikosta Properties
- Nyt pääset dialogin kautta muokkaamaan tiedoston oikeuksia.
- Poista lukuoikeus (engl. read) ryhmältä (engl. group) ja muilta käyttäjiltä (engl. Others) testi.txt-tiedostosta.
- Käy kokeilemassa saatko tiedoston vielä näkyville selaimella päivittämällä tiedosto (Refresh/Reload). Jos saat, niin jotakin meni pieleen!
- Anna lukuoikeus ryhmälle ja muille käyttäjille testi.txt-tiedostoon.
- Käy kokeilemassa saatko tiedoston nyt näkyville selaimella. Nyt sen pitäisi onnistua!
- Voit tehdä myös tiedostojen kopioinnit, siirtämiset ja uudelleennimeämiset WinSCP:n kautta. Aina ei SFTP-yhteyttä ole käytössä joten myös komentorivityöskentelyä on syytä osata!
Hyödyllisiä unix- ja komentoriviohjelmia
Jos komentorivi- ja pääteohjelmat kiinnostavat enemmän niin voit halutessasi tutustua tarkemmin seuraaviin jalava-koneesta löytyviin ohjelmiin:
- wget Kopioi kokonaisia www-sivustoja
- mogrify Muuntaa ja muokkaa kuvatiedostoja formaatista toiseen
- irssi IRC-ohjelma
- alpine sähköpostiohjelma
- ps2pdf Muuntaa Postscript-tiedoston PDF-tiedostoksi
- pdf2ps Muuntaa PDF-tiedoston Postscript-tiedostoksi
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:
- awk
- bc
- cat
- chmod
- df
- diff
- du
- echo
- env
- find
- head
- id
- kill
- ln
- morse
- ps
- pwd
- scp
- sed
- tail
- tree
- touch
- wc
- xargs
- zip
Voit lisäharjoitella korttipelin parissa.
Käyttäjien kommentit