Komentorivi
- Mallivideot
- Pääteyhteys Unix-palvelimeen
- SFTP-yhteys unix-palvelimeen
- Komentorivin käyttäminen
- cd ja mkdir
- nano
- Kopiointi
- Tiedostojen ja kansioiden poistaminen (rm ja rmdir)
- Ohjelman tulostuksen edelleenohjaus
- Putkitus
- Korvausmerkit
- man
- grep
- Komentojen optiot (vivut)
- Tehtäviä
- SSH-yhteys toiseen Unix-koneeseen
- Hyödyllisiä unix- ja komentoriviohjelmia
Seuraavissa demotehtävissä voit käyttää apuna kurssin luentomonisteen lukua "Unix-käyttöjärjestelmän käytön alkeita". Pikakertauksen komennoista löydät kurssin luento 2:n materiaaleista. 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 Unix-opasta tai Sormet unixiin-harjoituksia tai jos haluat syventyä aiheeseen kunnolla niin UNIX ja shell-ohjelmointi -kurssia.
Mallivideot
- unix.wmv 2.0M
Pääteyhteys Unix-palvelimeen
- Käynnistä Putty SSH Client. Valikkokomennolla
Start | All Programs | Putty SSH tools | Putty SSH Client.
Kotikoneelle Puttyn voi hakea osoitteesta: http://the.earth.li/~sgtatham/putty/latest/x86/putty.exe
-
Kirjaudu käyttäjäksi Tietohallintokeskuksen jalava.cc.jyu.fi-palvelimelle seuraavien ohjeiden mukaisesti:
- Host Name (or IP address)-kohtaan kirjoitetaan palvelinkoneen nimi. Ota yhteys jalava.cc.jyu.fi-koneeseen.
- 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
- Login as-kysymykseen syötä käyttäjätunnuksesi (esim. tjlahton). Seuraavaksi Putty pyytää salasanaasi. 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 jalava atk-keskuksen ohjeen mukaisesti.
- Kirjaudu siis salasana.jyu.fi-palveluun ja napauta Activate UNIX-painiketta.
- Jos salasana.jyu.fi:ssä lukee vain Deactivate UNIX, niin paina sitä ja sen jälkeen Activate UNIX-painike pitäisi tulla näkyviin. Napauta sitä!
- Aktivoi samalla WWW-tilasi napauttamalla Activate WWW-painiketta, ellet ole sitä jo tehnyt.
- 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.
SFTP-yhteys unix-palvelimeen
- Käynnistä FileZilla (Start|All Program|FileZilla
Kotikoneelle FileZillan voi hakea osoitteesta: http://filezilla-project.org/download.php?type=client
- Kirjoita Host:-kohtaan sftp://jalava.cc.jyu.fi, joka tarkoittaa, että haluat ottaa yhteyden sftp-protokollalla jalava.cc.jyu.fi-palvelimeen.
- Täytä kohtiin username ja password tunnuksesi ja salasanasi>
- Valitse Quickconnect
- Aina kun otat ensimmäistä kertaa yhteyttä johonkin unix-palvelimeen
haluaa FileZilla varmistaa koneen luotettavuuden ja pyytää sinua hyväksymään
koneen avaimen (vrt. Putty):
Laita ruksi kohtaan Always trust this host, add this key to the cache ja hyväksy avain
- Jos kaikki meni oikein niin FileZilla avaa yhteyden jalava.cc.jyu.fi-koneeseen
- Näyttö jakaantuu kahteen osaan. Vasemmassa laidassa (Local site:) näet käyttämäsi tietokoneen levyasemat ja oikeassa laidassa (Remote site:) näet jalava.cc.jyu.fi-koneen eli jalava.cc.jyu.fi-palvelimen tiedostohierarkian. Oletuksena näet oikeassa laidassa oman kotihakemistosi sisällön.
- Jos haluat voit muokata FileZillan ulkoasuasetuksia valinnalla Edit|Settings|Interface. Kokeile erilaisia vaihtoehtoja kohdasta Layout of file and directory panes: ja jätä käyttöön mieleisesi. Position of the message log:-kohtaan kannattaa valita As tab in the transfer queue pane
- Valmis SFTP-yhteys Filezilla näyttää seuraavanlaiselta:
Komentorivin käyttäminen
- Kirjautumisen jälkeen näet komentokehotteen:
tunnus@jalava ~]$
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. - Kirjautumisen jälkeen olet automaattisesti kotihakemistossasi. 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 toimiiko koneessa dir komento.
tunnus@jalava ~]$ dir
Dir on varsinaisesti DOS-komento mutta Tietohallintokeskuksen UNIX-koneissa on useimmille komennoille olemassa DOS-muotoa olevat vastikkeet. -
Kokeile myös komentoa
tunnus@jalava ~]$ ls -al
ls -al on sama komento kuin alussa 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ä.
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 |
cd ja mkdir
- Siirry html-hakemistoon cd-komennolla.
tunnus@jalava ~]$ cd html tunnus@jalava ~/html]%
cd-komennolle täytyy antaa parametrina kansion nimi johon halutaan siirtyä.- Mikäli saat virheilmoituksen html: No such file or directory, puuttuu
kotihakemistostasi linkitys kotisivuhakemistoon. Saat sen tehtyä komennolla
ln -s /wwwhome$HOME/html $HOME/html
Tämä komento liittyy vain ja ainoastaan tämän html-kansion tekemiseen. Normaalisti kansiot luodaan mkdir-komennolla.
Komento kannattaa kirjoittaa leikepöydän avulla. Kopioi komento leikepöydälle maalaamalla se hiirellä ja painamalla näppäinyhdistelmää CTRL-C. Liitä komento puttyn ikkunaan näppäinyhdistelmällä SHIFT-INSERT.
Normaalisti leikepöydältä liittäminen CTRL-V-näppäinyhdistelmällä ei toimi koska pääteyhteys varaa tuon näppäinyhdistelmän muuhun käyttöön.
- Jos cd html-komento antaa vieläkin virheen niin varmista, että olet aktivoinut salasana.jyu.fi-palvelussa WWW-tilasi!
- Mikäli saat virheilmoituksen html: No such file or directory, puuttuu
kotihakemistostasi linkitys kotisivuhakemistoon. Saat sen tehtyä komennolla
- Tee html-kansioon alihakemisto tyovaline käyttäen mkdir-komentoa.
tunnus@jalava ~/html]% mkdir tyovaline
Yleensä jos komennon suoritus onnistuu niin siitä ei anneta mitään erityistä palautetta. Vain virheistä kerrotaan. - Tarkista ls -komennolla, että tyovaline-hakemisto on tullut html-hakemiston alle. Jos et ole tehnyt html-hakemistoon ennemmin 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
cd-komennolla voi antaa parametrina kokonaisen hakemistopolun jonka päähän halutaan siirtyä. hakemistojen nimet erotetaan toisistaan /-merkillä. - Kokeile siirtyä takaisin html-kansioon kirjoittamalla
tunnus@jalava ~/tyovaline]% cd ..
.. tarkoittaa aina hierarkiassa yhtä ylempänä olevaa kansiota. - Siirry takaisin tyovaline-kansioon
- Tee tyovaline-kansioon seuraavat kolme kansiota: harkka, demot ja luennot.
- Tutki Filezillalla millaisen kansiorakenteen olet komentorivin kautta luonut. FileZilla päivittää listauksensa valinnalla View|Refresh.
- Kokeile myös tree-komentoa.
- 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.
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ä.
^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
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ä. - Tallenna tiedosto (CTRL-O). Huomaa että nano varmistaa vielä tallennustiedoston nimen (testi.txt) ja odottaa enterin painallusta.
- Tarkista cat-komennolla mitä tekstitiedostoon tallentui:
cat testi.txt
Kopiointi
- 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 Filezillalla 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.
. |-- demot |-- harkka | `-- testi.txt |-- testi.txt `-- luennot `-- testi.txt
- Testaa tekemiesi tiedostojen näkyminen WWW-selaimella seuraavasta osoitteesta
http://users.jyu.fi/~kayttajatunnuksesi/tyovaline/
. Jos tiedostot eivät näy kyseisessä osoitteessa, niin varmista että kirjoitit osoitteen oikein.
Tiedostojen ja kansioiden poistaminen (rm ja rmdir)
- Tuhoa rm-komennolla luennot-hakemiston testi.txt-tiedostot.
- Tuhoa tämän jälkeen rmdir-komennolla luennot- ja demot-hakemisto. harkka-hakemiston voit jättää jäljelle harjoitustyön sijoittamista varten :-)
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:
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:
ls /etc/ ls /etc/ | less
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.
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 /etc/-kansiosta
- Listaa ls-komennolla kaikki /etc/-kansion tiedostot joiden nimestä löytyy sana conf
- Listaa ls-komennolla kaikki /etc/-kansion tiedostot joiden nimi päättyy pisteen jälkeen kahteen merkkiin.
- Listaa ls-komennolla kaikki /etc/-kansion tiedostot 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
- chmod
Mitä kukin edellämainituista ohjelmista tekee?
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 conf:
grep conf tiedostot.txt
Tulostetaan foo/-kansion tiedostoista ne joiden nimessä esiintyy sana www:
ls foo/ | grep www
ls-komento tekee listan tiedostojen nimistä joista grep sitten poimii halutut.
Tulostetaan foo/-kansion tiedostoista ne rivit joilla esiintyy sana www:
grep www foo/*
grep käy läpi kaikki foo-alikansion tiedostot ja tulostaa niistä ne rivit joissa haettu sana esiintyy.
- Tulosta /etc/pine.conf-tiedostosta kaikki #-merkin sisältävät rivit
- Tulosta /etc/-kansiosta kaikkien niiden tiedostojen nimet joiden nimessä esiintyy conf-sana
- Tulosta /etc/-kansiosta kaikkien niiden tiedostojen nimet joissa 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
Tehtäviä
Seuraavissa tehtävissä joudut soveltamaan useita eri komentoja, putkitusta, korvausmerkkejä ja komentojen vipuja.
- 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.
- Kuinka monta hlöä on ottanut yhteyden jalava-koneeseen ylioppilaskylästä (kortex.jyu.fi)?
- Tutustu w-komentoon. Kuinka monta hlöä käyttää pine-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:
ssh tunnus@halava.cc.jyu.fi
Salasanakyselyn jälkeen sinulla pitäisi olla yhteys auki halava-koneeseen. - Kirjaa itsesi ulos halava-koneesta exit-komennolla. Kirjaudu ulos myös jalava-koneesta exit-komennolla. Sulje Putty.
Hyödyllisiä unix- ja komentoriviohjelmia
Jos komentorivi- ja pääteohjelmat kiinnostavat enemmän niin voit halutessasi tutustua tarkemmin seuraaviin jalava-koneesta löytyviin ohjelmiin:
- scp Kopioi tiedostoja koneiden välillä
- wget Kopioi kokonaisia www-sivustoja
- Mogrify Muuntaa ja muokkaa kuvatiedostoja formaatista toiseen
- screen Mahdollistaa ohjelmien jättämisen tausta-ajoon (esim. irc) ja useiden ikkunoiden käytön
- irssi IRC-ohjelma
- Alpine sähköpostiohjelma
- ps2pdf Muuntaa Postscript-tiedoston PDF-tiedostoksi
- pdf2ps Muuntaa PDF-tiedoston Postscript-tiedostoksi
- morse kääntää sanoja suomesta englanniksi ja päinvastoin
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
Käyttäjien kommentit